python数据分析:携程出行产品预测未来14个月销量

原文:https://www.kesci.com/apps/home/#!/forum/postdetail/59194c685d9f204ee315ed90

调查发现,在出行产品业务中,不同区域的产品需求量级不一样,不同时段需求量会有高低起伏,相同区域相同时段各产品的需求量因产品特性不同又有差异。 此次竞赛的目的正是为了深入了解产品需求量和产品特性、历史销量的关系,挖掘出影响需求量的关键因素,预测出行产品未来14个月每月的销量,从而指导产品的库存管理和定价策略,这将对收益管理提升有着重要作用。

团队介绍

我们团队三人分别来自湖南大学、云南大学和中国科学技术大学。我们在比赛前期主要采用不同的方式各自为战,以便形成差异化的模型用于后期融合。

接下来,我将从问题分析、特征工程、模型选择和模型融合四方面来分享我们比赛的方法和经验。

赛题分析

首先通过题意可以得出,本题是一个预测的问题,既可以当做时间序列问题来处理,也可以当做回归问题来处理。若使用时间序列模型,对于预测月销量这一目标,会发现预测周期14个月对于23个月的历史数据显得过长,因此时间序列模型无法充分提取总体的变化趋势以及周期内的规律,因此将此题看做回归问题是更为合适的做法。

特征工程

在进行特征工程之前,要进行数据预处理。预处理工作主要包括两项,第一是剔除缺失率过高的特征,因为缺失率过高的特征基本上不包含有用信息;第二对缺失值选择合适的方法进行填补。

数据预处理完成后,开始构建特征,当我们把经纬度用图形呈现出来的时候,发现地理位置出现成块的聚集现象,这些聚集区可能在真实的地理位置上是同一块区域划分。于是自然地想到采用聚类的方式来处理。

此外发现聚集的程度是由下至上越来越发散,这里面可能存在一些信息,为了将这一信息保留,在聚类时,将类别名从下往上分别标记为0-8。

对于三项日期特征(startdate、cooperatdate和upgradedate),主要使用了两项处理方式:(1)product_month减日期;(2)2017年1月减日期。

在产品信息表中,总共给出了5种产品评价指标,其中3种是评级特征,一种为评分特征,另一种为点评人数特征。由于3种评级特征的分布大体一致,直接通过求和获得总评级特征。而点评人数特征则是该比赛的强特征,能够强有力的反映销量,于是我们通过点评人数特征额外地挖掘出“单位时长点评人数”和“单位产品点评人数”特征,以此来反映该产品的受欢迎程度。

对于产品的价格信息,我们主要是计算了价格的相关统计量,包括每个产品的最高价格、最低价格、平均价格、价格方差以及平均价格在所有价格中的排名(排序特征往往能消除数值量级变化过大和异常值带来的影响)。

由于每个产品对应唯一的订单属性1,因此订单属性1能够很好体现产品所属的类型。而每个产品在其他订单属性上均出现多属性值,因而从属性值数量的比值中抽取信息。

节假日永远是人们出行高峰期,而每个月的节假日天数并不相同,直观地来看,节假日天数越多的月份销量往往越高。因此我们将各月的节假日天数作为额外的特征。

总体来说,随着人们生活水平的提高,旅游人数也在逐年提高。有两种增长的趋势:(1)年内趋势,即每年的销售逐月增长,销售量以年为周期进行变化;(2)总体趋势,即销售量逐年增长。针对第一种趋势,我们提取月份值为特征。对于第二种趋势,则将2014年1月至2017年1月转换为1-37的序数特征,但是在选择采用树模型的时候,由于训练集中没有大于23的值,因此23以上的数值等价于23。

模型选择

通过多模型的对比,我们最终采用了XGBoost和lightGBM。

为了使多模型融合得到有效提升,我们采取了多种不同的方式设计模型。第一种是针对共线性特征分别构造多个模型,或者对类别特征采用不同的编码方式。第二种是对较优的单模型特征采用两种不同的算法(XGBoost和lightGBM),第三种则是分别对XGBoost和lightGBM采用10折交叉选取90%的数据训练预测。最后在模型融合时候,我们采取的策略是根据各单模型的表现效果,对各结果进行加权平均,这种方法不仅操作简单,也能使融合效果得到明显提升。其中使用了一个技巧,就是设计一个相对较差的模型,在加权平均时,赋予其负权重。

模型融合

这是我们关于本次赛题的整体思路展示,希望能对解决类似问题大家有所帮助。

选手问答 

Q1 代和平同学你好,首先恭喜你们获得了比赛的团体第三名。作为队长能简单就你们团队的情况做个简单介绍吗?

好的,我们团队主要由三名成员组成:队长代和平,队员胡涛和乔世吉。胡涛是来自云南大学,专业是应用统计学。乔世吉来自中国科学技术大学的核科学技术学院,而我则来自湖南大学,专业是管理科学与工程。我们三个是在比赛过程中认识的,因为在比赛初期大家成绩比较接近,然后我们就决定一起组队。

在比赛过程中,我们团队在前期主要采用不同的方式各自为战,以便形成差异化的模型用于后期融合这种方式来相互合作,后期也取得了很不错的效果。

