LR analyze
有个很有意思的问题:明明LR是用来分类,为什么我们要叫他ression 回归??上一章我们疏通了LR算法的数学理论、建模依据、损失函数优化方法等,稍作思考便可以回答这个问题。
这一章我们将从LR模型的评估、模型参数分析角度分析LR。
首先是模型评估:
评估一个模型的好坏有很多参考依据,作为一个经典二分类模型,混淆矩阵矩阵再适合不过了。
混淆矩阵:
A True Negative TN #正确预测负样本数
B False Negative FN #错误预测负样本数
C True Postive TP #正确预测正样本数
D False Positive FP #错误预测正样本数
输入结果对比测试机的label值,我们可以得到ABCD4个数据
准确率:(正确预测数)/(所有样本) = (A+C)/(A+B+C+D) #Accuracy
正覆盖率:(正确预测正例数)/(所有正例) = C/(B+C) #Sensitivity
负覆盖率:(错误预测负例数)/(所有负例) = B/(A+D) #Specificy
Accuracy、Sensitivity、Specificy 这三个指标越高越好
但是这些指标不是唯一的,也不是所有模型都适用的,需要结合数据情况处理,但大多数情况下,这三个指标已经可以衡量模型的好坏。
更直观和综合三个指标的评估方法就是用ROC曲线。
在介绍ROC曲线之前,我先介绍一下分类的依据。根据上一章我们构建的LR模型,我们可以知道我们的模型输出是一个0到1之间的数,表示服从logit分布的概率。在大多数情况下我们会选择0.5作为分类阈值,这个其实很好理解,加入你在参加一个赌局,由于某种原因庄家赢得概率大于0.5,你也会选择更倾向庄家赢对吧。
ROC曲线
现在正式介绍ROC曲线,规定横轴为1-Specificy,纵轴为Sensitivity。如果按前面理论我们会发现,Specificy和Sensitivity应该是个定值何来曲线?
所以我们在绘制ROC曲线的时候会选择不同的阈值,计算不同阈值下各项指标,连接坐标轴里的点就是ROC曲线。如下图所示:
图片来自于刘顺祥《python数据分析与挖掘》
计算ROC曲线与坐标轴围成的面积,0.8以上代表模型ok。
还有一种曲线评估模型我觉得更简洁方便那就是KS曲线
ks曲线
上述ROC曲线在绘制的时候并没有强调阈值如何选取,所以有可能曲线画的并不均匀。1、ks曲线首先将模型输出排序。2、按样本数量,分十等份,选择十等份的阈值计算上述三个指标。3、绘制ks曲线,横轴为十等份的值,纵轴两条曲线,一条1-Specificy,一条Sensitivity曲线。如下图所示:
如图计算两条曲线最大的差值,即为ks值。当ks值为0.4以上时,模型ok。
模型的分析
记得从某位老师那里听说:一位图灵奖的获奖者曾说一切不可解释的分析预测都是不可靠的。咱不管这句话对不对,但是非常幸运,LR模型具有非常强的可解释性。
从宏观理论上来讲,LR源自于线性回归服从Logit概率分布所以有稳定的数学理论做支撑,线性回归特征分析都非常清晰,那么LR的特征关系也可以解释,只不过形式不同。
如上图我手写所示,odds称作为发生比,指一个事情发生与不发生的概率比,有的教材也称之为‘优势’。odds的推导就不细说了p/(1-p),p的求法上一章也表示过。
很明显特征值xi增加1,发生比是原来的exp[Bi]倍。
应用场景分析
综上所述由于LR的强解释性和数学逻辑性,LR可以用在一些特征关系强烈,数据质量较好的地方。典型的就是银行客户风险分类,由于银行数据质量好,特征关系明显,LR可以给银行带来非常清晰可靠的有价值的数据分析。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。