python酒店数据分析_python数据分析实战——AirBnb用户分群
项目背景
AirBnb是一个旅行服务短期租赁社区,它拥有广泛的用户出行场景数据,通过这些数据,锁定潜在的目标客户群并指定相应的营销策略是Airbnb业务发展的基石。
分析需求:
通过现有数据,对AirBnb用户进行客户分群,分析用户群体的核心特征。方便未来的营销
分析流程:
1.数据概况分析:数据行/列数量、 缺失值分布
2.单变量分析:数字型变量的描述指标、类别型变量统计、日期型变量处理
3.模型建立、选择群数、模型评估与优化
分析过程:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn
df = pd.read(r'airbnb.csv')
df.info()
df.head()
image.png
字段说明
age:年龄
date_account_created: 用户注册日期
date_first_booking: 用户首次订房日期
gender:性别
Language_EN:使用英文语言
Language_ZH:使用中文语言
Country_US:目的地是美国
Country_EUR:目的地是欧洲
android:安卓渠道
moweb: H5渠道
web:网页渠道
ios: IOS渠道
Married: 是否已婚
Children:小孩的数量
df.describe()
年龄最大值为2014,存在异常值,进行异常值数据处理
#保留大于18岁且小于80岁的用户
df = df[df['age'] >= 18]
df = df[df['age'] <= 80]
df.describe()
年龄数据处理完成,18-80这个年龄段是大多数用户的年龄段。因此数据选取也比较合理。
类别型变量(日期)的调整,日期变量:用户注册日期,有两种方式
1.将用户注册的年份提取出来
2.计算用户注册到现在的时间(更有价值)
#step 1 :将注册日期转化为日期格式
df['date_account_created'] = pd.to_datetime(df['date_account_created'])
df.info()
date_account_created格式已经转化为时间格式
df['year_since_account_created'] = df['date_account_created'].apply(lambda x: 2019-x)
df.year_since_account.describe()
最短的注册时间是5年最长的是9年
df['date_first_booking'] = pd.to_datetime(df['date_first_booking'])
df['year_since_first_booking'] = df [ 'date_first_booking'].apply(lambda x : 2019 - x.year)
df.year_since_first_booking.describe()
发现距离第一次预定时间最短的是4年,最长的是9年
这样的衍生变量在预测消费者购买能够更好得到潜在效果
df = pd.get_dummies(df)
df.info
gender变量已经由原来的object类型变成了类别型变量
已经将日期转变成了距今的年份,可以将两个日期变量删除
#把类型为datetime64的数据drop
df.drop(df.select_dtypes(['datetime64']),inplace = True,axis = 1)
df.info()
我们已经将数据类型为datetime64的数据drop掉,也保留了我们需要建模的核心数据。
建模前准备:选取5个变量,作为分群的维度。
airbnb_5 = df[['age','web','moweb','ios','android']]
数据标准化,使用sklearn中预处理模块scale
from sklearn.preprocessing import scale
x = pd.DataFrame(scale(airbnb_5))
建立模型
使用cluster建模
from sklearn import cluster
先尝试3种分类
model = cluster.KMeans(n_clusters=3, random_state = 10)
model.fit(x)
提取标签查看分类结果
airbnb_5['cluster'] = model.labels_
airbnb_5.head(20)
绘制散点图 查看分群的效果
#横坐标为age(年龄),纵坐标为ios(是否为ios客户端),类别会为分群类别
sns.scatterplot(x = 'age' , y = 'ios' , hue = 'cluster',date = airbnb_5)
从散点图我们可以看出 是否使用ios系统这一变量分群效果不错
模型评估与优化
使用groupby函数,评估各个变量维度的分群效果
airbnb_5.groupby(['cluster'])['age'].describe()
age年龄区分度比较弱,3类yongh年龄都在18-78岁
airbnb_5.groupby(['cluster'])['ios'].describe()
ios的区分度比较好,1群和2群的ios值为0 0群的ios值为1
使用silhouette score,评估模型效果
from sklearn import metrics #调用sklearn的metrics库
x_cluster = model.fit_predict(x) #个体与群的距离
score = metrics.silhouette_score(x,x_cluster) #评分越高,个体与群体越近;评分越低,个体与群体越远
print(score)
centers = pd.DataFrame(model.cluster_centers_)
centers.to_csv('center_3.csv')
center_3
将群组分成5组
model = cluster.KMeans(n_cluster = 5 , random_state = 10)
model.fit(x)
centers = pd.DateFrame(model.cluster_centers_)
centers.to_csv('center_5.csv')
center_5
业务数据解读
先看center_3
center_3
行:每一行都是系统认为的一个群组,即0群,1群,2群
列:重点关注每一列的数据,找绝对值较大的数字,结合业务理解给予判断
0 和 2 两个群组独特,下单渠道集中
2群用户:果粉,ios重度用户,不怎么用web
0群用户:通过H5页面下单,但是不适用app(可能是活动推送页面,然后跳转到H5页面去操作)
再看center_5
center_5
年龄变量有变大的趋势
3群的用户还是重度果粉。新拆分出的4群用户,好像不是很喜欢web下单也不是很喜欢ios下单,但是在Android这一项的分值也不是很高。我们勉强可以将这类的用户也添加一个喜欢用Android下单的标签。
python酒店数据分析_python数据分析实战——AirBnb用户分群相关推荐
- 数据分析方法和思维—RFM用户分群
公众号后台回复"图书",了解更多号主新书内容 作者:Rain 来源:DS数据科学之美 01 写在前面 在运营场景中, 经常需要对用户进行分层, 把整体的用户分层不同的层次的用户, ...
- 用户分群模型,这么建才有用
公众号后台回复"图书",了解更多号主新书内容作者:接地气的陈老师来源: 接地气学堂 一听到用户分群呀,很多同学都来劲了,网上大量写用户分群多如牛毛.可实际工作中,经常做完分群以后被 ...
- 标签体系、用户分群、用户画像「玩味」解读,你沦为形式主义了吗?
数据一直是各行各业的核心资产,蕴含巨大价值待挖掘,在数据→信息→知识的转化过程中,标签.指标是基础,它将抽象的数据转化为一个相对具象的信息中心,用户分群和用户画像都是在建立在信息中心上的综合应用手段, ...
- 淘宝用户日志数据集的用户行为分析与用户分群
文章目录 数据集描述 一.数据清洗 1.读取并查看数据基本信息和数据的完整性 2.查看数据集中行的重复情况并删除 3.处理缺失值 4.合并month和day列组成时间类型的date列 5.划分子数据集 ...
- 大数据 客户标签体系_大数据场景营销之标签体系、用户分群、用户画像
大数据一直是各行各业的核心资产,蕴含巨大价值待挖掘,在数据→信息→知识的转化过程中,标签.指标是基础,它将抽象的数据转化为一个相对具象的信息中心,用户分群和用户画像都是在建立在信息中心上的综合应用手段 ...
- 用户行为分析模型-(行为事件分析、用户留存分析、漏斗分析、行为路径分析、用户分群、点击分析)
最近有些忙,但是看到了很好的分析模型也要跟大家分享的,这篇博客有些粗糙,主要是po上一些链接供大家学习,有时间的话,我也会写出自己关于用户行为分析的理解的. 下面是关于用户行为分析常见的分析维度,有助 ...
- 用户分群模型:如何打造精细化运营基石?
众多企业追求精细化运营,用户画像.千人千面成为企业数据驱动的必谈热词,但是谈到如何落地,很多企业不得其法. 用户分群是企业精细化,数据化运营的前提,将用户信息标签化,通过用户的历史行为路径.行为特征. ...
- 用户增长分析——用户分群分析
导语在产品的增长分析当中,想关注符合某些条件的一部分用户,不仅想知道这些人的整体行为(访问次数,访问时长等),还希望知道其中差异较大的细分群体.用户分群方法,能帮助我们对差异较大的群体分别进行深入分析 ...
- 用户增长体系——用户分群分析
导语在产品的增长分析当中,想关注符合某些条件的一部分用户,不仅想知道这些人的整体行为(访问次数,访问时长等),还希望知道其中差异较大的细分群体.用户分群方法,能帮助我们对差异较大的群体分别进行深入分析 ...
- 【原创干货】用户标签/用户分群在DMP(数据管理平台)中的应用 | SG小组第一期
前言: SG小组(Study Group)是几个在杭州的产品经理小伙伴基于兴趣而自发组建的学习小组,我们每周会定期开展学习和讨论会,以期通过分享讨论各自熟悉的领域和正在进行的产品项目来达到互相提升的目 ...
最新文章
- python 画图_学python画图最快的方式——turtle小海龟画图
- 【Python基础】字符串专题总结
- 排序算法 —— 冒泡排序
- 再见 Nacos,我要玩 Service Mesh 了!
- CentOS 7 安装SVN服务端
- leetcode —— 206. 反转链表
- postgreSQL源码分析——索引的建立与使用——GIST索引(1)
- 【转】switch与if的区别
- python中0x3f_Python学习笔记(一):基本数据类型
- 将安卓手机摄像头打造成电脑高清摄像头
- 绘制双Y轴坐标系及其设置
- 伍斯特理工学院计算机专业,伍斯特理工学院计算机科学专业
- 使用Python比较两个文本文件的相似度
- 国家c语言计算机二级,国家计算机二级考试 C语言基本知识.pdf
- Flask中蓝本(Blueprint)的使用
- can总线程序讲解_详解CAN总线
- MATLAB画旋转曲面1
- 14 Python 办公自动化
- 靠java_基础不牢靠,何以争朝夕?Java基础面试82道详细解析!(一)
- 华为、百度这些大公司都青睐哪些编程语言呢?
热门文章
- 类、面向对象(封装、继承、多态),面向过程
- 易语言MYSQL记账工具_易语言做记账软件
- linux 加速度传感器数据获取,Android传感器SensorEventListener之加速度传感器
- 在梦想的道路上,一路前行
- 有一定基础的JAVA学习笔记_02(面向对象)
- ME525做网络收音机和学外文用了……(安卓4.4.4系统,20190817更新)
- 系统安全——Windows中的共享文件和文件服务器
- Photoshop从入门到放弃
- 京东618自动浏览叠蛋糕app
- OB0202 obsidian kanban插件使用