【Python】实训7:航空公司客户价值分析(K-means聚类)

实训1处理信用卡数据异常值

1.训练要点
(1)熟悉信用卡的基本业务知识。
(2)掌握异常值的识别与处理方法。
2.需求说明
为了推进信用卡业务良性发展,减少坏账风险,各大银行都进行了信用卡客户风险识别的相关工作,建立了相应的客户风险识别模型。某银行因旧的风险识别模型随时间推移不再适应业务发展需求,雷要重新进行风险识别模型构建。目前,银行给出的信用卡信息
数据说明如表7-11所示。
3.实现思路及步骤
(1)读取信用卡数据。
(2)丢弃逾期、呆账、强制停卡、退票、拒往记录为1.瑕疵户为2的记录。
(3)丢弃呆账、强制停卡、退票为1.拒往记录为2的记录。
(4)丢弃频率为5、刷卡金额不等于1的数据。

实训2构造信用卡客户风险评价关键特征

1.训练要点
(1)掌握信用卡模型的原理。
(2)构建信用卡用户风险分析关键特征。
2.需求说明
在信用卡相关的征信工作中,主要从3个方向判定客户的信用等级。信用等级分别为客户的历史信用风险,主要为客户的历史信用情况,包括了客户是否有逾期、呆账和强制停卡记录等;客户的现阶段经济状况,综合考虑了借款余额、个人月收入、个人月开销,家庭月收入,以及月刷卡额这类和个人经济水平息息相关的特征;客户的未来经济收入以及目前收入的稳定情况,客户的职业不同、年龄不同、房产信息不同,那么客户的经济稳定情况是不同的。
3.实现思路及步骤
(1)根据特征瑕疵户、逾期、呆账、强制停卡记录、退票、拒往记录,构建历史行为特征。
(2)根据特征借款余额、个人月收入。个人月开销、家庭月收入和月刷卡额,构建出经济风险情况特征。
(3)根据特征职业、年龄、住家,构建出收入风险情况特征。
(4)标准化历史行为、经济风险情况、收入风险情况特征。

实训3构建K-Means聚类模型

1.训练要点
(1)掌握K-Means聚类算法的应用。
(2)掌握聚类算法结果分析的方法。
2.需求说明
构建信用卡高风险客户识别模型可以分为两部分:第一部分, 根据构建的3个特征对客户进行分群,对客户做聚类分群;第二部分,结合业务对每个客户群进行特征分析,分析其风险,并对每个客户群进行排名。
3.实现思路及步骤
(1)构建K-Means聚类模型,聚类数为5。
(2)训练K-Means聚类模型,并求出聚类中心、每类的用户数目。

三个实训代码和结果放在一块:
1、“码”上就来:

import pandas as pd
#实训1处理信用卡数据异常值
#(1)读取信用卡数据。
data = pd.read_csv(r'.\第七章 数据\实训数据\credit_card.csv',encoding='gbk')
#(2)丢弃逾期、呆账、强制停卡、退票、拒往记录为1.瑕疵户为2的记录。
data = data.drop(data[(data['逾期'] == 1) & (data['呆账'] == 1) &\
                     (data['强制停卡记录'] == 1)& (data['退票'] == 1) &\
                     (data['拒往记录'] == 1) & (data['瑕疵户'] == 2)].index)
print('丢弃逾期、呆账、强制停卡、退票、拒往记录为1.瑕疵户为2的记录后的数据形状:',data.shape)
data = data.drop(data[(data['呆账'] == 1) & (data['强制停卡记录'] == 1) &\
                      (data['退票'] == 1) & (data['拒往记录'] == 2)].index)
#(3)丢弃呆账、强制停卡、退票为1.拒往记录为2的记录。
print('丢弃呆账、强制停卡、退票为1.拒往记录为2的记录数据集形状:',data.shape)
#(4)丢弃频率为5、刷卡金额不等于1的数据。
data = data.drop(data[(data['频率'] == 5) &(data['月刷卡额'] != 1)].index)
print("丢弃频率为5、刷卡金额不等于1的数据后数据集形状:",data.shape)

#实训2构造信用卡客户风险评价关键特征
from sklearn.preprocessing import StandardScaler
history=data[['瑕疵户','逾期','呆账','强制停卡记录','退票','拒往记录']]
economy=data[['借款余额','个人月收入','个人月开销','家庭月收入','月刷卡额']]
income=data[['职业','年龄','住家']]
historyScaler=StandardScaler().fit_transform(history)
economyScaler=StandardScaler().fit_transform(economy)
incomeScaler=StandardScaler().fit_transform(income)
credict_features=pd.concat([history,economy,income],axis=1)
credict_features_Scaler=StandardScaler().fit_transform(credict_features)
#print(credict_features_Scaler)

#实训3构建K-Means聚类模型
from sklearn.cluster import KMeans
kmeans=KMeans(n_clusters=5,random_state=13).fit(credict_features_Scaler)
print("根据三个特征聚类后的聚类中心:",kmeans.cluster_centers_)
num = pd.Series(kmeans.labels_).value_counts()
#credict_features['label']=kmeans.labels_
print('每类用户数目为:\n',num)

2、结果
在这里插入图片描述

发布了86 篇原创文章 · 获赞 83 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41856733/article/details/103838443