时间序列回归-RandomForest



为这些愚蠢的问题道歉-这里总共n00b。

假设我有以下数据集。

date,site,category,locale,type,rank,sessions,logins
01/01/2017,google.com,search,US,free,1,3393093,50000
01/01/2017,google.com,overall,US,free,1,3393093,50000
01/01/2017,yahoo.com,search,US,3,free,core,393093,40000
01/01/2017,yahoo.com,news,US,9,free,393093,40000
01/01/2017,yahoo.com,overall,US,23,free,393093,40000
01/01/2017,wsj.com,news,US,21,free,200000,180000
01/01/2017,wsj.com,news,US,21,subscription,200000,180000
01/01/2017,wsj.com,overall,US,93,free,200000,180000

其中rank是该站点的Alexa等级。可能有几个类别(搜索、电子邮件、电子商务等),排名与该类别中的排名相对应。

我正试图预测特定网站/地区/排名在特定一天的会话和登录次数,基本上可以归结为一个多变量时间序列回归问题,我使用的是sklearn的RandomForestReturnsor。

现在我根本不把它当作时间序列问题——为了训练,我删除了datesite列,对categorylocalerank列进行编码,使用它们和rank作为输入,并训练我的模型来预测sessionslogins。结果看起来不错,但我想知道:

  1. 如何将其转换为正确的时间序列预测?我看到了Jason Brownlee的一些例子,其中问题被重新定义为监督学习问题,但这不起作用,因为我可能有数百万行的训练数据。我可以按类别/区域设置/类型对训练数据进行分组,按日期排序,并在第T天对特定类别/区域/类型组合进行测试,使用直到第T-1天的数据进行训练-但这种方法非常昂贵,因为可能有数千种此类类别/区域设置/类型组合

  2. 我读过关于使用移动平均线来提高业绩的文章。在训练集中计算sessionslogins的移动平均值是微不足道的,但由于这是一个因变量,我如何在测试集中捕捉它?

  3. 对于这项任务,有比RF更好的工具吗?

我会在链接的博客文章中使用该方法,如果使用像shift这样的矢量化numpy操作,数据转换应该不会有问题。

顺便说一句,如果你忽略了日期,你只是在计算每组的平均数字,即你正在使用一个随机森林来构建一个非常奇特的数据透视表;-)

相关内容

  • 没有找到相关文章

最新更新