KS是一个有多种含义的缩写词。在网络用语中,它可能表示“KISS”,即亲吻的意思;也可能用于表示“KILL STEAL”,指抢人头的行为。在不同的语境下,KS的具体含义会有所不同。在游戏领域,玩家可能会用KS来指代抢人头的情况;而在网络聊天或社交媒体上,人们可能会用KS来表达亲吻或亲昵的情感。
KS的含义
KS(Kolmogorov-Smirnov)是用于模型风险区分能力进行评估的指标,它衡量的是好坏样本累计分布之间的差值,好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。
计算方法
手动计算方式
1、数据准备:需要包含预测值和真实值的数据集,预测值一般为范围在0~1之间的概率值,真实值是实际的好坏用户的label,一般为0或1。
2、排序分组:将数据按照预测值从小到大排序,然后平均分成num组,新增rank列对每个区间从上到下使用1~num个数字标记,同时新增set_1列,所有值均为1。
3、统计结果:对score列进行统计,得到每个区间的个数、最大值、最小值和平均值等;分别统计好用户和坏用户的数量、占比及累计占比。
4、计算KS值:计算bad_percent_cum与good_percent_cum的差值,其最大值即为KS值。
有以下简单数据示例:
score | label | |
0.71 | 1 | |
0.612 | 0 | |
0.127 | 0 | |
0.330 | 0 | |
0.428 | 0 | |
0.889 | 1 | |
0.188 | 0 | |
0.229 | 0 | 0.889 |
0.022 | 0 | |
0.43 | 0 | |
0.952 | 1 | |
0.622 | 1 | |
0.11 | 0 | |
0.22 | 0 | |
0.33 | 0 | |
4.40 | 1 | |
4.55 | 4.66 | |
4.77 | 4.78 | |
4.89 | ||
4.99 |
按上述步骤计算可得KS值为0.846左右。
使用sklearn模块计算
可以直接调用roc_curve
函数获取fpr(False Positive Rate)和tpr(True Positive Rate),然后通过计算abs(fpr - tpr)的最大值得到KS值。
KS曲线
将TPR、FPR、(TPR-FPR)三条曲线画在一起,并标出KS值,就是KS曲线,其中x轴代表阈值切割点。
相关问题与解答
问题1:KS值的大小如何判断模型的优劣?
回答:KS值越大,模型区分好坏样本的能力越强,通常认为KS>0.2模型预测性较好,0.2~0.3模型可用,0~0.2模型预测能力较差,<0.0模型错误。
问题2:KS曲线有什么作用?
回答:KS曲线可以直观地展示模型在不同阈值下的TPR和FPR的变化情况,以及KS值的位置,帮助分析模型的性能和选择合适的阈值。