aic python_python机器学习案例(五):逻辑回归电信客户流失建模

本文介绍了使用Python进行逻辑回归分析的电信客户流失建模案例,涉及数据集获取、字段解释、混淆矩阵、ROC曲线、特征选择与多重共线性处理。通过传统建模和机器学习方法,得出最佳模型并剔除相关变量,如'nrProm', 'avgplan'和'posTrend'。最终模型表现良好,展示了机器学习在客户流失预测中的应用。" 113508635,10548454,Python假设检验详解:U检验、T检验、卡方检验与F检验,"['Python', '统计学', '数据分析', '假设检验']
摘要由CSDN通过智能技术生成

874c7a33cca33d2cb575d67c6c4e8e45.png

本逻辑回归电信客户流失建模案例代码及数据集链接及下载密码:关注公众号书豪创投笔记并回复python数据科学即可获取

e3ba2c7f0efd48dc63c881a4c87becff.png
关注公众号书豪创投笔记并回复python数据科学即可获取数据集

本案例来源乃是学习朋友常国珍老师的python数据科学书,内容非常实用!希望深入浅出学习机器学习的同学可学习北大博士常国珍建模实战课程系列常国珍录制的Python 数据科学机器学习教学视频,可以由浅入深的学习机器学习!

逻辑回归案例字段解释
#subscriberID="个人客户的ID"
#churn="是否流失:1=流失";
#Age="年龄"
#incomeCode="用户居住区域平均收入的代码"
#duration="在网时长"
#peakMinAv="统计期间内最高单月通话时长"
#peakMinDiff="统计期间结束月份与开始月份相比通话时长增加数量"
#posTrend="该用户通话时长是否呈现出上升态势:是=1"
#negTrend="该用户通话时长是否呈现出下降态势:是=1"
#nrProm="电话公司营销的数量"
#prom="最近一个月是否被营销过:是=1"
#curPlan="统计时间开始时套餐类型:1=最高通过200分钟;2=300分钟;3=350分钟;4=500分钟"
#avPlan="统计期间内平均套餐类型"
#planChange="统计结束时和开始时套餐的变化:正值代表套餐档次提升,负值代表下降,0代表不变"
#posPlanChange="统计期间是否提高套餐:1=是"
#negPlanChange="统计期间是否降低套餐:1=是"
#call_10086="拨打10086的次数"

import os
import numpy as np
from scipy import stats
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt

churn = pd.read_csv(r'telecom_churn.csv', skipinitialspace=True)
churn.head()

54ed5a8ad569722e6db170f51eb8f16a.png
#1两变量分析:检验该用户通话时长是否呈现出上升态势(posTrend)对流失(churn) 是否有预测价值
# ##  分类变量的相关关系
#
# 交叉表

cross_table = pd.crosstab(churn.posTrend, 
                         churn.churn, margins=True)
cross_table

8960c4a806f8d65a8dc0d62a9a9b5bea.png
交叉表
# 列联表

def percConvert(ser):
    return ser/float(ser[-1])

cross_table.apply(percConvert, axis=1)

523a1b6aa1e4353a12d330afac15e454.png

#卡方检验走一波
print('''chisq = %6.4f 
p-value = %6.4f
dof = %i 
expected_freq = %s'''  %stats.chi2_contingency(cross_table.iloc[:2, :2]))

8f63c71c217c1d1e29168a4ecb38c5d4.png
卡方检验走一波告诉俺们显著的!
#2首先将原始数据拆分为训练和测试数据集,使用训练数据集建立在网时长对流失的逻辑回归,使用测试数据集制作混淆矩阵
#(阈值为0.5),提供准确性、召回率指标,提供ROC曲线和AUC。
# ## 逻辑回归
# duration  在网时长  这是个连续变量 !

churn.plot(x='duration', y='churn', kind='scatter')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值