首页 > 编程语言 >Python爱彼迎Airbnb新用户体验数据XGBoost、随机森林预测

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

时间:2023-05-12 21:55:06浏览次数:61  
标签:爱彼迎 预测 Python XGBoost 用户 随机 数据 森林

全文链接:http://tecdat.cn/?p=32380

原文出处:拓端数据部落公众号

分析师:Zhuhua Huang

在多项用户数据中寻找与预测值相关的属性。查看各个特征的分布与特征之间的关联。分析用户数据,查看特定人群的使用习惯进行产品优化。最后选择合适的模型与参数来进行预测。

解决方案

任务/目标

根据爱彼迎的2009-2014年的用户数据,预测用户第一次预约的目的地城市。同时分析用户的行为习惯。

 

数据源准备 :

数据源包含训练集用户数据与测试集用户数据,用户数据包含id, 性别,年龄,创建账户时间,第一次预定时间,目的地城市(需预测值)等。

首先将训练集数据与测试集数据整合在一起。查看数据并清洗数据,处理脏值 。 将年龄中的离群值(<18 或 >100)删除。

特征转换 :

通过画图(柱状图,箱形图)直观展示每个特征的分布情况和该特征对于预测值的影响。

image.png

图表 1 性别分布

image.png

图表 2 性别与预测值的关系

image.png

图表3 App使用种类与目标城市的分布

 

通过分析,将无意义的特征值删除,如用户id,第一次激活时间等。

将分类数据(性别,语言,使用的设备类型)进行独热编码。

并将时间类型数据转化成年,月,日变量。寻找不同月份与账号创建的关联。

image.png

图表4 2013年每月账号创建统计

1111.png 图表5 2013年每月目的地城市分析


构造

以上说明了如何抽取相关特征,我们大致有如下训练样本(只列举部分特征)。

image.png

划分训练集和测试集

为了证实模型的准确性,将训练集中的数据再分为训练集和测试集。当账户创造时间为2014年以前时,数据为训练集,2014年为测试集。

建模

XGBoost:

高效地实现了GBDT算法并进行了算法和工程上的许多改进,其原理是不断地添加树,每次添加一个树会学习一个新函数f(x),并拟合上次预测的残差。

当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数

最后只需要将每棵树对应的分数加起来就是该样本的预测值。

最后选取概率最大的预测值作为预测结果。

随机森林:

随机森林是一种集成学习,通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。它依靠于决策树的投票选择来决定最后的分类结果。

模型优化

1.特征提取,样本抽样,参数调参。

通过图像可以看出,部分目标城市在某些月份观光量增多。

年纪较长(40+)的人群更倾向于去US。

未填写性别信息的人更倾向于不预定。

使用英语为母语的人群相较于其他人群更倾向于去US。

大多数用户更倾向于使用web进行操作,也有一部分使用ios系统操作。

可以向年长人群与母语为英语人群更多的推荐US的住宿信息,其他人群则多样化的推广。

优化ios,安卓等系统上的产品,以此获得更多用户。

通过使用XGBoost来进行预测,最终得到准确率为0.628

通过使用随机森林来进行预测,最终得到准确率为0.749

可以得出使用随即森林算法比XGBoost准确性更高。

输出/预测结果(部分):

image.png

关于作者

image.png

在此对Zhuhua Huang对本文所作的贡献表示诚挚感谢,她在西交利物浦大学完成了信息与计算科学学位。擅长数据采集与处理。


Corporate-purpose-975027882-STANDARD-1415x1415.jpg

最受欢迎的见解

1.PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯模型和KMEANS聚类用户画像

2.R语言基于树的方法:决策树,随机森林

3.python中使用scikit-learn和pandas决策树

4.机器学习:在SAS中运行随机森林数据分析报告

5.R语言用随机森林和文本挖掘提高航空公司客户满意度

6.机器学习助推快时尚精准销售时间序列

