77百科网
当前位置: 首页 生活百科

随机森林理论入门(九道门如何使用随机森林进行时间序列预测)

时间:2023-08-03 作者: 小编 阅读量: 2 栏目名: 生活百科

随机森林也是常用的机器学习模型之一,在分类和回归任务中具有非常好的性能。随机森林回归模型也可用于时间序列建模和预测,以获得更好的结果。关于随机森林回归器:随机森林模型是许多决策树的集合,其中决策树被称为弱学习器。在将数据拟合到模型中后,我们根据平均绝对误差交叉检查准确性。训练模型后,它将帮助我们进行下一步预测。这是一个很好的迹象。为了获得更好的性能,我们可以改变随机森林回归模型的参数。

传统的时间序列预测模型,如 ARIMA、SARIMA 和 VAR ,都是基于回归过程,因为这些模型需要处理连续变量。随机森林也是常用的机器学习模型之一,在分类和回归任务中具有非常好的性能。随机森林回归模型也可用于时间序列建模和预测,以获得更好的结果。在本文中,我们将讨论如何使用随机森林回归器进行时间序列建模和预测。

关于随机森林回归器:

随机森林模型是许多决策树的集合,其中决策树被称为弱学习器。它可以应用于分类和回归问题。使用随机森林的回归过程可以通过以下步骤完成:

  • 数据拆分:该过程通过特征拆分,每一行负责创建决策树。
  • 决策:每棵树都根据数据做出自己的决策。
  • 决策聚合:在这一步中,树的平均值预测成为最终结果。

这种来自树的平均决策使得随机森林回归比任何其他算法都强。让我们看看如何在时间序列建模中使用随机森林模型。

流程 :

在开始前,我们可以使用从此处获得的每日女性出生总数数据集。

由于我们使用的模块旨在处理监督学习数据集,因此我们需要将时间序列转换为监督学习数据集,转换后,再对单变量数据进行验证。在将数据拟合到模型中后,我们根据平均绝对误差交叉检查准确性。下面从导入库开始。

1.导入库-

在正常中只需要使用 pandas、NumPy、matplotlib 和 sklearn 库。

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.ensemble import RandomForestRegressor

从 sklearn 集成导入随机森林回归器

2.数据转换-

这部分实现了一个函数,可以将时间序列转换为监督学习数据。

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 = pd.DataFrame(data)cols = list()for i in range(n_in, 0, -1):cols.append(df.shift(i))for i in range(0, n_out):cols.append(df.shift(-i))agg = pd.concat(cols, axis=1)if dropnan:agg.dropna(inplace=True)return agg.values

在上面的函数中,我定义了输入序列和预测序列并将它们连接起来,并且删除了所有的 NaN 值。

3.数据拆分-

本节定义了一个可以拆分数据集的函数。

def train_test_split(data, n_test):return data[:-n_test, :], data[-n_test:, :]

4.模型拟合-

在本节中,我们将定义一个函数,它可以帮助通过随机森林回归模型拟合转换后的数据。

# fit an random forest model and make a one step predictiondef random_forest_forecast(train, testX):train = np.asarray(train)trainX, trainy = train[:, :-1], train[:, -1]model = RandomForestRegressor(n_estimators=1000)model.fit(trainX, trainy)yhat = model.predict([testX])return yhat[0]

这个函数将列表转换为数组,然后拆分数据并拟合模型。训练模型后,它将帮助我们进行下一步预测。

5.单变量数据的验证-

本节将利用上述所有函数,并将测试数据与模型拟合,以预测和检查模型的准确性。

from sklearn.metrics import mean_absolute_errordef walk_forward_validation(data, n_test):predictions = list()train, test = train_test_split(data, n_test)history = [x for x in train]for i in range(len(test)):testX, testy = test[i, :-1], test[i, -1]yhat = random_forest_forecast(history, testX)predictions.append(yhat)history.append(test[i])print('>expected=%.1f, predicted=%.1f' % (testy, yhat))error = mean_absolute_error(test[:, -1], predictions)return error, test[:, -1], predictions

6.加载数据中-

加载数据并使用上述函数将数据转换为监督学习数据。

series = pd.read_csv(‘/content/drive/MyDrive/Yugesh/times series with random forest/daily-total-female-births.csv’, header=0, index_col=0)values = series.valuesdata = series_to_supervised(values, n_in=6)

7.模型评估-

根据均方误差评估模型。

series = pd.read_csv('/content/drive/MyDrive/Yugesh/times series with random forest/daily-total-female-births.csv', header=0, index_col=0)values = series.valuesdata = series_to_supervised(values, n_in=6)

