前言
本文探讨了使用随机森林对股票进行多维度多时间步的预测的一种方法。
一、普通的随机森林单步预测
此处同时使用多特征来预测多特征,使用目标时间步前N天的平均值作为输入数据。
N = 5 # 例如,使用前5天的数据
#不包括当前行的前N天的平均值,使用dropna()来删除那些因为窗口不足N天而缺少值的行(即DataFrame的前N-1行)
features = data[['Open', 'High', 'Low', 'Close', 'Adj Close','Volume']].rolling(window=N).mean().shift(1).dropna()
target = data[['Open', 'High', 'Low', 'Close', 'Adj Close','Volume']].shift(-N)
target = target.dropna()
# 合并特征和目标变量
X = features.values
y = target.values
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 初始化随机森林回归器
rf = RandomForestRegressor(n_estimators=100