用Python算法预测客户行为案例!

本文基于kaggle上的银行数据集,通过Python进行数据清洗、探索性数据分析,使用AdaBoost、SVC、KNN和决策树等分类器训练模型,预测客户是否订阅定期存款。主要发现23-60岁的客户为主力群体,特别是29-39岁人群。最终评估了四种分类器的性能。
摘要由CSDN通过智能技术生成

这是一份kaggle上的银行的数据集,研究该数据集可以预测客户是否认购定期存款y。这里包含20个特征。

1. 分析框架

2. 数据读取,数据清洗

# 导入相关包  
import numpy as np  
import pandas as pd   
# 读取数据  
data = pd.read_csv('./1bank-additional-full.csv')  
# 查看表的行列数  
data.shape  

输出:


这里只有nr.employed这列有丢失数据,查看下:

data['nr.employed'].value_counts()  

这里只有5191.0这个值,没有其他的,且只有7763条数据,这里直接将这列当做异常值,直接将这列直接删除了。

# data.drop('nr.employed', axis=1, inplace=True)  

3. 探索性数据分析

3.1查看各年龄段的人数的分布

这里可以看出该银行的主要用户主要集中在23-60岁这个年龄层,其中29-39这个年龄段的人数相对其他年龄段多。

import matplotlib.pyplot as plt  
import seaborn as sns  
plt.rcParams['font.sans-serif'] = 'SimHei'  
plt.figure(figsize=(20, 8), dpi=256)  
sns.countplot(x='age', data=data)  
plt.title("各年龄段的人数")  

3.2 其他特征的一些分布

plt.figure(figsize=(18, 16), dpi=512)  
plt.subplot(221)  
sns.countplot(x='contact', data=data)  
plt.title("contact分布情况")  
  
plt.subplot(222)  
sns.countplot(x='day_of_week', data=data)  
plt.title("day_of_week分布情况")  
  
plt.subplot(223)  
sns.countplot(x='default', data=data)  
plt.title("default分布情况")  
  
plt.subplot(224)  
sns.countplot(x='education', data=data)  
plt.xticks(rotation=70)  
plt.title("education分布情况")  
  
plt.savefig('./1.png')  

plt.figure(fig
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值