R语言实训项目——信用卡客户风险分析

主页有数据集可以下载。

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

1)读取信用卡数据。

#读取数据
credit <- read.csv('F:/R-Project/data/credit_card.csv')

2)丢弃逾期、呆账、强制停卡、退票、拒往为1、瑕疵户为2的记录。

c8a3f6d495834deebad9f417640e8d51.png

index1 <- credit$逾期 == 1
index2 <- credit$呆账 == 1
index3 <- credit$强制停卡记录 == 1
index4 <- credit$退票 == 1
index5 <- credit$拒往记录 == 1
index6 <- credit$瑕疵户 == 2
clean_credit1 <- credit[-which(index1&index2&index3&index4&index5&index6),]

(3)丢弃呆账、强制停卡、退票为1、拒往为2的记录。

93f317f3d7ef4e59b453cfc3ac9dd0d0.png

#丢弃呆账、强制停卡、退票为1、拒往为2的记录
index1 <- clean_credit1$逾期 == 1
index3 <- clean_credit1$强制停卡记录 == 1
index4 <- clean_credit1$退票 == 1
index7 <- clean_credit1$拒往记录 == 2
clean_credit2 <- clean_credit1[-which(index1&index3&index4&index7),]

4)丢弃频率为5、刷卡金额不等于1的数据。

63b07fb13ab84a36bc8547b03758b564.png

#丢弃频率为5、刷卡金额不等于1的数据
index8 <- clean_credit2$频率 ==5
index9 <- clean_credit2$月刷卡额 != 1
clean_data <- clean_credit2[-which(index8&index9),]

5)查看数据

1d0ea614cf154d70bc0cc41a29b34af0.png

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

(1)根据特征瑕疵户、逾期、呆账、强制停卡、退票和拒往记录,构建历史行为特征。

0cedef4ea8a14f34bb1d0fb4ff204fdf.png

#构建历史行为特征
history <- clean_data[,c('瑕疵户','逾期','呆账','强制停卡记录','退票','拒往记录')]

 

2)根据特征借款余额、个人月收入、个人月开销、家庭收入和月刷卡额,构建出经济风险情况特征。

808a77494c1d417f94f5fd650f42c362.png

#构建出经济风险情况特征
economy <- clean_data[,c('借款余额','个人月收入','个人月开销','家庭月收入','月刷卡额')]

 

3)根据特征职业、年龄、房产信息,构建出收入风险情况特征

c9eeecd7e5f945698c2bf124b1e5142c.png

#构建出收入风险情况特征
income <- clean_data[,c('职业','年龄','住家')]

 

4)标准化历史行为、经济风险情况、收入风险情况特征。

551df053c9b74a8f86ff2fdbf9170b80.png

#对三个特征进行合并
trait <- cbind(history,economy)
trait <- cbind(trait,income)
#对这些特征进行标准化
traitscal <- scale(trait)

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

 

1)构建K-Means聚类模型,使类别为5

ec68d61af32e45cf86f0589ac32140b8.png

set.seed(123)
result <-kmeans(traitscal,5)#调用kmeans算法,聚类中心为5

2)训练K-Means聚类模型,并求出聚类中心和每类的用户数目。

308db9ae009a49cd86d5002d75f97751.png

round(result$cluster)#查看聚类中心
table(result$cluster)#统计不同类别样本数目

2fa1ba78e75d4dfd9d56c63ad5961934.png

4d16610855d14a37ae0b4c3aed2cadd0.png

3)对客户分群进行可视化

d6cfd3a4e7fc4016864dfb8065dc82d1.png

library(fmsb)#导入fmsb包
max <- apply(result$centers, 2, max)#获取centers中每列的最大值
min <- apply(result$centers, 2, min)#获取centers中每列的最小值
df <- data.frame(rbind(max, min, result$centers))#创建数据集
radarchart(df = df, seg = 5, plty = c(1:5), vlcex = 1, plwd = 2)
#设置雷达图的样式,每个轴的段数为5,设置绘图数据的线型向量为1:5,重复使用
#标签字体放大一倍,设置绘图数据的线宽向量为2。
#给雷达图加图例
L <- 1
for(i in 1:5){

  legend(1.3, L, legend = paste("客户群", i), lty = i, lwd = 3, col = i, bty = "n")

  L <- L - 0.2
}

a572f12c0df24daaaa7a8d9e3a16d76e.png

结果分析:

从雷达图中可以看出每类客户的各项优缺点,

优势特征

劣势特征

客户群1

月刷卡额

 

 

历史行为

 

客户群2

历史行为

收入

月刷卡额、借款余额

个人月收入、个人月开销、家庭月收入

 

客户群3

历史行为

年龄

 

经济

 

客户群4

历史行为

个人月开销

 

年龄

 

客户群5

历史行为

个人月收入

家庭月收入

个人月开销

 

客户群1:该类用户是风险最高的用户,该类用户月刷卡消费额度大,但历史行为差,没有良好的个人纪录,应重点监控或减缩该类用户的信用卡权限。

客户群2:该类用户有良好的历史行为,但个人月收入和家庭月收入较差,属于中风险人群。

客户群3:该类用户有良好的历史行为,但经济状况的记录较差,年龄较高,该类人群可能属于离退休群体,属于低风险人群。

客户群4:该类用户有良好的历史行为,借款余额和个人月开销较高,刷卡余额较低,年龄较低,可能是高消费的年轻人,属于中风险人群。

客户群5:该类用户有良好的历史行为,个人收入,家庭收入高,有良好的历史记录但个人开销与年龄较低,值得信任。

由此可分析得出:

一般客户:客户群3

重要发展客户:客户群5

重要挽留客户:客户群4

重要保持客户:客户群2

低价值客户:客户群1

 

 

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值