一、 ROC曲线和AUC值
在逻辑回归、随机森林、GBDT、XGBoost这些模型中,模型训练完成之后,每个样本都会获得对应的两个概率值,一个是样本为正样本的概率,一个是样本为负样本的概率。把每个样本为正样本的概率取出来,进行排序,然后选定一个阈值,将大于这个阈值的样本判定为正样本,小于阈值的样本判定为负样本,然后可以得到两个值,一个是真正率,一个是假正率。
真正率即判定为正样本且实际为正样本的样本数/所有的正样本数,假正率为判定为正样本实际为负样本的样本数/所有的负样本数。每选定一个阈值,就能得到一对真正率和假正率,由于判定为正样本的概率值区间为[0,1],那么阈值必然在这个区间内选择,因此在此区间内不停地选择不同的阈值,重复这个过程,就能得到一系列的真正率和假正率,以这两个序列作为横纵坐标,即可得到ROC曲线了。而ROC曲线下方的面积,即为AUC值。
image二 、KS曲线
K-S曲线其实数据来源和本质和ROC曲线是一致的,只是ROC曲线是把真正率和假正率当作横纵轴,而K-S曲线是把真正率和假正率都当作是纵轴,横轴则由选定的阈值来充当。
KS(Kolmogorov-Smirnov):KS用于模型风险区分能力进行评估,指标衡量的是好坏样本累计分部之间的差值。好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。
KS的计算步骤如下:
- 计算每个评分区间的好坏账户数。
- 计算每个评分区间的累计好账户数占总好账户数比率(good%)和累计坏账户数占总坏账户数比率(bad%)。
- 计算每个评分区间累计坏账户占比与累计好账户占比差的绝对值(累计good%-累计bad%),然后对这些绝对值取最大值即得此评分卡的KS值。
三、AUC和KS的关系
要弄明白ks值和auc值的关系首先要弄懂roc曲线和ks曲线是怎么画出来的。其实从某个角度上来讲ROC曲线和KS曲线是一回事,只是横纵坐标的取法不同而已。拿逻辑回归举例,模型训练完成之后每个样本都会得到一个类概率值(注意是类似的类),把样本按这个类概率值排序后分成10等份,每一份单独计算它的真正率和假正率,然后计算累计概率值,用真正率和假正率的累计做为坐标画出来的就是ROC曲线,用10等分做为横坐标,用真正率和假正率的累计值分别做为纵坐标就得到两个曲线,这就是KS曲线。AUC值就是ROC曲线下放的面积值,而ks值就是ks曲线中两条曲线之间的最大间隔距离。
ROC值一般在0.5-1.0之间。值越大表示模型判断准确性越高,即越接近1越好。ROC=0.5表示模型的预测能力与随机结果没有差别。KS值表示了模型将+和-区分开来的能力。值越大,模型的预测准确性越好。一般,KS>0.2即可认为模型有比较好的预测准确性。KS值一般是很难达到0.6的,在0.2~0.6之间都不错。一般如果是如果负样本对业务影响极大,那么区分度肯定就很重要,此时K-S比AUC更合适用作模型评估,如果没什么特别的影响,那么用AUC就很好了。
四、混淆矩阵
image查准率(准确率):在被识别为正类别的样本中,确实为正类别的比例是多少?
查全率(召回率):在所有正类别样本中,被正确识别为正类别的比例是多少?
查准率和查全率的计算
image查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。例如,若希望将好瓜尽可能多地选出来(查全率高),则可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低;若希望选出的瓜中好瓜比例尽可能高(查准率高),则可只挑选最有把握的瓜, 但这样就难免会漏掉不少好瓜,使得查全率较低。
五、P-R曲线
根据样例是正例的可能性进行排序,排在前面的是学习器认为"最可能 “是正例的样本,排在最后的则是学习器认为"最不可能"是正例的样本。这样,分类过程就相当于在这个排序中以某个"截断点” (cut point)将样本分为两部分,前一部分判作正例,后一部分则判作反例。
这个截断点就相当于阈值(threshold),设置不同的threshold计算出当前的查全率、 查准率。即根据不同threshold来绘制曲线,曲线A上的每个点都对应不同的阈值。A,B,C是三个学习器,也可以说是三个模型。
image如何度量学习器性能?
若一个学习器的 P-R 曲线被另一个学习器的曲线完全包住 ,则后者的性能优于前者,A优于C若两个学习器的P-R曲线相交,则可根据平衡点和F1度量。
(1)平衡点(Break-event Point,简称BEP):即查全率=查准率时的取值。平衡点取值A>B,即A优于B (2)F1度量
Fl 是基于查准率与查全率的调和平均 (harinonic mean)定义的:
image六、模型稳定度指标PSI
群体稳定性指标PSI(Population Stability Index)是衡量模型的预测值与实际值偏差大小的指标。
image举例:
比如训练一个logistic回归模型,预测时候会有个概率输出p。测试集上的输出设定为p1吧,将它从小到大排序后10等分,如0-0.1,0.1-0.2,......。现在用这个模型去对新的样本进行预测,预测结果叫p2,按p1的区间也划分为10等分。实际占比就是p2上在各区间的用户占比,预期占比就是p1上各区间的用户占比。
意义就是如果模型跟稳定,那么p1和p2上各区间的用户应该是相近的,占比不会变动很大,也就是预测出来的概率不会差距很大。一般认为PSI小于0.1时候模型稳定性很高,0.1-0.25一般,大于0.25模型稳定性差,建议重做。
PS:除了按概率值大小等距十等分外,还可以对概率排序后按数量十等分,两种方法计算得到的psi可能有所区别但数值相差不大。
网友评论