利用python建立客户流失预警模型(下)——建立模型部分

利用python建立客户流失预警模型(下)——建立模型

前言

上一部分已经完成了对数据的整理与分析,接下来建立数据分析模型。
首先,建立分类模型来预测客户是否会流失。逻辑回归,决策树,随机森林,xgboost等可用于分类问题(也可用于回归问题)。由于不是所有模型在所有样本预测均为最优,可考虑使用模型融合。在建模时,通过交叉验证训练集来得到模型最优的参数。对于阈值的设置可考虑KS曲线的最大值。
其次是客户画像,在筛选后的变量中挑选少量综合性变量,通过样本间的聚类仿照RFM模型的想法得到客户大体的定位,比如重要价值客户、重要保持客户等,然后根据集中度、活跃度等给客户加小标签,根据总体的标签以及客户流失与否给出业务层面的意见。

客户流失预测模型

1、logistic回归
建立模型,通过交叉验证、网格搜索来寻求最优参数,用于拟合最优模型

#LogisticRegression
lr = LogisticRegression(n_jobs=-1,random_state=666,solver='saga',penalty='l1')
c_v=KFold(len(y_train),n_folds=10,random_state=666)
parameter_grid={
   'C':[0.1,1,10],'max_iter':[100,500,1000]}                         #参数可调
gridsearch_b=GridSearchCV(lr,param_grid=parameter_grid,cv=c_v,scoring='f1',n_jobs=-1)
gridsearch_b.fit(x_train,y_train)
best_param_b=gridsearch_b.best_params_

best_lr=LogisticRegression(n_jobs=-1,random_state=666,solver='saga',penalty='l1',C=0.1,max_iter=100)

用生成的最优模型在测试机上进行预测:

best_lr.fit(x_train,y_train)
yhat_test_lr=best_lr.predict(x_test)   #预测结果                                      
confusion_matrix(y_test,yhat_test_lr) #混淆矩阵                                       
yp_test_lr=best_lr.predict_proba(x_test)  #预测概率                                   

衡量logistic回归进行分类的精度的指标:AUC,recall,precision等

fpr_lr,tpr_lr,threshold_lr=roc_curve(y_test,yp_test_lr[:,1])
auc(fpr_lr,tpr_lr) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值