• 信用卡客户风险分析与评价


    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聚类模型,并求出聚类中心、每类的用户数目。

    import pandas as pd
    import numpy as np
    from sklearn.cluster import KMeans

    std = np.load(“…/tmp/standard.npy”)
    print(std[:5])
    kmeans_model = KMeans(n_clusters=5,random_state=123)
    fit_kmeans = kmeans_model.fit(std)
    kmeans_model.cluster_centers_

    查看样本类别标签

    print(“聚类中心\n”,kmeans_model.cluster_centers_)
    print(“样本的类别标签\n”,kmeans_model.labels_)

    统计不同类别样本的数目

    r1 = pd.Series(kmeans_model.labels_).value_counts()
    print(‘最终每个类别的数目:\n’,r1)

    #针对聚类结果绘制雷达图
    import matplotlib.pyplot as plt
    #设置中文显示
    plt.rcParams[‘font.sans-serif’] = ‘SimHei’
    plt.rcParams[‘axes.unicode_minus’] = False

    #绘制雷达图
    N = len(kmeans_model.cluster_centers_[0])
    print(“N的值\n”,N)

    #设置雷达图的角度,用于平分切开一个圆面
    angles = np.linspace(0,2np.pi,N,endpoint=False)
    print(“angles的值\n”,angles)
    #为了使雷达图一圈封闭起来
    angles = np.concatenate((angles,[angles[0]]))
    print(“angles的值\n”,angles )
    #绘图
    fig = plt.figure(figsize=(7,7))
    ax = fig.add_subplot(111,polar=True)
    colors = [“r”,“g”,“b”,“y”,“k”]
    lab = []
    for i in range(len(kmeans_model.cluster_centers_)):
    values = kmeans_model.cluster_centers_[i]
    feture = [“历史行为特征”, “经济风险特征”, “收入风险特征”]
    feture = np.concatenate((feture, [feture[0]]))
    values = np.concatenate((values,[values[0]]))
    print(“values的值\n”,values)
    #绘制折线图
    ax.plot(angles,values,colors[i],linestyle=“-”,linewidth=2,markersize=10)
    #填充颜色
    ax.fill(angles,values,alpha=0.5)
    #添加每个特征的标签
    ax.set_thetagrids(angles
    180/np.pi,feture,fontsize=15)
    #添加标题
    plt.title(“客户群特征分布图”)
    #添加网格
    ax.grid(True)
    #添加图例
    lab.append(“客户群”+str(i+1)+“,”+str(r1[i])+“人”)
    plt.legend(lab)
    plt.savefig(“…/tmp/客户群特征分布图.png”)
    plt.show()

    在这里插入图片描述

  • 相关阅读:
    MySQL备份及恢复
    docker离线搭建仓库
    Git基础使用
    MySQL 开启远程连接
    核心实验16_端口镜像_ENSP
    c++ rpc调用nodejs
    java毕业设计茶叶销售网站Mybatis+系统+数据库+调试部署
    代码随想录算法训练营第五十七天| 392.判断子序列 115.不同的子序列
    ROS C++程序终止/结束进程&& 多线程终止运行程序
    Android通信安全之HTTPS
  • 原文地址:https://blog.csdn.net/qq_31391601/article/details/127412310