美文网首页
房屋信贷违约风险竞争(kaggle)系列2-数据清理和格式化

房屋信贷违约风险竞争(kaggle)系列2-数据清理和格式化

作者: 只是甲 | 来源:发表于2022-08-18 10:32 被阅读0次

一. ROC和AUC

ROC(受试者工作特征曲线)
AUC(ROC曲线下的面积)

在诸如逻辑回归或者神经网络的分类器中,模型给出的结果并不是直接的分类结果,而是对样本属于某类的概率。此时可以选择某一个概率阈值,当预测概率超过此阈值时,认为样本属于欺诈,否则属于正常样本,进而形成混淆矩阵。由于阈值有很多种可能,于是我们有很多个混淆矩阵。如何综合判断多个混淆矩阵的结果呢?

ROC曲线(Receiver operating characteristic curve)是多个混淆矩阵的结果组合,如果在上述模型中我们没有定好阈值,而是将模型预测概率从高到低排序,将每个概率值依次作为阈值,那么就有多个混淆矩阵。

对于每个混淆矩阵,我们计算两个指标
TPR(True positive rate)= TPR=TP/(TP+FN)=Recall
FPR(False positive rate)=FP/(FP+TN)

TPR就是召回率,FPR即为实际为正常样本中,预测为欺诈占比。我们以FPR为x轴,TPR为y轴画图,就得到了ROC曲线。

image.png

AUC(Area Under Curve)的值为ROC曲线下面的面积,若如上所述模型十分准确,则AUC为1。但现实工作中不会有如此完美的模型,一般AUC均在0.5到1之间,AUC越高,模型的区分能力越好,上图AUC为0.81。若AUC=0.5,即与上图中红线重合,表示模型的区分能力与随机猜测没有差别。若AUC真的小于0.5,表明模型很差。

KS(Kolmogorov-Smirnov)值:KS=max(TPR-FPR),即为TPR与FPR的差的最大值,KS可以反映模型的最优区分效果。KS也是评分卡模型的常用度量指标。
特别地,反欺诈领域的欺诈预测模型,由于模型结果会对识别的坏人进行一定的处置措施,FPR过高会对好人有一定干扰,造成误杀,影响客户体验,因此模型需保证在低于一定FPR的基础上尽量增加TPR。

二. 读取数据

2.1 导入基本模块

# 导入基本处理模块
import numpy as np
import pandas as pd 
from sklearn.preprocessing import LabelEncoder
import os
import warnings
warnings.filterwarnings('ignore')
import matplotlib.pyplot as plt
import seaborn as sns

2.2 显示可用列表

# 显示可用列表
print(os.listdir("E:/home_credit_default_risk"))
image.png

2.3 训练dataframe

# 导入基本处理模块
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
import os
import warnings
warnings.filterwarnings('ignore')
import matplotlib.pyplot as plt
import seaborn as sns

# 显示可用列表
# print(os.listdir("E:/home_credit_default_risk"))

# 训练dataframe
app_train = pd.read_csv('E:/home_credit_default_risk/application_train.csv')
print('Training data shape: ', app_train.shape)
print(app_train.head())
image.png

训练数据有307511个观察数据(每一个单独的贷款)和122个特征(变量),包括目标(我们想预测的标签)

2.4 测试dafaframe特征

# 导入基本处理模块
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
import os
import warnings
warnings.filterwarnings('ignore')
import matplotlib.pyplot as plt
import seaborn as sns

# 显示可用列表
# print(os.listdir("E:/home_credit_default_risk"))

# 训练dataframe
#app_train = pd.read_csv('E:/home_credit_default_risk/application_train.csv')
#print('Training data shape: ', app_train.shape)
#print(app_train.head())

# 测试dafaframe特征
app_test = pd.read_csv('E:/home_credit_default_risk//application_test.csv')
print('Testing data shape: ', app_test.shape)
print(app_test.head())
image.png

由此可见测试集比训练集小很多,而且缺少目标列

参考:

  1. https://www.kaggle.com/c/home-credit-default-risk/data?select=application_test.csv
  2. https://aistudio.baidu.com/aistudio/datasetdetail/105246
  3. https://www.jianshu.com/p/c494a3a92af5
  4. https://wangjh.blog.csdn.net/article/details/81121122

相关文章

网友评论

      本文标题:房屋信贷违约风险竞争(kaggle)系列2-数据清理和格式化

      本文链接:https://www.haomeiwen.com/subject/wewgurtx.html