You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Random Forest Regression的预测异常:预测值全部相同求助

问题排查与修复方案

核心问题1:标签格式错误

你的trainY是二维数组(通过Y.reshape(-1,1)生成),但RandomForestRegressor的fit方法要求标签为一维数组。传入二维数组会干扰模型的学习逻辑,导致模型无法正确拟合特征与目标的关联关系,最终输出重复预测值。

修复方式

将trainY和testY转换为一维数组:

# 修改Y的处理逻辑,替换reshape(-1,1)
X1,X2,X3,Y=df['Close Lag1'],df['Close Lag2'],df['Close Lag3'],df['Close']
X1,X2,X3,Y=np.array(X1),np.array(X2),np.array(X3),np.array(Y)
X1,X2,X3=X1.reshape(-1,1),X2.reshape(-1,1),X3.reshape(-1,1)
Y = Y.flatten()  # 转为一维数组
X = np.concatenate((X3,X2,X1),axis=1)

# 后续分割数据直接使用一维标签
trainY = Y[:-70]
testY = Y[-70:]

核心问题2:模型参数设置不合理

你设置了max_features=3,但特征总数正好是3,这意味着每棵决策树都会使用全部特征,完全失去了随机森林的"随机选择特征子集"特性。这种情况下模型容易陷入局部最优,输出重复值。

修复方式

调整max_features参数,引入随机性:

# 使用sqrt规则选择特征子集,或指定具体数值(如2)
model = RandomForestRegressor(n_estimators=100, max_features='sqrt', random_state=1)

辅助优化:特征维度不足

仅使用3个滞后特征,对于时间序列预测来说信息密度太低,模型难以捕捉价格的趋势和波动。可以尝试:

  • 增加更多滞后特征(如Lag4到Lag10)
  • 添加衍生特征:滞后特征的差值、移动平均值(MA)、相对强弱指数(RSI)等技术指标
  • 补充时间维度特征(如星期几、月份,若原始数据包含日期字段)

完整修复后的关键代码片段

# 读取数据与特征构建
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')

df=pd.read_csv(r'C:\Users\Krish Ghosh\Desktop\BSE Sensex.csv', usecols=[1])
df['Close Lag1']=df['Close'].shift(+1)
df['Close Lag2']=df['Close'].shift(+2)
df['Close Lag3']=df['Close'].shift(+3)
df=df.dropna()

# 特征与标签处理
X1,X2,X3,Y=df['Close Lag1'],df['Close Lag2'],df['Close Lag3'],df['Close']
X1,X2,X3,Y=np.array(X1),np.array(X2),np.array(X3),np.array(Y)
X1,X2,X3=X1.reshape(-1,1),X2.reshape(-1,1),X3.reshape(-1,1)
Y = Y.flatten()
X = np.concatenate((X3,X2,X1),axis=1)

# 数据分割
trainX = X[:-70]
testX = X[-70:]
trainY = Y[:-70]
testY = Y[-70:]

# 模型训练与预测
from sklearn.ensemble import RandomForestRegressor
model=RandomForestRegressor(n_estimators=100, max_features='sqrt', random_state=1)
model.fit(trainX,trainY)
predX = model.predict(testX)

print(predX)

内容的提问来源于stack exchange,提问作者Tarun Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 10:24:09