机器学习(一)——基于决策树算法建立用户流失预测模型

目录

一、项目背景

1.1 流失用户定义

1.2 探究用户流失目的

1.3 项目描述

1.3.1 项目简介

1.3.2 分析工具

二、数据预处理

2.1 数据采集与预览

2.2 数据清洗

2.2.1 数据类型转换

2.2.2 缺失值处理

2.2.3 重复值处理

2.2.4 异常值处理

三、数据可视化分析

3.1 流失客户占比

3.2 样本基本特征对客户流失率的影响

3.3 样本特征相关性分析

3.3.1 特征值提取与编码

3.3.2 构造相关系数矩阵

3.3.3 使用热力图显示相关系数

3.3.4 电信用户是否流失与各变量之间的相关性

3.3.5 各项业务服务队客户流失率的影响

3.3.6 合约签订期限对客户流失率的影响

3.3.7 付款方式对客户流失率的影响

四、数据建模

4.1 特征值筛选与转换

4.1.1 特征值筛选

4.1.2 特征值标准化

4.2 数据切分

4.2.1 切分特征与标签

4.2.2 切分训练数据集和测试数据集

4.3 模型训练与评估

4.3.1 模型训练

4.3.2 模型评估

五、模型优化

5.1 决策树预剪枝,绘制最大深度学习曲线

5.2 GridSearchCV网格搜索,寻找最优参数

5.3 构建最优参数模型

六、结论

6.1 总结

6.2 建议

七、源代码


一、项目背景

1.1 流失用户定义

        不同产品都存在不同的使用周期,因此在定义流失用户上,需要进行用户调研,如可对时隔1周、1个月、3个月、半年未下单客户进行用户调研,从而了解用户不再产生浏览和购买行为的原因,进而定义流失。

1.2 探究用户流失目的

        研究用户流失的首要目的是避免用户继续流失,其次才是挽回流失。在研究过程中,可通过观察用户的生命周期来判断其流失原因:

(1)获取期:新用户通过推广、宣传来到产品中,属尝鲜型;

(2)提升期:用户有购买行为;

(3)成熟期:用户存在复购和交叉购买行为;

(4)衰退期:用户购买行为和频次开始衰退,这是最需要预警的时期;

(5)离开期:达到流失标准;

        根据以上五个生命周期为用户打上标签,从而判断用户是在哪个时期流失,相应的流失原因不同,则应采取不同措施对产品进行改进。

1.3 项目描述

1.3.1 项目简介

        随着电信行业的竞争日益激烈,获取一个新用户所需的成本已远高于保留现有客户的成本,因此,如何挽留更多的用户已成为电信行业的一项关键业务指标。对于电信行业而言,可通过数据挖掘等方式来分析可能影响客户决策的各种因素,从而预测他们是否会产生流失。

        本案例利用Kaggle上公开的某电信公司的用户数据,借此数据集进行分析并建立用户流失预测模型。

1.3.2 分析工具

(1)开发环境:python3、Spyder

(2)相关库的导入

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import LabelEncoder
from imblearn.over_sampling import SMOTE
from sklearn.model_selection import cross_val_score,train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report,precision_score,recall_score,f1_score
from sklearn.model_selection import GridSearchCV
from sklearn import tree

二、数据预处理

2.1 数据采集与预览

#读取数据文件
tel = pd.read_csv(r"C:\Users\HP\Desktop\电信用户流失数据.csv")
#数据预览
tel.info()

 运行结果:

RangeIndex: 7043 entries, 0 to 7042
Data columns (total 21 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   customerID        7043 non-null   object 
 1   gender            7043 non-null   object 
 2   SeniorCitizen     7043 non-null   int64  
 3   Partner           7043 non-null   object 
 4   Dependents        7043 non-null   object 
 5   tenure            7043 non-null   int64  
 6   PhoneService      7043 non-null   object 
 7   MultipleLines     7043 non-null   object 
 8   InternetService   7043 non-null   object 
 9   OnlineSecurity    7043 non-null   object 
 10  OnlineBackup      7043 non-null   object 
 11  DeviceProtection  7043 non-null   object 
 12  TechSupport       7043 non-null   object 
 13  StreamingTV       7043 non-null   object 
 14  StreamingMovies   7043 non-null   object 
 15  Contract          7043 non-null   object 
 16  PaperlessBilling  7043 non-null   object 
 17  PaymentMethod     7043 non-null   object 
 18  MonthlyCharges    7043 non-null   float64
 19  TotalCharges      7043 non-null   object 
 20  Churn             7043 non-null   object 
dtypes: float64(1), int64(2), object(18)

        从运行结果可知,数据集一共提供了7043条用户样本信息,且无缺失值,其中每条样本包含21列属性,由多个维度的客户特征信息以及用户是否流失的标签组成。 各用户特征信息及相关含义如下:

变量名

描述

数据类型

取值

customerID

用户ID

string

7043个不重复值

gender

性别

string

Male,Female

SeniorCitizen

是否为老年人

int

0,1

Partner

是否有配偶

string

Yes,NO

Dependents

是否有家属

string

Yes,No

tenure

入网月数

int

0~72

PhoneService

是否开通电话业务

string

Yes,NO

MultipleLines

是否开通多线业务

string

Yes,No,No phone service

InternetService

是否开通互联网业务

string

DSL, Fiber optic, No

OnlineSecurity

是否开通在线安全业务

string

Yes,No,No internet service

OnlineBackup

是否开通在线备份业务

string

Yes,No,No internet service

DeviceProtection

是否开通设备保护业务

string

Yes,No,No internet service

TechSupport

是否开通技术支持业务

string

Yes,No,No internet service

StreamingTV

是否开通网络电视业务

string

Yes,No,No internet ser

  • 2
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
决策树算法是一种广泛应用于分类和回归的机器学习算法,它基于树形结构对样本进行分类或预测决策树算法的主要思想是通过一系列的判断来对样本进行分类或预测。在决策树中,每个节点表示一个属性或特征,每个分支代表该属性或特征的一个取值,而每个叶子节点代表一个分类或预测结果。 决策树算法的训练过程主要包括以下步骤: 1. 特征选择:根据某种指标(如信息增益或基尼系数)选择最优的特征作为当前节点的分裂属性。 2. 决策树生成:根据选择的特征将数据集分成若干个子集,并递归地生成决策树。 3. 剪枝:通过剪枝操作来提高决策树的泛化性能。 决策树算法的优点包括易于理解和解释、计算复杂度较低、对缺失值不敏感等。但是,决策树算法也存在一些缺点,如容易出现过拟合、对离散数据敏感等。 下面是一个决策树算法的案例:假设我们要根据一个人的年龄、性别、教育程度和职业预测其收入水平(高于或低于50K)。首先,我们需要将这些特征进行编码,将其转换为数值型数据。然后,我们可以使用决策树算法对这些数据进行训练,并生成一个决策树模型。最后,我们可以使用该模型对新的数据进行分类或预测。例如,根据一个人的年龄、性别、教育程度和职业,我们可以使用决策树模型预测该人的收入水平。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值