携程-出行产品未来14个月销量预测-第七名代码解读

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/h4565445654/article/details/72232637

话不多说,既然来到这里想必已经对此比赛有所了解,比赛官网为:科赛平台。而我们团队为-小月亮团队,取得了比赛的第7名。以下为我们的代码以及答辩PPT网址:https://github.com/zhangyuepeng/Ctrip14。大家没事也不用看源码,没什么营养,干货没多少,想到的都说在这里了。


  • 首先我认为此题,数据量较小只有4000个产品,样本缺失数据大,最奇葩的地方在于要利用产品23个月的历史销量来预测未来14个月的销量。当时的感觉就是这要是用模型的话,我想到有两种:
    1. 建立一个模型,只预测未来一个月,然后级联的预测未来14个月,这样误差会累积,感觉十分不靠谱没有做。
    2. 针对预测的每一个月建立一个模型,认为未来的14个月间隔时间太长,还是觉得不靠谱。
  • 而让我最终选择使用规则放弃模型的主要原因还有,在这4000个出行产品中有几百个销量数据是不全的,并不是23个月都有数据,即使我使用模型来做,最后也要单独考虑这些脏数据(当然这只是我想到模型有这个弊端,后面我会介绍本次比赛前三的队的模型的基本思想,有的建模方式是不存在此问题的)。

  • 下面我简短的介绍一下我们的规则模型。下图为我们解决方案的主要架构:主要架构
    就是对数据进行分类处理,先提取强周期性的产品进行预测(剩下的数据我们还利用相关系数加上了一定的周期惩罚),然后根据已有的历史销量数据进行分类处理,具体细节这里不再详述。要提出的是,我们的规则重用了voters(评论数)这个特征,尤其在历史销量数据较少的情况,我们大量使用了voters进行修正。
  • 说到voters这个特征,不得不说,这个比赛携程方面出的明显不太合理。偏离了实际业务应用。我们预测未来14个月产品的销量,而数据直接把voters(包括了未来14个月的投票数)不经过处理给了我们,这相当于未来特征啊。这对于我们预测哪些没有历史销量的数据是一个极大的帮助,一般情况下,那当然是销量越大评论数越大了。

  • 下面我们看一下此次比赛top3团队的解决方案。首先要说的一点的是,top3的团队都是用模型来做的,当然他们用的模型与我上述所想的模型有所不同。
  • 他们用的模型是建立一个模型直接对未来14个月进行预测,说实话这样的方案我感觉也不靠谱,因为这样以来,模型中某个出行产品未来第1个月和第2个月不一样的特征,本质上只有一个就是月份不一样,就靠这一个特征能很好区分预测未来的14个月吗!事实是人家效果确实好,没办法了,只能说对于预测同一个产品未来的14个月的销量,其所有不同的特征也只能由不同的月份带来。有点绕,哈哈哈!!!
  • 而且这其中还有两队没有用历史销量来构造特征,我服了you,这都能行。想想看,一个产品上个月以及去年同月的销量最能够用来表征和预测这个月的销量了,这就是大家为什么一直用同比和环比来衡量公司的发展情况。但是,你们竟然没有用而是仅仅把销量作为target来进行回归。你们就不怕存在类似这种情况:面对面的两家店,所有特征都一样,但是就是因为一家老板娘漂亮,导致销量就是高吗。这样的话你们统计到的特征估计除了voters其他的都一样吧。但是,这样建模完美解决了那些没有历史销量而需要预测的这部分数据,一样的特征拿来我照做,厉害了。
  • top3的队伍中,我看了所有的答辩PPT和一个团队的源码,有两队明确说出在模型中结合了一些规则。

  • 最后感谢科赛平台和携程的服务人员,非常的尽职尽责。
展开阅读全文

没有更多推荐了,返回首页