无法从gmdh导入Regressor报错求助:基于GmdhPy的时序预测需求
解决gmdh库导入Regressor报错的问题
问题原因分析
你遇到的导入错误,核心原因是安装的gmdh库中不存在名为Regressor的类,且包结构与你预期的gmdhpy不符——通过pip install git+git://github.com/kvoyager/GmdhPy.git安装后,实际包名为gmdh,而非gmdhpy,且该库提供的回归器类是MultiLayerRegressor,并非Regressor。
解决方案
1. 修正导入语句
将你的导入代码替换为:
from gmdh import MultiLayerRegressor
或者指定子模块导入:
from gmdh.gmdh import MultiLayerRegressor
2. 验证库结构(可选)
若仍有疑问,可打开虚拟环境路径C:\Users\HP\PycharmProjects\pythonProject\venv\lib\site-packages\gmdh,查看:
__init__.py文件中暴露的类列表,确认MultiLayerRegressor是否在其中gmdh.py文件中的具体类定义,确认可用的回归类
3. 时间序列预测适配
用该库做时间序列预测,需先将时间序列数据转换为监督学习格式(通过滑动窗口生成输入特征与目标值),示例代码如下:
import numpy as np from gmdh import MultiLayerRegressor # 示例时间序列数据 time_series = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90]) # 滑动窗口生成特征与目标(窗口大小为3,用前3个值预测第4个) def create_supervised_data(data, window_size): X, y = [], [] for i in range(len(data) - window_size): X.append(data[i:i+window_size]) y.append(data[i+window_size]) return np.array(X), np.array(y) X, y = create_supervised_data(time_series, window_size=3) # 初始化并训练模型 model = MultiLayerRegressor() model.fit(X, y) # 预测下一个值 next_input = np.array([70, 80, 90]).reshape(1, -1) prediction = model.predict(next_input) print(f"预测值: {prediction[0]}")
内容的提问来源于stack exchange,提问作者Khansa
相关产品推荐
相关产品推荐

