zoukankan      html  css  js  c++  java
  • 滑窗法详解

    一:问题描述

    题目中涉及到严格的时间概念,例如:预测未来N天的流量(人流,销售等),预测未来N天内的用户-对象对(用户-商品等)的问题等,都可以利用滑窗法解决。诸如类似形式的问题,尤其是要有严格的时间概念的问题。

    二:基本方法

    假设:题目描述为预测未来N天的流量信息,其中N的取值为大于等于1。基本诸如此种问题,题目会给出前X天的详细信息。这样,我们就知道,其完整的数据为 X+N 的形式,其中 N 是需要我们预测的部分,其真实值未知。

    具体题目:recruit-restaurant-visitor-forecasting

    通过机器学习的方法解决此类问题,需要构造与问题描述类似的样本格式。

    我们需要在 X 中构造出与 X+N 格式一致的样本,这种情况下,切分X为两个部分,[X-M,M],其中M=N的长度。这样,就拥有了带有标签的数据,其中M是我们线下预测的部分其本质是符合线上的N的部分,而X-M类似于在[X,N]中的X部分。

    线上预测部分:[X,N]

    线下模拟部分:[X-M,M]

    在这种情况下,由于仅仅划分了一部分的X为线下模拟部分,其数据量太小。因此,我们可以通过 滑窗法 增加更大部分的样本,以覆盖尽可能多的数据达到能够让我们的模型学习到更多的情况。

    我们对于X-M进一步分割为 [X-M-L,L] 其中L=M=N

    现在的数据格式

    线上预测部分:[X,N]

    线下模拟部分:[X-M,M],[X-M-L,L]

    通过一次又一次的对数据的形式划分,可以得到充足的数据。

    其中,对于L,M,N其数值也可以不等。

    例如N=39,L=28,N=14,这种情况下,针对具体问题,需要通过验证的方式去调试。

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++

    划分好了类似的数据,这样我们需要明确哪些数据可以进行统计,同时也要知道那些数据作为需要预测的Y。

    回顾问题,我们要预测N,那么N天内的销量就是我们待预测Y_pred,这样我们已经线下划分了不同的子区间,那么根据对应关系,其M就可以提取出真实的Y,而在X-M对应于在[X,N]区间的X,这个部分可以尽情的做数据的统计。

    普遍在代码实现时,在[X-M,M]区间中,我们会首先提取M中的真实值Y和唯一标识ID,之后再X-M中不停的统计,最后通过唯一标识ID拼接到这个M中。

    这样就把[X-M,M]转化为一个带有Y的data。

    梳理一下最后的结果

    [X,N]最后为不带Y的data,

    [X-M,M]带有Y的data,

    [X-M-L,L]带有Y的data.

    假设我们提取了很多数据,我们可以自己划分train,valid

    train 为 {[X-M-L,L] , [X-M-L-K,L-K],}

    val 为 [X-M,M]

    之后可以通过模型训练并进行对[X,N]的预测。

    特征的提取需要结合具体题目,没有一定的套式。

    诸如此种方式逐步可以增加更多的数据,其数据基本格式模拟线上的基本形式。 

    三:U-I-Rank问题

    假设:某宝购物平台要预测一天的用户购买情况,这种情况下也是一个和时间有关的问题,不过这个问题中,我们既要预测用户买不买,同时也要预测买啥。

    问题转换:这个问题,我们可以同时提取USER-ITEM对,转化为用户-产品对的形式,理解为:将user-item作为唯一标识,最终选择user-item预测概率最大的topN作为结果。

    具体题目链接:天池新人赛

    关于天池新人赛的题目在CSDN上面有很多人分享了思路,可以作为参考。

    四:总结

    对比以上所说的两类问题,都是和时间有密切关系且都是预测未来N天的一些Label值,都可以采取这类方式做最基本的处理。

    这里简单描述了针对时间严格的问题的一种方案,我也是初学者,如有不足或者问题,请指出

  • 相关阅读:
    android 文件上传
    windows去掉开机输入用户名密码
    获取数据时候的滚动条加载……
    服务器标记不正确?在aspx页面如何绑定cs端的参数或绑定
    使用vs2003进行web开发的时候碰到的一些小问题
    c#实现Winform中的分页
    showModalDialog弹出页面以及子页面回传值的问题
    中文传值乱码问题
    引用的类“Infragistics.WebUI.UltraWebTab.UltraWebTab”具有在未被引用的程序集中定义的基类或接口“Infragistics.WebUI.Shared.IUltraLicensedComponent”
    ERwin7.1学习笔记之-
  • 原文地址:https://www.cnblogs.com/lvpengbo/p/8757672.html
Copyright © 2011-2022 走看看