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

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

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

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

传统的时间序列预测模型,如 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()

输出:

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

    推荐阅读
  • 上古卷轴5天际特别版怎么买(天际周年纪念版登陆Epic)

    近日,《上古卷轴5:天际周年纪念版》已登陆Epic售价206元,标准版售价165元,并且玩家可以购买售价83元的升级包将标准版升级为周年纪念版。Epic商城地址>>>游戏介绍:《上古卷轴5:天际周年纪念版》收录了特别版游戏的所有内容,即本体游戏的增强版以及三个官方资料片。此外还包括游戏中500多个独特的创作俱乐部元素,由B社和社区创作者制作,例如任务、地下城、Boss、武器、魔法等。

  • 米面放冰箱冷冻可以吗(面和米可以放冰箱吗)

    米面是温州、湖南桃源丶安徽南部丶江西赣西和吉安永新一带的小吃。米面面皮厚薄均匀,切条工整,味道鲜美。佐以精肉丝、香菇丝即可。

  • 在飞机上一定要开启飞行模式吗(乘坐飞机时不关机或不使用飞行模式)

    航空公司对这一严格规定最常引用的原因之一是为了保持飞机通讯畅通。所有这些无线电活动都会对飞机的导航和通信系统产生轻微的影响。考虑到越来越多的航空公司开始允许在飞行中使用手机,这个理由似乎最为合理。大多数航空公司已经接受在地面阶段有限使用手机,有些甚至已经不再做强制性的要求了。当你在飞机上的时候,要避免做任何违反飞机安全规定的事情。

  • 美德001玉米品种 美德001玉米种子

    美德001,德州市德农种子有限公司培育的玉米品种,属于一代杂交种。下面带来美德001玉米品种介绍如下:该品种夏播生育期102天,比对照郑单958早熟4天。株高285.3厘米,穗位101.2厘米,倒伏率2.1%、倒折率0.4%。抗病性接种鉴定,高抗茎腐病,中抗小斑病、弯孢叶斑病和瘤黑粉病,感南方锈病,高感穗腐病。适宜密度为每亩5000株左右,其它管理措施同一般大田。

  • 山东建筑大学建筑工程技术专业(山东城市建设职业学院带你走进古建筑工程技术专业)

    古建筑是国家和民族的象征,是民众心中的图腾,对提升民族的自信心和凝聚力有着不可替代的作用。随着旅游经济的逐年发展,古建筑修缮以及仿古建筑的建设数量逐年递增,无疑增加了社会对古建专业技术人才的需求。专业成果本专业从第一届毕业生至今每届学生多数获得全国甚至于世界高级别奖项,其中,国际奖4项,国内金奖2项,国内银奖10项,国内铜奖10项目,累计获奖数量高达30多项。

  • 昆明奥特莱斯国庆(五一假期昆明首创奥莱开启狂欢购物节)

    昆明信息港讯记者昝娟娟4月30日-5月4日,昆明首创奥莱开启“五一”狂欢购物节。环境好,出片率爆表,五一有求婚计划的可以安排上了!五一节假期,还有众多福利活动缤纷登场。期间,昆明首创奥莱全场3折起,折上再7折。另外,五一假期,30余家新品牌开业,安德玛、周大福、双立人、MISHKA、INXX等将开启开业钜惠。

  • 刚烫的卷发如何保持定型(卷发烫完睡一觉就没)

    6个卷发打理小技巧一、慎用梳子白天卷发的打理过程中一般都不太会用到梳子,都是手指撩拨几下。但在洗头的时候,有的人还是习惯用梳子梳一梳,要想不破坏卷,最好还是用手指梳一梳就好。六、护发产品抹手上烫卷的妹子都爱用弹力素或护发油来维持卷度,想让弹力素上的更加均匀有妙法。先把弹力素涂抹于手指上,再把头发卷在手上,不但可以增强卷度,还可以让弹力素的效果发挥得更好。

  • 微信怎么看自己的身份证 微信怎么看自己的身份证绑定了几个账号

    以微信v7.0.18为例,看自己的身份证号的方法:1、在微信钱包页面点击右上角功能菜单。微信是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费社交程序。截止2016年12月微信的月活跃用户数已达8.89亿。2018年6月20日,微信订阅号正式改版上线。2019年11月,“腾讯QQ”的小程序在微信上线。

  • 逗男友开心的幽默笑话(适合逗男朋友开心的笑话)

    逗男友开心的幽默笑话前女友嫌弃我太瘦弱了,和一壮男跑了,我后来和一东北大胖妞处对象,在街上我们双双相遇,我前女友一个劲的挑衅我的底线,我东北女朋友看不下去了,把我前女友揍了一顿,我前女友对象上去结果也被揍了。原因他是24岁那年,爸妈给安排了一次,结果被伤透了心。那天他提前来到了酒店,点好饭菜等女方来。看到失而复得的手机,内心的激动无法言语,经工作人员核对后,让我在领取失物单子上签字。