当涉及到预测数据(时间序列或其他类型的序列)时,人们会关注基本回归、ARIMA、ARMA、GARCH,甚至Prophet,但不排除使用随机森林来预测数据。
随机森林通常被认为是一种分类技术,但回归问题绝对是随机森林可以处理的。
在本文中,我打算使用在网上找到的一个数据集,叫做温莎市房屋销售价格。出于写作的目的,我将只使用价格(price)和批量(lotsize)列。注:在以后的文章中,我打算摒弃这些数据,并对随机森林进行多元回归。
为了开始,先让我们导入项目开始所需的所有库。和往常一样,你可以在这里使用jupyter笔记本来运行这个分析。
现在来加载数据:
同样,我们只使用数据集中的两列—价格(price)和批量(lotsize)。让我们把这些数据画出来,直观地看一看,用批量(lotsize)来预测价格(price)是否有意义。
从数据来看,使用批量来预测价格似乎是一个不错的猜测。
现在,让我们准备好数据集来训练和测试数据。
在上面,我们把随机森林回归量设置为X和y,然后设置我们的训练和测试数据。对于训练数据,我们将取前400个数据点来进行随机森林训练,然后对最后146个数据点进行测试。
现在,让我们运行随机森林回归模型。首先,我们需要从sklearn中导入Random Forest regression:
现在是时候让我们来运行随机森林回归看看会得到什么。
让我们可视化价格(price)和预测价格(predicted_price)。
对于批量(lotsize)预测价格(price)这个大胆的猜测来说,结果确实差强人意。从视觉上,它看起来相当不错(尽管肯定有错误)。
让我们看看基本级别的错误。首先,快速地画出两者之间的“区别”。
这里的错误相当大。我们来看一些值,比如R的平方(R-Squared )和均方误差(Mean Squared Error)。首先,让我们从sklearn导入适当的函数。
现在,让我们来看看R的平方(R-Squared):
R-Squared是0.6976,也就是0.7。对于随机猜测来说,结果不是很好,但也不是很糟糕。0.7(或70%)是为了告诉你,大约70%的“信号”变化是由用作预测器的变量解释的。从全局来看,这还不错。
我可以继续进行其他错误的计算,但这篇文章的重点不是展示“准确性”,而是展示如何使用随机森林进行预测的“过程”。
英文原文:https://pythondata.com/forecasting-with-random-forests/
译者:任宇は神様