使用sklearn randomforestrestregressor时,我的数据帧的x值是多少?

2024-06-01 05:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的学校项目做一个大数据项目。我的数据集如下:https://github.com/gindeleo/climate/blob/master/GlobalTemperatures.csv

我在试着预测“陆地平均温度”的下一个数值。你知道吗

我之前问过另一个关于这个话题的问题问题。之后我的第一个问题一无所获,然后又失败了一天,我决定从头开始。你知道吗

现在,我想知道我的数据集中哪个值是“x”,以便正确地进行预测。我读到y是一个因变量,我想预测,x是自变量,我应该用它作为“预测”来帮助预测过程。在这种情况下,我的y变量是“LandAverageTemperature”。我不知道x值是多少。一开始我用的是x的日期值,但现在我不确定这是真的。你知道吗

如果我不应该使用randomforestrestregressor或sklearn(我从spark开始这个项目),请让我知道。提前谢谢。你知道吗


Tags: csv数据项目httpsgithubmastercomblob
2条回答

您只有一个变量(LandAverageTemperature),所以很明显这就是您要使用的。你要找的是df.shift()函数,它可以改变你的值。使用此函数,您可以将过去值的列添加到dataframe。然后你就可以用t 1 month/day agot 2 months/days ago等来预测另一天/月的温度。你知道吗

你可以这样使用它:

for i in range(1, 15):
    df.loc[:, 'T–%s'%i] = df.loc[:, 'LandAverageTemperature'].shift(i)

您的列将是temperature,温度为T-1T-2,最多14个时间段。你知道吗

关于什么是时间序列预测的合适模型的问题,本站点将不讨论这个问题,但是https://stats.stackexchange.com上有许多资源。你知道吗

一般情况下,您可以将X特征矩阵用于除目标列之外的所有数据列。但在你的情况下,有几个并发症:

  • 很多年来,您在大多数列中都有遗漏(空)数据。您可以从列车数据中排除这些行/年。或者排除缺少数据的列(这几乎是所有的列,这不好)。你知道吗
  • 回归模型不能直接使用日期字段,您应该将日期字段拖到一些数字字段,例如“第一次观察的月数”。类似于(1750年)*12个月以上。或者/你可以把年和月放在不同的列中(如果你的数据中有一些“季节性”就更好了)。你知道吗
  • 你有连续的时间数据在这里,所以可能是你不应该使用简单的回归。使用一些ARIMA/SARIMA/SARIMAX等所谓的时间序列模型,在您的案例中,这些模型逐月按顺序预测目标数据。这是一个很难学习的话题,但你一定要看看TS,因为如果不是今天,你将来会需要它的。你知道吗

相关问题 更多 >