背景:
“天猫”(英文:Tmail,亦称淘宝商城、天猫商城)原名淘宝商城,是一个综合性购物网站,是马云淘宝全新大招的B2C(Business-to-Consumer,商业零售)品牌,其整合数钱家品牌商、生产商,为商家和消费者之间提供一站式解决方案,提供100%品质保证的商品,7天无理由退货的售后服务,以及购物积分返现等优质服务
对顾客是否使用优惠券进行预测
一、数据概况分析
import pandas as pd
import numpy as np
import seaborn as sns
%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
coupon = pd.read_csv('天猫优惠券.csv')
#查看数据
coupon.head()
coupon.tail()
coupon.info()
coupon.job.value_counts()
coupon.marital.value_counts()
#需要把类别变量转化为数字型变量
coupon = pd.get_dummies(coupon)
coupon.head()
#删除包含重复无意义信息
coupon.drop(['job_unknown','default_no','returned_no','loan_no'],axis=1,inplace=True)
coupon=coupon.rename(columns={'coupon_ind':'flag'})
coupon.head()
二、关键变量的选择
#二分类模型,分析flag 1和0的占比
#观察样本0,1的平衡性
coupon.flag.value_counts()
coupon.flag.value_counts(1)
summary = coupon.groupby('flag')
summary
summary.mean()
#以returned_yes观察在flag上的分布
sns.countplot(y='returned_yes',hue='flag',data=coupon)
coupon.corr()[['flag']].sort_values('flag',ascending=False)
coupon_used_in_last_month和job_retired相关性比较高
三、建立模型
y=coupon['flag']
x=coupon[['coupon_used_in_last_month','job_retired','job_student']]
#调用sklearn模块,随机抽取训练集与测试集
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3,random_state=100)
调用skearn中逻辑回归模块
from sklearn.linear_model import LogisticRegression
Lr = LogisticRegression()
#模型拟合
Lr.fit(x_train,y_train)
#查看截距
Lr.intercept_
#查看斜率
Lr.coef_
#预测
y_pred_train=Lr.predict(x_train)
y_pred_test=Lr.predict(x_test)
#评估模型
import sklearn.metrics as metrics
metrics.confusion_matrix(y_train,y_pred_train)
metrics.accuracy_score(y_train,y_pred_train)
#使用AUC评估模型
from sklearn.metrics import roc_curve,auc
fpr,tpr,threshold = roc_curve(y_train,y_pred_train)
roc_auc = auc(fpr,tpr)
roc_auc