1.处理数据异常值:
(1) 丢弃逾期,呆账,强制停卡,退票记录,拒往记录为 1 ,瑕疵户为 2 的记录 。
(2) 丢弃呆账,强制停卡,退票为 1 ,拒往记录为 2 的记录。
(3) 丢弃频率为 5 ,刷卡金额不等于 1 的数据。
import pandas as pd
import numpy as np
data=pd.read_csv("credit_card.csv",encoding='gbk')
#查看数据集情况:
#data.info()
#data.describe()
print("原数据的形状为",data.shape)
# 丢弃逾期,呆账,强制停卡,退票,拒往记录为 1 ,瑕疵户为 2 的记录。
ind1 = data['逾期'] == 1
ind2 = data['呆账'] == 1
ind3 = data['强制停卡记录'] == 1
ind4 = data['退票'] == 1
ind5 = data['拒往记录'] == 1
ind6 = data['瑕疵户'] == 2
data2 = ind1&ind2&ind3&ind4&ind5&ind6
data3 = data.loc[data2,:]
data4 = data.loc[data2 == False,:]
print(' 逾期,呆账,强制停卡,退票记录,拒往记录为 1 , \
瑕疵户为 2 的数据形状为: ',data3.shape)
print(' 删除逾期,呆账,强制停卡,退票记录,拒往记录为 1 , \
瑕疵户为 2 的记录后 , 数据的形状为: ',data4.shape)
# 丢弃呆账,强制停卡,退票为 1 ,拒往记录为 2 的记录
ind7 = data4['拒往记录'] == 2
data5 = ind2&ind3&ind4&ind7
data6 = data4.loc[data5 == False,:]
print(' 删除呆账,强制停卡,退票为 1 ,拒往记录为 2 的记录后, \
数据的形状为: ',data6.shape)
# 丢弃频率为 5 ,刷卡金额不等于 1 的数据
ind8 = data6['频率'] == 5
ind9 = data6['月刷卡额'] !=1
data7 = ind8&ind9
data8 = data6.loc[data7 == False,:]
print(' 删除频率为 5 ,刷卡金额不等于 1 的记录后,数据的形状为: ',data8.shape)
data8.to_csv('data8.csv')
2.特征工程:
(1) 据特征瑕疵户,逾期,呆账,强制停卡,退票,拒往记录构建历史行为特征。
(2) 根据特征借款余额,个人月收入,个人月开销,家庭月收入和月刷卡金额,构建出经济风险情况特征。
(3) 根据特征职业,年龄,住家,构建出收入风险情况特征。
(4) 标准化历史行为,经济风险情况,收入风险情况特征。
import os
import numpy as np
import pandas as pd
data8 = pd.read_csv('data8.csv',encoding='utf-8',index_col=0, engine = 'python')
# 构建历史行为特征
card_selection1