全文链接:http://tecdat.cn/?p=32380
分析师:Zhuhua Huang
在多项用户数据中寻找与预测值相关的属性。查看各个特征的分布与特征之间的关联。分析用户数据,查看特定人群的使用习惯进行产品优化。最后选择合适的模型与参数来进行预测(点击文末“阅读原文”获取完整数据)。
解决方案
任务/目标
根据爱彼迎的2009-2014年的用户数据(查看文末了解数据免费获取方式),预测用户第一次预约的目的地城市。同时分析用户的行为习惯。
数据源准备 :
数据源包含训练集用户数据与测试集用户数据,用户数据包含id, 性别,年龄,创建账户时间,第一次预定时间,目的地城市(需预测值)等。
首先将训练集数据与测试集数据整合在一起。查看数据并清洗数据,处理脏值 。 将年龄中的离群值(<18 或 >100)删除。
特征转换 :
通过画图(柱状图,箱形图)直观展示每个特征的分布情况和该特征对于预测值的影响。
图表 1 性别分布
图表 2 性别与预测值的关系
图表3 App使用种类与目标城市的分布
通过分析,将无意义的特征值删除,如用户id,第一次激活时间等。
将分类数据(性别,语言,使用的设备类型)进行独热编码。
并将时间类型数据转化成年,月,日变量。寻找不同月份与账号创建的关联。
图表4 2013年每月账号创建统计
图表5 2013年每月目的地城市分析
点击标题查阅往期内容
PYTHON链家租房数据分析:岭回归、LASSO、随机森林、XGBOOST、KERAS神经网络、KMEANS聚类、地理可视化
01
02
03
04
构造
以上说明了如何抽取相关特征,我们大致有如下训练样本(只列举部分特征)。
划分训练集和测试集
为了证实模型的准确性,将训练集中的数据再分为训练集和测试集。当账户创造时间为2014年以前时,数据为训练集,2014年为测试集。
建模
XGBoost:
高效地实现了GBDT算法并进行了算法和工程上的许多改进,其原理是不断地添加树,每次添加一个树会学习一个新函数f(x),并拟合上次预测的残差。
当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数
最后只需要将每棵树对应的分数加起来就是该样本的预测值。
最后选取概率最大的预测值作为预测结果。
随机森林:
随机森林是一种集成学习,通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。它依靠于决策树的投票选择来决定最后的分类结果。
模型优化
1.特征提取,样本抽样,参数调参。
通过图像可以看出,部分目标城市在某些月份观光量增多。
年纪较长(40+)的人群更倾向于去US。
未填写性别信息的人更倾向于不预定。
使用英语为母语的人群相较于其他人群更倾向于去US。
大多数用户更倾向于使用web进行操作,也有一部分使用ios系统操作。
可以向年长人群与母语为英语人群更多的推荐US的住宿信息,其他人群则多样化的推广。
优化ios,安卓等系统上的产品,以此获得更多用户。
通过使用XGBoost来进行预测,最终得到准确率为0.628
通过使用随机森林来进行预测,最终得到准确率为0.749
可以得出使用随即森林算法比XGBoost准确性更高。
输出/预测结果(部分):
关于作者
在此对Zhuhua Huang对本文所作的贡献表示诚挚感谢,她在西交利物浦大学完成了信息与计算科学学位。擅长数据采集与处理。