电信客户流失分析与预测

本文探讨了电信行业的用户流失问题,通过对用户特征、服务属性和合同属性的分析,揭示了用户流失的原因,并使用决策树、随机森林等模型进行预测。建议针对老年用户、无配偶用户、新注册用户和特定服务的用户制定个性化策略,以提高用户黏性和满意度。
摘要由CSDN通过智能技术生成

一、项目背景
近年来,不论是传统行业还是互联网行业,都面临着用户流失问题。研究表明,企业可以在一周内失去100个用户,而同时又得到另外一个用户,从表明上来看业绩没有受到任何影响,而实际上争取这些新用户所花费的宣传、促销等成本显然要比保持老用户昂贵的多,从企业投资回报程度的角度来看是非常不经济的。
维护好老用户的重要性主要体现在以下四个方面:

留住老用户可使企业的竞争更长久。
留住老用户还会使成本大幅度降低。
留住老用户,还会大大有利于发展新用户。用户口碑效应,如果1个满意的用户引发8笔潜在的生意,那么其中至少1笔成交。
获取更多的用户份额。忠诚的用户会更愿意购买企业的的产品,其支出也会比随意消费者大得多。
二、分析目的
本文将对流失用户做特征分析和流失原因分析,帮助运营商发现并改善用户体验,以及确定挽留目标用户并制定方案。

三、数据来源
此数据集来自kaggle电信用户流失数据集

四、提出问题
分析用户特征与流失的关系
从整体情况看,流失用户的普遍具有哪些特征?
尝试找到合适的模型预测流失用户。
针对性给出增加用户黏性、预防流失的建议。

五、分析流程
在这里插入图片描述
六、理解数据
1、采集数据
本数据集来自DF ,数据源地址:
https://www.datafountain.cn/dataSets/35/details#
本数据集描述了电信用户是否流失以及其相关信息,共包含7044条数据,共20个字段,介绍下各个字段:
customerID :用户ID。
gender:性别。(Female & Male)
SeniorCitizen :老年人 (1表示是,0表示不是)
Partner :是否有配偶 (Yes or No)
Dependents :是否经济独立 (Yes or No)
tenure :客户的入网时间(天)
PhoneService :是否开通电话服务业务 (Yes or No)
MultipleLines:是否开通了多线业务(Yes 、No or No phoneservice 三种)
InternetService:是否开通互联网服务 (No, DSL数字网络,fiber optic光纤网络 三种)
OnlineSecurity:是否开通网络安全服务(Yes,No,No internetserive 三种)
OnlineBackup:是否开通在线备份业务(Yes,No,No internetserive 三种)
DeviceProtection:是否开通了设备保护业务(Yes,No,No internetserive 三种)
TechSupport:是否开通了技术支持服务(Yes,No,No internetserive 三种)
StreamingTV:是否开通网络电视(Yes,No,No internetserive 三种)
StreamingMovies:是否开通网络电影(Yes,No,No internetserive 三种)
Contract:签订合同方式 (按月,一年,两年)
PaperlessBilling:是否开通电子账单(Yes or No)
PaymentMethod:付款方式(bank transfer,credit card,electronic check,mailed check)
MonthlyCharges:月费用
TotalCharges:总费用
Churn:该用户是否流失(Yes or No)

2、导入包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

3、导入数据

data = pd.read_csv(r'D:\数据分析\telco-customer-churn\WA_Fn-UseC_-Telco-Customer-Churn.csv')

4.数据转化

data.columns=['用户ID','性别','老年人' ,'是否有配偶' ,'是否经济独立' ,'客户的入网时间','是否开通电话服务业务' ,'是否开通了多线业务'
,'是否开通互联网服务' ,'是否开通网络安全服务','是否开通在线备份业务','是否开通了设备保护业务','是否开通了技术支持服务','是否开通网络电视'
,'是否开通网络电影','签订合同年限' ,'是否开通电子账单','付款方式','月费用','总费用','该用户是否流失']
data.head()
#强制转换为数字,不可转换的变为NaN
data['总费用'] = pd.to_numeric(data['总费用'],errors='coerce')
test=data.loc[:,'总费用'].value_counts().sort_index()
print(test.sum())
#运行结果:7032
print(data.客户的入网时间[data['总费用'].isnull().values==True])
#运行结果:11

经过观察,发现这11个用户‘tenure’(入网时长)为0个月,推测是当月新入网用户。根据一般经验,用户即使在注册的当月流失,
也需缴纳当月费用。因此将这11个用户入网时长改为1,将总消费额填充为月消费额,符合实际情况。

#将总消费额填充为月消费额
#参数如下:
# df.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method=‘pad‘, axis=None)
# to_replace:被替换的值,value:替换后的值,inplace:是否要改变原数据,False是不改变,True是改变,默认是False
data.loc[:,'总费用'].replace(to_replace=np.nan,value=data.loc[:,'月费用'],inplace=True)#查看是否替换成功
print(data[data['该用户是否流失']==0][['该用户是否流失','月费用','总费用']])

#将‘tenure’入网时长从0修改为1

data.loc[:,'该用户是否流失'].replace(to_replace=0,value=1,inplace=True)
print(pd.isnull(data['总费用']).sum())
print(data['总费用'].dtypes)

七、用户流失分析
根据一般经验,将用户特征划分为用户属性、服务属性、合同属性,并从这三个维度进行分析。

# 查看流失用户数量和占比。
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.pie(data['该用户是否流失'].value_counts(),labels=['未流失','流失'],autopct='%.2f%%',explode=(0.1,0))
plt.title('用户流失占比')

在这里插入图片描述

#查看数量上的对比
churnDf=data['该用户是否流失'].value_counts().to_frame()
x=churnDf.index
y=churnDf['该用户是否流失']
plt.bar(x,y,width 
电信客户流失分析预测是一个重要的应用领域,有助于电信企业了解客户需求、提高客户满意度、减少客户流失率,提高企业的竞争力。因此,设计与实现基于数据挖掘技术的电信客户流失分析预测系统具有很高的实用价值和经济效益。 首先,系统的可行性需要从技术、经济和市场三个方面进行分析。 技术方面,数据挖掘技术已经成为处理大规模数据的主要手段,具有较高的精度和效率,能够挖掘出潜在的规律和关系。而且,随着云计算、大数据、人工智能等技术的发展,数据挖掘技术的应用范围也越来越广泛。因此,基于数据挖掘技术的电信客户流失分析预测系统的可行性在技术上是得到保障的。 经济方面,电信客户流失分析预测系统的实现需要投入一定的资金和人力资源,主要涉及硬件、软件、数据和人员等方面的成本。但是,由于这个系统能够有效地降低客户流失率,提高客户满意度,进而增加企业的收益,因此这个系统的经济效益是非常可观的。 市场方面,电信客户流失分析预测系统的目标用户是电信企业和相关行业的从业者,这些用户对这个系统的需求是非常强烈的。因为这个系统可以帮助他们更好地了解客户需求、提高客户满意度、减少客户流失率等,从而提高企业的竞争力。因此,市场需求是非常大的,这个系统的市场前景是非常广阔的。 综上所述,基于数据挖掘技术的电信客户流失分析预测系统的设计与实现是非常可行的。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值