数据分享|Python爱彼迎Airbnb新用户体验数据XGBoost、随机森林预测

简介: 数据分享|Python爱彼迎Airbnb新用户体验数据XGBoost、随机森林预测

全文链接: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对本文所作的贡献表示诚挚感谢,她在西交利物浦大学完成了信息与计算科学学位。擅长数据采集与处理。

相关文章
|
2月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
1187 1
|
2月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
382 0
|
2月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
2月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
3月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
3月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
3月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
3月前
|
机器学习/深度学习 数据采集 算法
独家原创 | CEEMDAN-CNN-GRU-GlobalAttention + XGBoost组合预测研究(Python代码实现)
独家原创 | CEEMDAN-CNN-GRU-GlobalAttention + XGBoost组合预测研究(Python代码实现)
133 2
|
机器学习/深度学习 数据采集 算法
Python实现xgboost分类模型(XGBClassifier算法)项目实战
Python实现xgboost分类模型(XGBClassifier算法)项目实战
|
机器学习/深度学习 并行计算 算法
第113天: Python XGBoost 算法项目实战
第113天: Python XGBoost 算法项目实战
618 0

推荐镜像

更多