逻辑回归评价指标趣析(AUC,ROC,一致对,相等对)

👆 关注一下~,更多商业数据分析案例等你来撩

image

本文已在公众号 " 数据分析与商业实践 " 首发,更多统计学知识,数据科学案例,Python 数据分析常用骚操作与案例源数据源代码等你来撩 ~~

引言

Python 实现的逻辑回归后,不像 SAS 那样会自动给出模型精确度的评价,需要人为操作计算 Python 专属的 AUC (Area Under Curve),ROC 曲线与 X 轴围成的面积大小反映了模型的精度。本文将着重 AUC 值和 ROC 曲线背后的原理和 Python 代码实现。

下图为利用 SAS 进行逻辑回归后的模型评价表,c 为模型精度

image

上图中左边列的”一致部分,不一致部分,和结值“表示的是评价逻辑回归模型精度的三个很重要的指标,其中,结值又可以称为”相等对“。(三个指标的含义见下文)

  • 通常我们希望一致对的占比高,不一致对和相等对的占比低。
  • Python 的 AUC 即 SAS 中的 c 统计量,计算方式为”一致对 + 1/2*结值对“,图中即:86.1% + 1/2 * 2.6% = 0.874

评价指标原理

为什么需要引入”对“这个概念?

以逻辑回归常用场景——预测客户是否流失为例,如果你的贷款经历越长,那你应该就越了解贷款的流程和注意事项(在贷款和还贷方面更有经验),那你也就应该越清晰的知道违约的后果,所以你违约的概率就越低。基于此背景,研究人员认为开设贷款账号距今时间越长的,P(履约)的预测值越大。

随机选取 5 条建模预测结果


image

建模后,我们只知道预测违约的概率与违约情况,如果针对单个用户而言,又怎么知道模型预测对了 TA 的违约情况呢?难道只是简单的认为预测违约概率大于 0.5 且违约情况为 1(是)时,这就算对了吗?

其实为了找到一致对、不一致对以及相等对,要将每一个获得相关结果的人与每一个没有获得相关结果的人进行比较(否则怎么体现”对“字,这句话轻微拗口,得继续往下看)。

image

下图表示将数据集划分为 履约 和 违约 两个群体。


image

什么是一致对?

下图是一个(橙)对。小人头上面的文字描述了该客户开设贷款账号距今的时间和 TA 是否违约的情况。

image

绿衣女士的账号开设时间长于光头男士,所以程序给出的 P(履约) 更大,这一点无需多言,而且也与现实情况相符,P(履约) 大的就是履约,小的就是违约;即实际排序与模型相符(头顶左违右履,脚底左1右0 橙),这是一个一致对。

注意:不少朋友可能还以为 P(履约) 超过 0.5 就算履约,低于则表示违约;其实这个并不一定,这个履违约阈值还需要根据实际业务情况考量,比如我要贷款十亿,我的履约率怎么也得满银行它才有信心贷这么一大笔钱给我。

什么是不一致对?

先给新的一对客户换套衣服


image

有了一致对的经验,判断不一致对就容易多了。红发女士比光头男士(为什么男士总是光头)的开户时间长,P(履约) 更高,但结果确是违约。两人相比之下,模型给出的履约概率高的人反倒违约了,即实际排序与模型不符,这是一个不一致对。

什么是相等对(结值)?

上套艳丽点的衣服吧!

image

这次我们发现模型给出二者的预测概率相等,均为0.3697,还是分别从履约和违约这两个群体中各抽一个,但巧合的是,两者的开户时长都一样,所以很明显可以看到模型在这个对中预测正确了一半。

综上,二分类逻辑回归的精度 = 1* 一致对 + 0* 不一致对 + 1/2* 相等对,按照常识,从履约组和违约组中各抽一个客户,P(履约) 相等的概率是十分小的,让我们再来看看文章开头的 SAS 模型结果图

image

混淆矩阵与 ROC 曲线

混淆矩阵这个老概念不必多说,直接看下表即可,但它却是 Python 逻辑回归模型评价指标 ROC 曲线背后的非常重要的一个知识点。

ROC(Receiver Operating Characterstic)曲线一一接收者操作特征曲线。
最早应用于雷达信号检测领域,用于区分信号与噪声。信号检测论:在听觉感受性相同的情况下,判断标准不一样。

①冒进:每次出现不会“漏报”,感觉有就报告。
②保守:每次出现不会“虚报”,没有把握不会报告。

image
image

AUC 的值即 ROC 曲线与 X 轴围城的面积。

代码实现

建模结果

  • churn:1.0 - 违约;0.0 - 履约
  • proba:违约的概率


    image
# sklearn 包绘制 Python 专门用来评估逻辑回归模型精度的 ROC 曲线
import sklearn.metrics as metrics

# 分别对测试集和训练集进行 ROC 曲线的绘制
fpr_test, tpr_test, th_test = metrics.roc_curve(test.churn, test.proba)
# 传入三个变量,一致对,相等对,不一致对,
 ## 调用 metrics 的 roc_curve 函数,传入两个参数:原本值和预测值
fpr_train, tpr_train, th_train = metrics.roc_curve(train.churn, train.proba)

plt.figure(figsize=[3, 3])
plt.plot(fpr_test, tpr_test, 'b--')
plt.plot(fpr_train, tpr_train, 'r--')
plt.title('ROC curve'); plt.show()

print(f'AUC = {metrics.auc(fpr_test, tpr_test)}')
              # metrics 下的 auc 函数
image

通过 AUC 值,我们可以发现模型精度较高。

至于如何利用逻辑回归完整的实现客户流失预警模型的构建,可参考如下文章:

超详细!逻辑回归实现客户流失预警模型(含源数据)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352