随机森林时间序列预测python
时间: 2023-10-19 20:09:21 浏览: 160
随机森林通常用于分类和回归问题,但不是时间序列预测的首选算法。对于时间序列预测,可以考虑使用ARIMA、LSTM等算法。如果非要使用随机森林进行时间序列预测,可以将时间序列数据转化为监督学习问题,即将当前时刻的数据作为特征,下一时刻的数据作为标签,然后使用随机森林进行回归预测。
下面是一个简单的示例代码:
```python
from sklearn.ensemble import RandomForestRegressor
import numpy as np
# 构造时间序列数据
data = np.array([i*np.sin(i/10) for i in range(100)])
look_back = 5
X, y = [], []
for i in range(len(data)-look_back):
X.append(data[i:i+look_back])
y.append(data[i+look_back])
X = np.array(X)
y = np.array(y)
# 划分训练集和测试集
train_size = int(len(X) * 0.7)
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# 训练随机森林模型
rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
# 预测测试集
y_pred = rf.predict(X_test)
# 计算均方误差
mse = np.mean((y_pred - y_test)**2)
print('MSE:', mse)
```
阅读全文