问题描述
我目前正在尝试通过 python 中的随机森林算法进行多步预测。我复制了我在网上找到的代码,但我只能生成 1 步预测。我想知道如果我想预测以下 2、3 或 10 个值,我将如何修改代码。
提前致谢
# finalize model and make a prediction for monthly births with random forest
from numpy import asarray
from pandas import read_csv
from pandas import DataFrame
from pandas import concat
from sklearn.ensemble import RandomForestRegressor
# transform a time series dataset into a supervised learning dataset
def series_to_supervised(data,n_in=1,n_out=1,dropnan=True):
n_vars = 1 if type(data) is list else data.shape[1]
df = DataFrame(data)
cols = list()
# input sequence (t-n,... t-1)
for i in range(n_in,-1):
cols.append(df.shift(i))
# forecast sequence (t,t+1,... t+n)
for i in range(0,n_out):
cols.append(df.shift(-i))
# put it all together
agg = concat(cols,axis=1)
# drop rows with NaN values
if dropnan:
agg.dropna(inplace=True)
return agg.values
# load the dataset
series = read_csv('csv2.csv',header=0,index_col=0)
values = series.values
# transform the time series data into supervised learning
train = series_to_supervised(values,n_in=50)
# split into input and output columns
trainX,trainy = train[:,:-1],train[:,-1]
# fit model
model = RandomForestRegressor(n_estimators=1000)
model.fit(trainX,trainy)
# construct an input for a new prediction
row = values[-50:].flatten()
# make a one-step prediction
yhat = model.predict(asarray([row]))
print('Input: %s,Predicted: %.3f' % (row,yhat[0]))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)