用python进行分析电信行业的用户流失预测(二)--数据可视化
文章目录
系列文章目录
1.用python进行分析的用户流失预测实操,以电信行业为例
2.用python进行分析电信行业的用户流失预测(二)–数据可视化
3.用python进行分析电信行业的用户流失预测(三)—数据预处理
4.用python进行分析电信行业的用户流失预测(四)—构建模型
前言
这篇文章紧跟用python进行分析的用户流失预测实操,以电信行业为例的后续内容,聚焦可视化操作。
本篇为第二篇文章教程。
四、数据可视化呈现
1、查看流失客户占比
##数据可视化分析
# #1,查看流失客户占比--画饼图参数
churnvalue=telcon['Churn'].value_counts()
labels=telcon['Churn'].value_counts().index
rcParams['figure.figsize']=6,9
explode = (0.1,0) # 将某一块分割出来,值越大分割出的间隙越大
sizes = [telcon['Churn'].value_counts()]
fig = plt.figure(figsize=(8, 4))
ax1 = fig.subplots()
ax1.pie(sizes, explode=explode, labels=labels,
autopct='%1.1f%%', # 数值保留固定小数位
shadow=True, # 显示阴影
wedgeprops = {
'linewidth': 3} # 设置边框宽度
)
plt.title("流失客户占比情况")
plt.show()
由图中结果可以看出,流失客户占整体客户的26.5%。
2、性别、老年人、配偶、亲属对流客户流失率的影响
plt.figure(figsize=(10,10))
plt.subplot(2,2,1)
gender=sns.countplot(x='gender',hue='Churn',data=telcon,palette='Set2') #palette参数表示设置颜色,设置为主颜色paste12
plt.xlabel('gender')
plt.title('Churn by Gender')
plt.subplot(2,2,2)
seniorcitizen=sns.countplot(x='SeniorCitizen',hue='Churn',data=telcon,palette='Set2')
plt.xlabel('Senior Citizen')
plt.title('Churn by Senior Citizen')
plt.subplot(2,2,3)
partner=sns.countplot(x='Partner',hue='Churn',data=telcon,palette='Set2')
plt.xlabel('Partner')
plt.title('Churn by SPartner')
plt.subplot(2,2,4)
dependents=sns.countplot(x='Dependents',hue='Churn',data=telcon,palette='Set2')
plt.xlabel('dependents')
plt.title('Churn by Dependents')
plt.show()
配偶、亲属占比结果
可以看出,男性与女性用户之间的流失情况基本没有差异,而在老年用户中流失占比明显比非老年用户更高,在所有数据中未婚与已婚人数基本持平,但未婚中流失人数比已婚中的流失人数高出了快一倍,从经济独立情况来看,经济未独立的用户流失率要远远高于经济独立的用户。
3、提取特征
charges=telcon.iloc[:,1:20]
# #对特征进行编码
# #离散特征的编码分为两种情况:
# #1.离散特征的取值之间没有太大意义,比如color:[red,blue],那么就使用one-hot编码
# #2.离散特征的取值有大小意义,比如size:[X,XL,XXL],那么就使用数值的映射【X:1,XL:2,XXL:3】
corrdf=charges.apply(lambda x:pd.factorize(x)[0])
print(corrdf.head())
4、构造相关性矩阵
charges=telcon.iloc[:,1:20]
corrdf=charges.apply(lambda x:pd.factorize(x)[0])
corr=corrdf.corr()
#显示所有列
pd.set_option('display.max_columns', None)
#显示所有行
pd.set_option('display.max_rows', None)
print(corr)
5、使用热地图显示相关系数
charges=telcon.iloc[:,1:20]
corrdf=charges.apply(lambda x:pd.factorize(x)[0])
corr=corrdf.corr()
# '''
# heatmap 使用热力图展示系数矩阵情况
# linewidths 热力图矩阵之间的间隔大小
# annot 设定是否显示每个色块系数值
# '''
plt.figure(figsize=(30,20))
ax=sns.heatmap(corr,xticklabels=corr.columns,yticklabels=corr.columns,linewidths=0.2,cmap='YlGnBu',annot=True)
plt.show()
结论:
从上图可以看出,互联网服务、网络安全服务、在线备份业务、设备保护业务、技术支持服务、网络电视和网络电影之间存在较强的相关性,多线业务和电话服务之间也有很强的相关性,并且都呈强正相关关系。
6、使用one-hot编码
tel_dummies=pd.get_dummies(telcon.iloc[:, 1:21])
print(tel_dummies.head())
7、电信用户是否流失与各变量之间的相关性
plt.figure(figsize=(15,8))
tel_dummies.corr()['Churn'].sort_values(ascending=False).plot(kind='bar')
plt.title('correlations between Churn and variables')
plt.show()
由图上可以看出,变量gender 和 PhoneService 处于图形中间,其值接近于 0 ,这两个变量对电信客户流失预测影响非常小,可以直接舍弃。
8、网络安全服务、在线备份业务、设备保护业务、技术支持服务、网络电视、网络电影和无互联网服务对客户流失率的影响
covariable=['OnlineSecurity','OnlineBackup','DeviceProtection','TechSupport','StreamingTV','StreamingMovies']
plt.figure(figsize=(17,10))
for i,item in enumerate(covariable):
plt.subplot(2,3,(i+1))
ax=sns.countplot(x=item,hue='Churn',data=telcon,palette='Set2',order=['Yes','No','No internet service'])
plt.xlabel(str(item))
plt.title('Churn by'+str(item))
i=i+1
plt.show()
#
由上图可以看出,在网络安全服务、在线备份业务、设备保护业务、技术支持服务、网络电视和网络电影六个变量中,没有互联网服务的客户流失率值是相同的,都是相对较低。
这可能是因为以上六个因素只有在客户使用互联网服务时才会影响客户的决策,这六个因素不会对不使用互联网服务的客户决定是否流失产生推论效应。
9、签订合同方式对客户流失率的影响
ax=sns.barplot(x='Contract',y='Churn',data=telcon,palette='Set2',order=['Month-to-month','One year','Two year'])
# seaborn 的 barplot() 利用矩阵条的高度反映数值变量的集中趋势,bar plot 展示的是某种变量分布的平均值,
# 当需要精确观察每类变量的分布趋势,boxplot 与 violinplot 往往是更好的选择。
plt.title('Churn by Contract type')
plt.show()
由图上可以看出,签订合同方式对客户流失率影响为:按月签订 > 按一年签订 > 按两年签订,这可能表明,设定长期合同对留住现有客户更有效。
10、付款方式对客户流失率的影响
plt.figure(figsize=(10,5))
ax=sns.barplot(x='PaymentMethod',y='Churn',data=telcon,palette='Set2',order=['Bank transfer (automatic)','Credit card (automatic)','Electronic check','Mailed check'])
plt.title('Churn by PaymentMethod type')
plt.show()
由图上可以看出,在四种支付方式中,使用Electronic check的用户流流失率最高,其他三种支付方式基本持平,因此可以推断电子账单在设计上影响用户体验。
经过上面这些数据可视化分析,我想大家对于所给数据集中的数据,有了很大的认知。通过分析数据更关键特征,便于后续步骤—数据预处理的进行。就到这里了吧!!感觉小命都快没了。
相关信息
- Python项目实战:银行信用卡客户流失预测
- 个数是如何用大数据做行为预测的?
- 使用Matplotlib进行数据可视化(二)
- 企业数据可视化大屏,行业数据可视化解决方案
- 绘图和可视化知识图谱-《利用Python进行数据分析》
- 电商用户行为数据分析(Python+SQL)
- 电商用户行为数据分析(Python+SQL)
- 【实战】用Python进行10w+QQ说说数据分析
- 使用 Python 进行数据可视化之Matplotlib|Python 主题月
- 使用 Python 进行数据可视化之Seaborn|Python 主题月
- 使用 Python 进行数据可视化之Bokeh|Python 主题月
- 使用 Python 进行数据可视化之Plotly|Python 主题月
- 使用 Python 进行数据可视化之Matplotlib|Python 主题月
- tableau public使用形状文件进行数据可视化
- Python|可视化数据分析之公众号得分
- 关于电商行业可视化大屏的分享
- IEEE VIS 2019 | 微众银行可视分析提升预测模型效果 助力企业数字化转型
- 【爬虫+数据分析+数据可视化】python数据分析全流程《2021胡润百富榜》榜单数据!
- 使用Matplotlib进行数据可视化(一)
- 使用Matplotlib进行数据可视化(一)
- 利用Python进行数据分析——绘图和可视化(八)(2)
- 爬取简书26万+用户信息:数据可视化
- 可视化数据分析工具有哪些?
- 10个可以快速用Python进行数据分析的小技巧
- 啃书:《利用Python进行数据分析》第二章
- Python:数据可视化pyecharts的使用
- python 对潜在客户数据集 进行数据分析
- python数据可视化
- 爬取腾讯视频《哈哈哈哈哈》50000条弹幕,进行可视化分析
- 『数据分析』使用python进行同期群分析
- 7万网站用户行为大数据分析
- 用Python进行数据分析之金融和经济数据应用
- Python 入门项目——《数据可视化》(二)
- 用户行为分析--基本架构介绍(转)
- 用户行为分析需要知道的几个埋点小技巧
- 利用Python进行数据分析·第2版 资源
- 9款好用的数据可视化工具推荐!
- 五组数据可视化行业案例,惊艳叫绝
- 五组数据可视化行业案例,惊艳叫绝
- 译文:可视分析中的交互行为分类(二)
- Bicomb+spass进行共现分析并可视化
- 啃书:《利用python进行数据分析》第六章——数据加载(二)
- 啃书:《利用python进行数据分析》第七章——数据清洗(二)
- 用户行为数据分析笔记
- Python数据分析之:进行数据分析的必要知识
- 《用python进行数据分析》语法要点总结(1)
- tRNA 二级结构预测可视化
- 【python数据可视化】成绩分析及可视化实例
- Python实现房产数据分析与可视化 数据分析 实战
- Smartbi可视化数据分析案例 | 炫酷又简单
热门资讯
推荐资讯
最新资讯
- 每个程序员必学的10个Git命令
- Android开发之蓝牙详解(一)
- Android开发之蓝牙详解(三)
- 防止SQL注入的五种方法
- 5种方法防止 jsp被sql注入
- 【译】在React中实现条件渲染的7种方法
- winform防止界面卡死的三种方法 总结:使用委托 + 线程的方法实现 参考:https://blog.csdn.net/handsomexiaominge/article/details/4265...
- Android WifiManager.WifiLock 简介
- [译]Android内存泄漏的八种可能(上)
- python+appnium【第一章-环境搭建】
- 第一章:tornado入门环境搭建
- unittest框架核心要素及应用
- 黑马程序员前端-CSS用户界面样式源码
- 传智健康项目day01
- 传智健康项目day02
- 传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)
- 黑马传智健康项目讲义第一章之ElementUI
- 黑马传智健康项目讲义第一章 之Power Designer
- 黑马传智健康项目讲义第一章之项目概述
- MYSQL的master/slave数据同步配置 ZT
评论