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()

输出:

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

    推荐阅读
  • 端午节吃咸鸭蛋的由来(端午节吃咸鸭蛋的起源)

    因为蛋形如心,民间普遍认为吃了鸭蛋就能使心气精神不受亏损。端午节吃咸鸭蛋一方面是为了图吉利,祈祷一年不生病,另一方面则是改善生活。做母亲的对此十分心疼,纷纷到女娲娘娘庙烧香磕头,求她消灾降福,保佑后代。女娲得知此事后,便去找瘟神说:“今后凡是我的嫡亲孩儿,决不准许你伤害。”瘟神以为都是女娲的孩子,所以就不敢动手害人了。这样,端午吃咸鸭蛋的习俗逐渐流传开来。

  • 抖音怎样配自己想自己想要的音乐 抖音怎么配自己想要的音乐

    抖音配自己想自己想要的音乐步骤:1、首先打开抖音短视频,来到首界面;2、点击中间的“加”号,然后来到新界面;3、点击左上角处的“上传视频”,来到选择手机中拍摄保存的视频列表界面;4、选择其中一个视频,点击来到新界面,在新界面中调节好速度,并点击右上角的“下一步”;5、在新界面中,先点击中红色的“音量”。点击发布后,这个添加的音乐就在这视频里面。

  • 僜人族(神秘的僜人部落)

    西藏察隅县位于中国东南边陲,在察隅县的下察隅镇和上察隅镇,生活着一支罕为人知的神秘部落——人部落。人,又称巴人,是西藏地区人口最少的少数民族族群,至今尚未列入中国56个民族中。人主要分布于中国和印度交界的林区。人同姓之间禁止通婚。2020年9,察隅县城至下察隅镇、上察隅镇2条客运班线开通,方便了来自全国各地的游人。

  • 肺结核不能吃什么(肺结核不能吃什么蔬菜)

    然后患者还要注意不可以吃太过于寒凉的食物,以免出现腹泻现象,使免疫力更加低下。在饮食上可以多吃一些苹果、梨等含水量比较大,而且含有维生素比较丰富,对肺结核的恢复具有一定的好处。

  • 适合父母用的智能手机 适合父母用的智能手机推荐

    2、华为荣耀畅玩6:3020mAh大容量电池,省去了父母时刻充电的麻烦,而前置500万像素摄像头搭配前置柔光灯,让父母自拍也更显年轻。

  • 蒲公英的吃法和用法(蒲公英怎么吃)

    凉拌:蒲公英可凉拌,这种吃法主要是吃它的叶子摘取新鲜叶片,洗净后放在开水中烫10分钟,取出过凉水,之后根据自己口味加调料进去就行,今天小编就来聊一聊关于蒲公英的吃法和用法?蒲公英的吃法和用法凉拌:蒲公英可凉拌,这种吃法主要是吃它的叶子。这种吃法能品尝到最原始的味道,有些人不能适应。

  • azw3手机用什么看 azw3手机怎么看

    电子书是指将文字、图片、声音、影像等讯息内容数字化的出版物和植入或下载数字化文字、图片、声音、影像等讯息内容的集存储和显示终端于一体的手持阅读器。代表人们所阅读的数字化出版物,区别于以纸张为载体的传统出版物。电子书通过数码方式记录在以光、电、磁为介质的设备中,必须借助于特定的设备来读取、复制和传输。

  • 转移号是什么意思(王者荣耀的转移号到底是什么意思)

    转移号是什么意思转移号的意思其实就是游客登录的号,ios登陆有三种方式,分别是游客登录、QQ登陆和微信登陆,使用游客登录随便起个昵称就能玩了。在IOS端点游客登录就可以直接玩王者荣耀了,不需要微信或者QQ账号。目前安卓上面暂时没有游客登录,所以只有IOS有转移号,如果你听说安卓上卖转移号,那就要小心上当受骗了。

  • 适合新手养的多肉(10种适合新手的多肉)

    黑白之恋的叶片肥厚,可以种植在颗粒土多一些的土壤里,植株会更容易上色呢。菲欧娜喜欢光照充足的环境,长势才会越来越好,并且等盆土干了再浇水,这样叶片会更肥厚。

  • vivo手机怎么验证是正品(跟大家介绍一种简单方法)

    vivo手机怎么验证是正品首先要获取手机的IMEI号码,每个手机的IMEI号都是独一无二的,就像我们的身份证一样。还有一种方式是直接在手机包装盒上面有IMEI码,把这三个位置获取的IMEI码对比是否完全一样,真品手机这三个位置的IMEI码是一致的。在百度首页中输入vivo官网,登陆vivo官方网站。我们在vivo官网上找到“服务”模块,点击进入。通过安全验证之后,官网上就可以查询到手机的相关信息和保障服务状态。