金融风控训练营--Task01--学习笔记

一、知识点概要

分类算法预测指标:

混淆矩阵 confuse matrix

准确率、精确率、召回率、F1-Score、P-R曲线

ROC空间与AUC

金融风控预测类指标:

KS统计量

pandas库读取、计算及绘图

 

二、学习内容

①混淆矩阵:四个类

TP(True Positive)     FP(False Positive)

TN(True Negative)   FN(False Negative)

 

②准确率:预测为正类的实例占总数的比例

    精确率:TP占预测为正类的比例,可以理解为预测上的准确。【也称查准率:检索出来的相关信息量/检索出来的信息总量】

    召回率:TP占真实为正类的比例,可以理解为认证上的召回。【也称查全率:检索出来的相关信息量/系统中所有的相关信息量】

 

    用比喻来理解精确率和召回率:我们有一群外出的鸭子,晚上没有回家,全部都跑到别人家里和别人家的鸭子混在了一起,现在我们要从一大群鸭子里面找出我们家的鸭子,这群鸭子中,有我们的也有别人的,总共鸭子有200只,我们从里面找出来一群鸭子假设为(100只),以为全部都是我们家的,剩下的100只是别人家的,然后仔细看了一下,里面只有80只,是我们家的,其他都是别人家的,这样我们的准确率就只有80/100也就是0.8,这个时候我爸来说我们家总共有120个鸭,这样我们的召回率就只有80/120也就是0.67左右了

(来源:https://www.jianshu.com/p/c56a22c6173a

 

    F1-Score:2*\frac{recall*precision}{recall+precision},精确率和召回率的调和平均数,最大为1,最小为0,因为调和平均数受极小值影响比算术平均值大,所以用来同时观察精确率和召回率的关系更准确

    P-R曲线:横轴为recall,纵轴为precision,表示recall和precision之间关系的曲线

 

③ROC空间:横轴为假正例率FPR(假中预真),纵轴为真正例率TPR(真中预真)

ROC曲线一般位于y=x曲线上方,因为ROC越靠近左上方,这个二值分类器性能越好,因为它意味着在高真正例率的同时获得了低假正例率

AUC:ROC曲线与下方坐标轴围成的面积,通常取值在0.5~1之间。AUC越接近1,检测方法真实性越高;等于0.5的时候,真实性最低,毫无应用价值

 

④KS统计量: KS=max(TPR-FPR) ,用于评估模型区分度,区分度越大,说明模型的风险排序能力越强

KS曲线与ROC曲线相似,只不过KS将真假正利率都作为纵轴,横轴由选定的阈值来充当

KS(%)好坏区分能力
< 20不建议采用
20-40较好
41-50良好
51-60很强
61-70非常强
> 70

过高,怀疑存在问题

⑤pandas库,sklearn,matplotlib,numpy

读取数据

import pandas

#读取csv文件
train = pandas.read_csv('训练数据集链接')
testA = pandas.read_csv('测试数据集链接')


#打印数据集的行列数(数据集每个维度的长度)
#返回一个元组,只有两个元素,[0]为行数,[1]为列数

print(train.shape)


#将表格的第一行看做列名,并默认输出之后的五行
train.head()

输出混淆矩阵

import numpy

#混淆矩阵
from sklearn.matrics import confusion_matrix
#准确率
from sklearn.matrics import accuracy_score
#recall,precision,F1-Score
from sklearn import matrics


y_pred = [0,1,0,1]
y_true = [0,1,1,0]


#confusion_matrix这个矩阵的构造感觉还是有点混乱
#每个数据都是用混淆矩阵来构造

print('混淆矩阵/n',confusion_matrix(y_true,y_pred))

print('accuracy_score:',accuracy_score(y_true,y_pred))

print('recall:',matrics.recall(y_true,y_pred))

print('precision:',matrics.precision(y_true,y_pred))

print('F1-Score:',matrics.f1_score(y_true,y_pred))

绘图

import matplotlib.pyplot as plt
from sklearn.matrics import precision_recall_curve

#定义y_true和y_pred


#返回精确率、召回率、阈值
precision,recall,threshold = precision_recall_curve(y_true,y_pred)

#绘P-R曲线
plt.plot(precision,recall)
from sklearn.matrics import roc_curve

#定义好y_true,y_pred

#返回FPR,TPR,阈值
FPR,TPR,threshold = roc_curve(y_true,y_pred)


#绘制ROC曲线
plt.title('ROC')
plt.plot(FPR,TPR,'b')
plt.plot([0,1],[0,1],'r--')
plt.ylabel('TPR')
plt.xlabel('FPR')

三、学习问题

本task无

 

四、总结

需要记一下单词,需要将表格看不懂的英文都意义对应标上英文记忆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值