7.用机器学习识别不断变化的股市状况——隐马尔可夫模型的应用

8.python机器学习:推荐系统实现(以矩阵分解来协同过滤)

9.python中用pytorch机器学习分类预测银行客户流失

标签:爱彼迎,预测,Python,XGBoost,用户,随机,数据,森林
From: https://www.cnblogs.com/tecdat/p/17396381.html

相关文章

  • python软件与编程语言
    编程语言的发展史1.机器语言:计算机内部只认识01二进制数据  #由于计算机是基于电工作的,电是有高低电频之分的,高电频和低电频 优点:执行速度快 缺点:学习难度大2.汇编语言  #用简单的字母表示一串二进制  00011001  a  00001  b  00010  c......
  • Python 输出简单彩色字符【ANSI 转义序列笔记】
    """ASCII码的0-31和127被称为C0控制字符例如\07就是BEL,响铃(\0表示八进制)其中\033(十进制27,十六进制x1B)是ESC,转义字符,它可以用于转义序列如\033[表示序列导入(ControlSequenceIntroducer),简写为CSI也可写作\x1b[两个字......
  • Python
    Python变量变量命名规则变量名必须以字母或下划线字符开头变量名称不能以数字开头变量名只能包含字母数字字符和下划线(A-z、0-9和_)变量名称区分大小写(age、Age和AGE是三个不同的变量)变量赋值切片法:x,y,z="Orange","Banana","Cherry"多个变量名同时赋值:x=......
  • Python中的for循环
    在Python中,for循环用于遍历序列(列表、元组、字符串等)或其他可迭代对象中的元素。for循环的语法如下:for变量in序列:执行代码块其中,变量是用于存储序列中当前元素的变量名,序列是要遍历的序列,代码块是要执行的操作。代码块必须缩进,通常使用四个空格缩进。下面是一个遍历列表......
  • 编程语言与Python介绍题
    计算机存储单位1024bytes=1KB  1024KB=1MB 1024MB=1GB 1024GB=1TB(10.24程序员节日)编程语言的发展史1.机器语言:计算机内部只认识01二进制数据。优点:执行效率高,缺点:学习难度大、跨平台性差2.汇编语言:用一个英文字母来表示一串二进制 优点:执行效率高,缺点:开发效率低,跨平......
  • Python通过GeoIP获取IP信息(国家、城市、经纬度等)
    前言IP地址信息是非常重要的情报信息,通过IP可以定位到该IP所在的国家、城市、经纬度等。获取IP信息的方式有很多,很多服务商都提供了相应的地址库或API接口服务。如国内的ipip.net,国外的ip-api.com、maxmind.com等。很多公司都是使用Maxmind网站的IP信息库,里面包含着IP的详细信息,......
  • Python 执行 Shell命令
    方法一:os.system() os.system()可以说是最为基本的运行shell命令的方式了,这个方法的特点就是直接运行命令,并将运行之后的状态值返回码返回,所以结果是一个int类型,这个方式比较常见是运用在只需要执行shell命令而不需要得到命令的返回结果的场景。比如执行一个创建目录的......
  • day02 编程语言与Python介绍
    昨日总结回顾第二节编程语言与Python介绍【一】引言基于上一节所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。【二】编程语言分类【1】机器语言(1.1)什么是机器语言机器......
  • 水果识别系统python
    介绍水果识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对5种垃圾数据集进行训练,最后得到一个识别精度较高的模型。并基于Django框架,开发网页端操作平台,实现用户上传一张图片识别其名称。效果展示演示视频和源码视频+代码:http......
  • 在python3.7+中优雅的使用dataclass
    [本文出自天外归云的博客园]在Python3.7+中,dataclasses是一个非常优雅的工具,可以轻松地创建简单的类,并自动生成常见的类方法,比如 __init__、__repr__ 等。以下是一些使用dataclasses时需要注意的事项:导入dataclasses模块在使用dataclasses之前,需要先导入datacla......