----目录----
一、数据预处理
二、变量选择
三、建模
四、解读业务
数据源包括25317条用户数据,有年龄、职业、婚姻状况及天猫使用情况等....
该项目任务为建模并测试模型对“用户是否使用天猫优惠券”的预测效果
一、数据探索及预处理
1.职业情况
样本中蓝领、经理、技术人员最多,学生最少
data['job'].value_counts()
_______
#output:
blue-collar 5456
management 5296
technician 4241
admin. 2909
services 2342
retired 1273
self-employed 884
entrepreneur 856
unemployed 701
housemaid 663
student 533
unknown 163
Name: job, dtype: int64
下面是职业和使用优惠券情况的关系
可见学生、退休人员、失业人员这些低收入使用优惠券频率最高,蓝领、企业家这些高收入人群使用频率最低
可视化 | 数据 |
---|---|
2.年龄
2.1样本年龄分布
年轻人及老年人使用优惠券都比较多,中年使用优惠券情况都不多
2.2不同年龄段优惠券使用情况 然后对年龄分箱
#将不同年龄人数等分为10份
age_group = pd.qcut(data['age'],19)
#不同年龄段的优惠券使用情况
data['coupon_ind'].groupby(age_group).mean()
#分三个年龄段,18-29,30-59,60-100
#对用 youth、middle-age、elder
def age_split(age):
if age>17 and age<=29:
return 'youth'
elif age>=30 and age<=59:
return 'middle-age'
else:
return 'elder'
data['age_split'] = data['age'].map(lambda x: age_split(x))
分类依据 | 分类后计数 |
---|---|
3.婚姻状况
超出预想,通常以为婚后更会精打细算,想不到单身狗不仅单身还穷。太惨了
猜测婚姻情况与年龄、职业有关
⬇️下面做各职业的婚姻情况统计,可见收入高群体已结婚率更高,所以使用优惠券情况少
sns.set(font_scale=1.5) #初始化seaborn配置,并设置字体大小
sns.countplot(y='job',hue='marital',data=data,palette='Set1')
4.输出预处理
4.1one-hot编码
data.drop('ID',axis=1,replace=True)
data = pd.get_dum
4.2去掉‘ID’以及重复列
data1 = pd.get_dummies(data)