Advertisement

零基础入门数据挖掘之金融风控-贷款违约预测

阅读量:

零基础入门数据挖掘之金融风控-贷款违约预测

  • 摘要
    • 1.数据概况
    • 2.数据读取
    • 3.分类指标评价计算

摘要

参与实践学习是非常荣幸能够获得这次宝贵的实践机会


1.数据概况

简单来说就是要了解我们手头的数据情况以及它们的具体有哪些类型的数据。每个字段各自代表什么含义呢?深入分析该竞赛的目标后,根据需求选择恰当的技术手段来进行深入研究。这些预处理的工作已经完成,在后续比赛中无需再单独处理这些数据。

2.数据读取

复制代码
    读取数据文件,并查看数据基本情况

代码如下:

复制代码
    import pandas as pd
    
    train = pd.read_csv('train.csv') #读取文件
    testA = pd.read_csv('testA.csv')
    
    print("train data shape:",train.shape) #查看数据大小,输出(行,列)
    print("testA data shape:",testA.shape)
    
    pd.set_option('display.max_columns', None) # 显示所有列设置
    #pd.set_option('display.max_rows', None)
    train.head(10) #读取前10行数据,不传参默认显示前5行
    
    plot as plt
    import seaborn as sns
    import warnings
    warnings.filterwarnings('ignore')
    import  ssl
    ssl._create_default_https_context = ssl._create_unverified_context

结果如下:

在这里插入图片描述

3.分类指标评价计算

分类算法中常用的评估指标包括:

  1. 混淆矩阵(Confusion Matrix)
  2. 正确率(Accuracy)
  3. 精确度(Precision Rate)
  4. 召回能力(Recall Rate)
  5. F1 值
  6. P-R 曲线值 (Precision-Recall Curve Value)
  7. ROC 曲线 (Receiver Operating Characteristic) 曲线值
  8. AUC 值 (Area Under the Curve Value)

对于金融风控预测类常见的评估指标如下:

  1. 该方法采用Kolmogorov-Smirnov测试进行评估
  2. 该方法采用受 receiver operating characteristic 曲线影响的指标进行评估
  3. 该方法通过曲线下面积评估模型性能

各类评估指标实现代码如下:

复制代码
    ## 1.计算并输出混淆矩阵
    import numpy as np
    from sklearn.metrics import confusion_matrix
    y_pred = [0,1,0,1,1,0,1,1,1,1]  #预测值
    y_true = [0,1,1,0,0,0,1,0,0,1]  #真实值
    print('混淆矩阵:\n',confusion_matrix(y_true,y_pred))
    
    ## 2.accuracy
    from sklearn.metrics import accuracy_score
    y_pred = [0,1,0,1]
    y_true = [0,0,0,1]
    print('ACC:',accuracy_score(y_true,y_pred))
    
    ## 3.precision,Recall,F1-score
    from sklearn import metrics
    y_pred = [0,1,0,1,1,0,1,1,1,1]
    y_true = [0,1,1,0,0,0,1,0,0,1]
    print('precision',metrics.precision_score(y_true,y_pred))
    print('Reall',metrics.recall_score(y_true,y_pred))
    print('F1-score:',metrics.f1_score(y_true,y_pred))
    
    ## 4.P-R曲线
    import matplotlib.pyplot as plt
    from sklearn.metrics import precision_recall_curve
    y_pred = [0,1,1,0,1,1,0,1,1,1]
    y_true = [0,0,0,0,1,0,1,1,1,0]
    precision,recall,thresholds = precision_recall_curve(y_true,y_pred)
    plt.plot(precision,recall)
    
    ## 5.ROC 曲线
    from sklearn.metrics import roc_curve
    y_pred = [1,0,1,1,1,0,0,0,1,0]
    y_true = [1,0,0,0,1,1,0,1,1,0]
    FPR,TPR,thresholds = roc_curve(y_true,y_pred)
    plt.title('ROC')
    plt.plot(FPR,TPR,'b')
    plt.plot([0,1],[0,1],'r--')
    plt.ylabel('TPR')
    plt.xlabel('FPR')
    Text(0.5,0,'FPR')
    
    ## 6.AUC 
    import numpy as np
    from sklearn.metrics import roc_auc_score
    y_true = np.array([0,1,1,1,0,0])
    y_scores = np.array([0.1,0.5,0.45,0.75,0.8,0.3])
    print('AUC score:',roc_auc_score(y_true,y_scores))
    
    ## 7.KS值,在实际操作时往往使用ROC曲线配合求出KS值
    from sklearn.metrics import roc_curve
    y_pred = [1,0,0,0,1,0,1,1,0,1]
    y_true = [0,1,1,1,0,0,0,0,0,1]
    FPR,TPR,thresholds = roc_curve(y_true,y_pred)
    KS = abs(FPR-TPR).max()
    print('KS值',KS)

代码运行结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~