零基础入门数据挖掘之金融风控-贷款违约预测
发布时间
阅读量:
阅读量
零基础入门数据挖掘之金融风控-贷款违约预测
- 摘要
-
- 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.分类指标评价计算
分类算法中常用的评估指标包括:
- 混淆矩阵(Confusion Matrix)
- 正确率(Accuracy)
- 精确度(Precision Rate)
- 召回能力(Recall Rate)
- F1 值
- P-R 曲线值 (Precision-Recall Curve Value)
- ROC 曲线 (Receiver Operating Characteristic) 曲线值
- AUC 值 (Area Under the Curve Value)
对于金融风控预测类常见的评估指标如下:
- 该方法采用Kolmogorov-Smirnov测试进行评估
- 该方法采用受 receiver operating characteristic 曲线影响的指标进行评估
- 该方法通过曲线下面积评估模型性能
各类评估指标实现代码如下:
## 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)
还没有任何评论哟~
