数据分享|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月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
252 10
|
23天前
|
数据采集 Web App开发 数据可视化
Python用代理IP获取抖音电商达人主播数据
在当今数字化时代,电商直播成为重要的销售模式,抖音电商汇聚了众多达人主播。了解这些主播的数据对于品牌和商家至关重要。然而,直接从平台获取数据并非易事。本文介绍如何使用Python和代理IP高效抓取抖音电商达人主播的关键数据,包括主播昵称、ID、直播间链接、观看人数、点赞数和商品列表等。通过环境准备、代码实战及数据处理与可视化,最终实现定时任务自动化抓取,为企业决策提供有力支持。
|
2月前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
2月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
3月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
86 3
|
3月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
146 0
|
机器学习/深度学习 数据可视化 测试技术
实战:用Python实现随机森林
随机森林如何实现?为什么要用随机森林?看这篇足够了!
4453 0
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。