赛题简介
银行客户认购产品预测
赛题以银行产品认购预测为背景,想让你来预测下客户是否会购买银行的产品。在和客户沟通的过程中,我们记录了和客户联系的次数,上一次联系的时长,上一次联系的时间间隔,同时在银行系统中我们保存了客户的基本信息,包括:年龄、职业、婚姻、之前是否有违约、是否有房贷等信息,此外我们还统计了当前市场的情况:就业、消费信息、银行同业拆解率等。
数据来源:【教学赛】金融数据分析赛题1:银行客户认购产品预测_学习赛_赛题与数据_天池大赛-阿里云天池
任务:
预测用户是否进行购买产品
评价标准: Accuracy (所有分类正确的百分比)
一:读取数据
import pandas as pd
# 读取数据
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
二:数据预处理
1.对数据集进行合并
# 训练集和测试集合并,将训练数据和测试数据在行的方向拼接
df = pd.concat([train, test], axis=0)
df
2.将非数字特征转成数字
# 选出所有的特征为object(非数字)的特征列,对其进行处理
cat_columns = df.select_dtypes(include='object').columns
df[cat_columns]
3.对数字进行编码
# 对非数字特征进行编码
from sklearn.preprocessing import LabelEncoder
job_le = LabelEncoder()
df['job'] = job_le.fit_transform(df['job'])
df['marital'] = df['marital'].map({'unknown':0, 'single':1, 'married':2, 'divorced':3})
df['education'] = df['education'].map({'unknown':0, 'basic.4y':1, 'basic.6y':2, 'basic.9y':3, 'high.school':4, 'university.degree':5, 'professional.course':6, &#