【数据分析】基于XGboost(决策树)的银行产品认购预测--小林月

该文详细介绍了对金融数据分析赛题的数据探索过程,包括读取数据、查看统计信息、数据预处理,特别是处理缺失值。接着,作者探讨了字段特性,如非离散型数据与离散数值字段的分布。使用XGBoost建立模型,并通过交叉验证计算验证集的AUC作为评估指标。文章末尾提到了模型优化的潜力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、数据探索:

1.1 读取数据

1.2查看数据

1.3 数据预处理

二、字段描述

2.1 非离散型数据

2.2离散数值字段

三、数据建模

四、评估指标:

4.1:混淆矩阵

4.2: 准确率,回归率,F1

五、测试集准确率

六、模型优化


环境:使用python+jupter nodebook

数据:本文数据来源2023年【教学赛】金融数据分析赛题1:银行客户认购产品预测

赛题(数据)网址:【教学赛】金融数据分析赛题1:银行客户认购产品预测-天池大赛-阿里云天池

一、数据探索:

   1.1 读取数据

所需要的库包:

import pandas as pd
import numpy as np
trian=pd.read_csv("train.csv")
test=pd.read_csv("test.csv")

   1.2查看数据

        是否正常,有无异常值:

        查看统计量

print(df.describe().T)

        查看数据分布(散点图):

# 1 查看统计量
print(df.describe().T)
# 2 duration分箱展示
import matplotlib.pyplot as plt
import seaborn as sns

# 3.查看数据分布
# 分离数值变量与分类变量
Nu_feature = list(df.select_dtypes(exclude=['object']).columns)
Ca_feature = list(df.select_dtypes(include=['object']).columns)
Ca_feature.remove('subscribe')
col1=Ca_feature
plt.figure(figsize=(20,10))
j=1
for col in col1:
    ax=plt.subplot(4,5,j)
    ax=plt.scatter(x=range(len(df)),y=df[col],color='red')
    plt.title(col)
    j+=1
k=11
for col in col1:
    ax=plt.subplot(4,5,k)
    ax=plt.scatter(x=range(len(test)),y=test[col],color='cyan')
    plt.title(col)
    k+=1
plt.subplots_adjust(wspace=0.4,hspace=0.3)
plt.show()

数据相关图(热力图)

# # 4.数据相关图
from sklearn.preprocessing import LabelEncoder
lb = LabelEncoder()
cols = Ca_feature
for m in cols:
    df[m] = lb.fit_transform(df[m])
    test[m] = lb.fit_transform(test[m])
#
df['subscribe'] = df['subscribe'].replace(['no', 'yes'], [0, 1])

correlation_matrix = df.corr()
plt.figure(figsize=(12, 10))
sns.heatmap(correlation_matrix, vmax=0.9, linewidths=0.05, cmap="RdGy")
plt.show()

查看数据是否有空值或者unkonw

#数据没有NA值但是有unknow值
train_set.isin(['unknown']).mean()*100 
test_set.isin(['unknown']).mean()*100 
# 工作,教育和沟通方式用众数填充

1.3 数据预处理

对训练集和测试集数据进行填充:

trian['default'].replace(['unknown'], test['default'].mode(), inplace=True)
trian['job'].replace(['unknown'], trian['job'].mode(), inplace=True)
trian['education'].replace(['unknown'], trian['education'].mode(), inplace=True)
trian['marital'].replace(['unknown'], trian['marital'].mode(), inpl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值