KS曲线和ROC曲线(一)

KS曲线和ROC曲线都是在对二分类模型做评估时的一种直观表现。以前用的和听得多的是ROC曲线,很少会听到KS曲线。只能说偶孤陋寡闻了。下面就聊一聊KS曲线和ROC曲线。

既然要画曲线,我们先看看需要用到哪些数据。因为是二分类,我们就分为正样本和负样本。

TP

真正例,也就是被正确分类的正样本

FP假正例,也就是被误分为正样本的负样本
TN真反例,也就是被正确分类的负样本
FN假反例,也就是被误分为负样本的正样本

所以TP+FP+TN+FN = 样本总数,然后就可以计算TPR和FPR。

TPR真正例率:也就是说在正样本里面,有多少比例的正样本被分类正确     \frac{TP}{TP+FN}
FPR假正例率:也就是说在负样本里面,有多少比例的负样本被误分为正样本    \frac{FP}{FP+TN}

有了上面的辅助,我们就进入主题:

1、KS曲线

KS曲线的横坐标为阈值,纵坐标为在不同阈值划分下的TPR与FPR的差值。但是一般我们同时会画出TPR和FPR曲线,这样看着会比较清晰。根据预测的结果的概率值,将样本从大到小排序后,用阈值划分,大于该阈值为正样本,小于该阈值为负样本。然后计算TPR,FPR和它们之间的差值。TPR与FPR之间最大的差值,也就是KS曲线的顶点处就是KS值。阈值为[0,1]之间的数,一般选取(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0)这十个点,也可以将每个样本点作为阈值。KS值可以用来评估模型对正负样本的区分能力。KS值越高表明模型就越好。同时KS曲线受到样本类别不平衡的影响较小。但要注意的是即便正负样本完全分错了,KS值依然会很高。KS值还可以用来选择阈值。

2、ROC曲线

ROC曲线的横坐标为FPR值,纵坐标为TPR值。将样本按照预测的概率值从大到小排序,然后选取每个样本值的概率作为阈值,计算出该阈值下的TPR和FPR。用TPR和FPR对,画出曲线。而ROC曲线下面的面积就是AUC值。AUC值可以用来评估模型的性能,该值越大,模型就越好。ROC曲线受到样本类别不平衡影响也较小。因为当类别不平衡时,应accuracy并不准确。假如,当正样本远远大于负样本时,即使我什么都不做,让模型输出的值全为正样本,准确率依然很高。

python代码详见KS曲线和ROC曲线(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值