机器学习案例——客户流失预测

本文介绍了如何使用Python进行机器学习,针对客户流失预测问题,进行了数据预处理,包括分类变量的顺序编码和连续变量的标准化。选择了BalancedRandomForestClassifier来解决样本不均衡的问题,并通过调整n_estimators和max_depth参数,优化模型性能,最终得到高查准率和召回率的模型。
摘要由CSDN通过智能技术生成

1、项目简介

1) 数据说明:
本数据集来自和鲸社区,共有7043条数据,共计21个字段数据包含以下字段:
- customerID :客户
- id gender : 性别
- SeniorCitizen : 是否为老年人,取值为0和1,0为否,1为是
- Partner : 是否拥有伴侣
- Dependents : 是否有家属
- tenure : 入网时长(月)
- PhoneService : 是否订阅电话服务
- MultipleLines: 是否有多条线路(是,否,没有电话服务)
- InternetService : 网络服务提供商(DSL,光纤,否)
- OnlineSecurity : 在线服务安全性(是,否,无网络服务)
- OnlineBackup : 在线备份服务(是,否,无网络服务)
- DeviceProtection :设备保护(是,否,无网络服务)
- TechSupport : 技术支持(是,否,无网络服务)
- StreamingTV :流媒体电视(是,否,无网络服务)
- StreamingMovies :流媒体电影(是,否,无网络服务)
- Contract :合同期限(每月,一年,两年)
- PaperlessBilling :是否无纸化账单(是,否)
- PaymentMethod :支付方式(电子支票,邮寄支票,银行自动转账,信用卡自动支付) - MonthlyCharges :每月收取费用
- TotalCharges :总收取费用
- Churn :是否流失
2)需求:
根据现有信息选择合适模型建模预测客户是否流失。

2、特征处理及选择

2.1、初步探索清洗

导入库并加载数据

# 导入常用库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import warnings 
warnings.filterwarnings('ignore')
# 加载数据
data=pd.read_csv('tel_data.csv')

查看数据基本信息

data.info()

在这里插入图片描述
数据没有缺失值。
查看数据是否有重复值

# 查看数据是否有重复值
data.duplicated().value_counts()

在这里插入图片描述

# 对数据做描述性统计,查看特征情况
data.describe([0.1,0.25,0.5,0.75,0.9]).T

在这里插入图片描述
分离目标变量和特征变量

# 分离特征变量和目标变量
x = data.iloc[:, :-1]
y = data.iloc[:, -1]

删除customerID

# 特征变量中的customerID 对目标变量没有影响,将其删去
x.drop(columns='customerID',inplace=True)

2.2、特征处理

1)处理分类变量

考虑后续建模采用树模型,对类别变量进行顺序编码。

from sklearn.preprocessing import OrdinalEncoder
# 取出类别变量列名
category_list = x.columns[x.dtypes=='object'].tolist()
# 进行顺序编码
x_cate_rfc = OrdinalEncoder().fit_transform(x.loc[:,category_list])

2)处理连续型变量

对连续型变量进行标准化

# 取出连续型变量的列
qualitative_list = x.columns.tolist()
for i in category_list:
    qualitative_list.remove(i)
ss = StandardScaler()
x_qualitative = ss.fit_transform(x.loc[:,qualitative_list])

3)处理目标变量

# 对标签进行编码
from sklearn.preprocessing import LabelEncoder
L_en = LabelEncoder()
L_en.fit(y)
y = pd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_PEIJIN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值