Q2 你觉得本次比赛的难点在哪里?你们后面是通过什么样的方法去解决这个问题的?

我觉得难点在于预测集时间维度相对训练集较长,难以构造与线上表现一致验证集。

考虑到AB榜的分布应当是一致的,我与胡涛则直接把A榜线上的反馈结果作为对模型的验证,这样做的优点是这样的反馈及时有效,但缺点是容易陷入对A榜的过拟合。而乔世吉则构造线下验证集,以避免我们总体过拟合。

Q3 我注意到你的专业是管理科学与工程,是一个覆盖面很广的一级学科。你觉得数据分析在里面,除了扮演十分重要的分析工具这样一个角色更重要的意义在哪里?

自从管理科学这一学科诞生以来,主要目的是探索使用科学的方法来进行管理,而科学的方法则更多的是使用量化方法,我认为随着互联网的发展,每个企业或多或少都会积累很多数据,而这些数据则是他们改进内部管理、提升服务、挖掘市场的重要素材。因此充分发挥数据分析在现代管理中作用,对于一个企业至关重要。

Q4 整个回归模型分析下来在你们所得的结果中有么有让自己觉得惊喜的地方?

这次比赛主要有两个地方让我觉比较开心。第一个是将预测的结果与前23个月画在同一副图中,会发现回归得出的结果趋势与前两年的表现很是相像,对趋势拟合的很好。除此之外,我曾经一度对时序问题思路比较狭窄,总觉得只能用ARMIR,通过这次比赛也大大拓宽了我的思维。

Q5 对于对数据分析有兴趣或者刚刚进入数据分析的同学你有没有什么觉得很受益的入门书籍推荐给他们的?

我很早看过一本书,叫《赤裸裸的统计学》,里面没有复杂的公式,都是一些浅显易懂的语言,但是对统计学的本质讲解的很好,类似的还有一本是《深入浅出数据分析》。再深入一点可以再看看《机器学习系统设计》、《Python数据分析与挖掘实战》,这两本是更多的将数据分析与挖掘知识运用到实际当中。最后再了解背后的理论,建议将《机器学习实战》与《统计学习方法》结合着看。并且学习理论的同时也应该提升对数据的理解能力,如果能够充分理解数据,很够看懂数据背后潜在的信息对数据分析应该会起到事半功倍的效果。

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2017-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

牛!谷歌向量空间法:图片译成文字

39580
来自专栏数据派THU

独家 | 人工智能技术在医学领域的应用与前景(附PPT)

[导读]2017年6月20日,零氪科技首席架构师王晓哲,在清华大学“天池医疗AI大赛”第一季肺部结节智能诊断 《医学影像在肿瘤诊疗中的应用及智能诊断探索》发表演...

93070
来自专栏数据科学与人工智能

【数据科学】数据科学可以做什么

机器学习是数据科学的发动机。每种机器学习方法(也称为算法)获取数据,反复咀嚼,输出结果。机器学习算法负责数据科学里最难以解释又最有趣的部分。数学的魔法在此发生。...

299100
来自专栏杨建荣的学习笔记

人机大战第二回合后的思考(r12笔记第75天)

古希腊哲学家普罗泰戈拉说道:人是万物的尺度。在人工智能时代的今天,这句话更有深意,已经不是单纯的抒情了。 今天是AlphaGo和柯洁的第二场比赛。在谷歌De...

36460
来自专栏机器之心

业界 | DAC 2018目标检测系统挑战赛落幕:中科院、清华分获GPU与FPGA组冠军

无人机在工业、农业、军事及消费级市场均有如土地测绘、巡检监测、物资配送、灾后救援等重要作用。其中,实现高精度且高能效物体检测是开展所有无人机任务的基本要素,也是...

20420
来自专栏数据派THU

独家 | 一文读懂社交网络分析-上(附学习资源)

(点击可查看大图) 本文主要阐述: 社交网络的结构特性与演化机理 社交网络群体行为形成与互动规律 社交网络信息传播与演化机理 浏览后四章的内容请见下篇(2017...

1K100
来自专栏CVer

大牛分享 | 李航教授展望自然语言对话领域:现状与未来

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载

13700
来自专栏数据科学与人工智能

【陆勤阅读】参加kaggle数据挖掘竞赛是怎样一种体验?

先贴下Kaggle Profile以示诚意(https://www.kaggle.com/winsty)我是KDD Cup专业户,虽然每年做的都不是特别好。。。...

28190
来自专栏华章科技

程序员为什么要学深度学习?

深度学习本身是一个非常庞大的知识体系。本文更多想从程序员的视角出发,让大家观察一下深度学习对程序员意味着什么,以及我们如何利用这样一个高速发展的学科,来帮助程序...

11410
来自专栏AI科技大本营的专栏

知乎全力挺进AI,算法大赛打响反击今日头条的第一枪?

作者 | 周翔 知乎和今日头条,你能想象两者有一天会一言不合就相互 diss 吗? 最近几天,知乎大V@恶魔奶爸的一条朋友圈成了今日头条旗下“悟空问答”和知乎之...

38790

扫码关注云+社区

领取腾讯云代金券