根据爱彼迎的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年为测试集。
高效地实现了GBDT算法并进行了算法和工程上的许多改进,其原理是不断地添加树,每次添加一个树会学习一个新函数f(x),并拟合上次预测的残差。
当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数
最后只需要将每棵树对应的分数加起来就是该样本的预测值。
最后选取概率最大的预测值作为预测结果。
随机森林是一种集成学习,通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。它依靠于决策树的投票选择来决定最后的分类结果。
模型优化
1.特征提取,样本抽样,参数调参。
通过图像可以看出,部分目标城市在某些月份观光量增多。
年纪较长(40+)的人群更倾向于去US。
未填写性别信息的人更倾向于不预定。
使用英语为母语的人群相较于其他人群更倾向于去US。
大多数用户更倾向于使用web进行操作,也有一部分使用ios系统操作。
可以向年长人群与母语为英语人群更多的推荐US的住宿信息,其他人群则多样化的推广。
优化ios,安卓等系统上的产品,以此获得更多用户。
通过使用XGBoost来进行预测,最终得到准确率为0.628
通过使用随机森林来进行预测,最终得到准确率为0.749
可以得出使用随即森林算法比XGBoost准确性更高。
输出/预测结果(部分):
关于作者
在此对Zhuhua Huang对本文所作的贡献表示诚挚感谢,她在西交利物浦大学完成了信息与计算科学学位。擅长数据采集与处理。
点击标题查阅往期内容
R语言贝叶斯广义线性混合(多层次/水平/嵌套)模型GLMM、逻辑回归分析教育留级影响因素数据
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
广义线性模型glm泊松回归的lasso、弹性网络分类预测学生考试成绩数据和交叉验证
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据(含练习题)
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
R语言Bootstrap的岭回归和自适应LASSO回归可视化
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
R语言用LASSO,adaptive LASSO预测通货膨胀时间序列
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
R语言Bootstrap的岭回归和自适应LASSO回归可视化
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
R语言用LASSO,adaptive LASSO预测通货膨胀时间序列
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC
R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型
R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化
R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化
R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计
R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析