输出:

在上面的输出中,我们可以看到 MAE 为 5.999。这是一个很好的迹象。下面我们用测试数据绘制这些预测。

plt.plot(y, label='Expected')plt.plot(yhat, label='Predicted')plt.legend()plt.show()

输出:

在这里我们可以看到拟合随机森林回归模型的预测值。为了获得更好的性能,我们可以改变随机森林回归模型的参数。

    推荐阅读
  • 春天能吃海参吗(春天可不可以吃海参)

    春天能吃海参吗?春季体内以肝、胆经脉的经气最为旺盛,而海参性味甘、咸、温,不燥不热,补肾滋阴,具有阴阳双补的功效,春季食补选择海参,能为身体及时补充营养,提高人体的免疫力,可滋阴养阳,同时肝也会得到滋养,让人气血顺畅。

  • 生姜洗发水什么牌子好(全球最好的洗发水品牌排行榜)

    以国际著名美发专家维达·沙宣命名,并请他本人作为品牌形象大使。由于产品优良,公司在国内市场占有很大份额。由于其众多产品,Lakme被认为是世界顶级护肤品牌之一。

  • 蓝牙耳机怎么连接手机(新手入门无线蓝牙耳机)

    歌奈的蓝牙耳机适用于市面上几乎所有主流手机机型。打开手机蓝牙,直接进行配对即可。第二种情况,上下拔动,一键开关的蓝牙耳机机型,则更简单,直接一键拔动开机按钮,耳机自动进入配对模式,此时也是指示灯红蓝灯开始快速闪烁。

  • xbox360兼容xboxone游戏吗(One兼容360游戏演示)

    微软已经祭出了“大杀招”,能不能刺激平台销量我们拭目以待吧。

  • 探岳首保免费吗 探岳首保免费提供什么机油

    第一保险的关键是更换机油,启动机油滤芯。此外,还有其他项目需要测试。首次就诊时间为5000公里或12个月,以先到者为准。其中之一是超出了基本的大都会关系保修。值得一提的是,根据相关规定,如果超过首保日期,将视为自动放弃首保权利。不同家庭、品牌甚至车型的汽车都配备了不同设计的发动机。有的对机油要求较高,甚至有特殊要求。涡轮增压发动机最好由全合成机油制成。

  • 松茸能冻起来吗 松茸能冻起来吗怎么吃

    新鲜的松茸中含有大量的水分以及丰富的营养物质和活性物质,如果置于常温下保存的话,很容易滋生细菌、霉菌等微生物而发生变质的情况。就算冷冻一年的松茸没有变质,但是其中所含的营养物质也大部分被氧化失效了,此时继续吃的话营养价值不高,所以不建议继续食用。因为在解冻的过程中会对松茸的营养和口感造成一定的破坏,所以建议最好是将冰冻的松茸半解冻会更好一些。

  • 彩铅画人物简笔画(零基础彩铅画简笔画)

    美少女简笔画彩铅画杨蓉简笔画,今天小编找了几款不错的彩铅画人物简笔画?接下来我们就一起去欣赏以下简笔画图片吧!彩铅画人物简笔画美少女简笔画彩铅画杨蓉简笔画简笔画古风少女彩铅画27个卡通人物的彩铅简笔画教程100张人物彩铅简笔画超萌小清新收图吧彩铅简笔画人物萌爆彩铅小仙女简笔画超q的小清新sorssora可爱小女孩彩铅简笔画欣赏

  • 炉石传说卡组推荐 狂野(狂野模式硬核快攻上分卡组推荐)

    对局术士防亵渎,对局骑士和法师蛛魔要重点保护,蛛魔可以卡到奥秘法的大部分随从卡牌,宇宙法的雷诺,也能够卡住骑士3个频率的飞行器。同时由于偶数萨的频率,aoe和退化对这套卡组的buff随从具有致命性的打击,所以不推荐在偶数萨多的分段中使用。这套卡组相对比较吃熟练度,需要时刻注意自己的手牌和水晶,保持对后面对局的良好规划,推荐喜欢德鲁伊的玩家使用。

  • 机理是什么意思(词语机理什么意思)

    接下来我们就一起去了解一下吧!机理是什么意思机理是指为实现某一特定功能,一定的系统结构中各要素的内在工作方式以及诸要素在一定环境条件下相互联系、相互作用的运行规则和原理。化学动力学中,“机理”是指从原子的结合关系中来描绘化学过程。如果其过程是动力学控制的,机理是指原子水平的表面过程。