精华内容
下载资源
问答
  • lift曲线

    2020-01-08 11:38:04
    二、lift曲线 在营销推广活动(例如DM信)中,我们的首要目标并不是尽可能多地找出那些潜在客户,而是提高客户的响应率。客户响应率是影响投入产出比的重要因素。此时,我们关注的不再是TPR(覆盖率),而是另一个...

    二、lift曲线
    在营销推广活动(例如DM信)中,我们的首要目标并不是尽可能多地找出那些潜在客户,而是提高客户的响应率。客户响应率是影响投入产出比的重要因素。此时,我们关注的不再是TPR(覆盖率),而是另一个指标:命中率。

    计算距离:
    例如,若经验告诉我们10000个消费者中有1000个是我们的潜在客户,则我们向这10000个消费者发放传单的效率是10%(即客户的响应率是10%),k=(c+d)/(a+b+c+d)=10%。通过对这10000个消费者进行研究,建立logistic回归模型进行分类,我们得到有可能比较积极的1000个消费者,b+d=1000。如果此时这1000个消费者中有300个是我们的潜在客户,d=300,则命中率PV为30%。

    此时,我们的提升值lift=30%/10%=3,客户的响应率提升至原先的三倍,提高了投入产出比。

    http://blog.sina.com.cn/s/blog_15c1e901a0102wram.html

    展开全文
  • python绘制roc曲线,lift曲线

    万次阅读 2018-02-09 11:22:29
    roc曲线和lift曲线是模型评价的指标,我们在建好模型后经常会用这两个指标对模型进行评估。在建模过程中发现python竟然没有自动生成roc曲线和lift曲线的包。我自己写了两个函数,能够做出roc曲线和lift曲线。希望...

    roc曲线和lift曲线是模型评价的指标,我们在建好模型后经常会用这两个指标对模型进行评估。在建模过程中发现python竟然没有自动生成roc曲线和lift曲线的包。我自己写了两个函数,能够做出roc曲线和lift曲线。希望可以给大家工作和学习带来一些方便。

    函数如下,大家可以直接调用。

    from scipy.stats import scoreatpercentile
    import seaborn as sns
    import matplotlib.pyplot as plt
    import pandas as pd
    from sklearn.metrics import roc_curve, auc
    
    ###result like result[['target','proba']]
    
    def lift_curve_(result):
        result.columns = ['target','proba']
        result_ = result.copy()
        proba_copy = result.proba.copy()
        for i in range(10):
            point1 = scoreatpercentile(result_.proba, i*(100/10))
            point2 = scoreatpercentile(result_.proba, (i+1)*(100/10))
            proba_copy[(result_.proba >= point1) & (result_.proba <= point2)] = ((i+1))
        result_['grade'] = proba_copy
        df_gain = result_.groupby(by=['grade'], sort=True).sum()/(len(result)/10)*100
        plt.plot(df_gain['target'], color='red')
        for xy in zip(df_gain['target'].reset_index().values):
            plt.annotate("%s" % round(xy[0][1],2), xy=xy[0], xytext=(-20, 10), textcoords='offset points')  
        plt.plot(df_gain.index,[sum(result['target'])*100.0/len(result['target'])]*len(df_gain.index), color='blue')
        plt.title('Lift Curve')
        plt.xlabel('Decile')
        plt.ylabel('Bad Rate (%)')
        plt.xticks([1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0])
        fig = plt.gcf()
        fig.set_size_inches(10,8)
        plt.savefig("train.png")
        plt.show()
    
    def roc_curve_(result):
        result.columns = ['target','proba']
        fpr,tpr,threshold = roc_curve(result['target'],result['proba']) ###计算真正率和假正率  
        roc_auc = auc(fpr,tpr) ###计算auc的值  
        plt.figure()  
        lw = 2  
        plt.figure(figsize=(10,8))  
        plt.plot(fpr, tpr, color='darkorange',  
                 lw=lw, label='ROC curve (area = %0.2f)' % roc_auc)   
        plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')  
        plt.xlim([0.0, 1.0])  
        plt.ylim([0.0, 1.05])  
        plt.xlabel('False Positive Rate')  
        plt.ylabel('True Positive Rate')  
        plt.title('Roc Curve')  
        plt.legend(loc="lower right")  
        plt.show()    
    

    PS:result为两列的DataFrame,第一列为target(样本标签),第二列为probability(模型预测概率)。

    lift_curve_(result)
    

     

     

    roc_curve_(result)


     

    展开全文
  • ROC曲线,横轴是FPR、纵轴是TPR,变化值是阈值。...Lift曲线,提升指数曲线。 其中, 几种曲线形状展示: ROC曲线【参考图】 K-S曲线【参考图】 PR曲线 Lift曲线【参考图】 ...

    ROC曲线,横轴是FPR、纵轴是TPR,变化值是阈值。

    K-S曲线,又称作洛伦兹曲线。横轴是阈值、纵轴是TPR、FPR。

    PR曲线,横轴是Recall,纵轴是Precision,变化值是阈值。

    Lift曲线,提升指数曲线。

    其中, 


     

    几种曲线形状展示:

    ROC曲线【参考图】

     

    AUC是ROC曲线下的面积,衡量一个模型拟合效果的好坏,一般AUC值与模型效果的粗略判断标准为:

    K-S曲线【参考图】

    PR曲线

    Lift曲线【参考图】

    展开全文
  • 洛伦兹曲线4.Gini系数5.Lift曲线和Gain曲线6.总结 关于AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线。在别人的博客里看到下面的一个小故事: 故事是这样的: ​ 首先,混淆矩阵是个元老,年龄最大...


    关于AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线。在别人的博客里看到下面的一个小故事:

    故事是这样的:

    ​ 首先,混淆矩阵是个元老,年龄最大也资历最老。创建了两个帮派,一个夫妻帮,一个阶级帮。

    ​ 之后,夫妻帮里面是夫妻两个,一个Lift曲线,一个Gain曲线,两个人不分高低,共用一个横轴。

    ​ 再次,阶级帮里面就比较混乱。

    ​ 1.帮主是ROC曲线。

    ​ 2.副帮主是KS曲线,AUC面积。

    ​ 3.AUC养了一个小弟,叫GINI系数。

    1.AUC

    ​ AUC为ROC曲线下的面积,用于作为二分类模型的评价指标。

    ​ 要理解AUC,首先得明白混淆矩阵。

    1.1.混淆矩阵

    ​ 混淆矩阵如下:

    1(真)0(假)
    1(阳)TP(真阳)FP(伪阳)
    0(阴)FN(伪阴)TN(真阴)

    ​ 真阳率(召回率) T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP,表示的是,所有真实类别为1的样本中,预测类别为1的比例。TPR越大,表示越有可能是对的。

    ​ 伪阳率 F P R = F P F P + T N FPR=\frac{FP}{FP+TN} FPR=FP+TNFP,表示的是,所有真实类别为0的样本中,预测类别为1的比例。

    1.2.ROC曲线

    ​ 横轴为FPR,纵轴为TPR。目的是希望FPR尽可能小,TPR尽可能大。

    ​ 画出来的图一般如下图所示:
    ROC曲线
    ​ 通过模型预测得到各样本的预测值(如0.6、0.7等),则通过选择归于正类的阈值来判断各个样本的类别,之后则可以计算对应的TPR和FPR。常常将得到的各个样本值对应的预测值作为阈值,并计算对应的TPR和FPR。之后将得到的各点与(0,0)和(1,1)相连,则得到了ROC曲线。之后,计算ROC曲线下的面积则有AUC值。

    1.3.关于AUC值

    ​ AUC值在[0.5,1]中,0.5代表模型并无分类效果。若小于0.5则表示还不如随机猜测,但是此时如若反向预测,则得到的模型优于随机猜测。AUC值越高越好。

    ​ 此外,AUC值相比于准确率这一指标好的优势在于对数据不平衡的数据集构建的模型有更好的评价意义。

    ​ 例:在反欺诈场景中,0占99.9%,1占0.1%。若此时有个模型将样本全预测为0,则准确率为99.9%。虽然看起来拥有很高的准确率,但全预测为0无异于瞎猜,这样的模型并没有实际的区分能力。而当我们计算这个模型的AUC值时,就会发现,该模型的AUC值为0.5,表示并没有分类能力。这就是AUC的优势😉

    2.KS评价指标

    ​ 通过衡量好坏样本的累计分布的差值来评估模型的风险区分能力。

    ​ 定义: K S = M A X ( T P R − F P R ) KS=MAX(TPR-FPR) KS=MAX(TPRFPR)

    ​ KS与AUC均使用TPR、FPR两个指标,区别在于:

    • KS取的是TPR与FPR的差的max,可通过此找到最优阈值;

    • AUC评价的是模型整体的效果,并没给出好的切分阈值。

      得到KS曲线如下图所示:
      KS曲线
      前期TPR提升越快,模型效果越好。

      KS取值范围模型效果
      KS<0.2无区分能力
      0.2≤KS<0.3模型具有一定区分能力,勉强可以接受
      0.3≤KS<0.5模型有较强区分能力
      0.5≤KS<0.75模型具有很强区分能力
      0.75≤KS模型可能有异常(效果太好,以至于可能有问题)

    3.洛伦兹曲线

    ​ 曲线纵轴:违约数占违约总量百分比的累计值,即TPR。

    ​ 曲线横轴:被拒绝申请的百分比, F P + T P F P + T N + F N + T P \frac{FP+TP}{FP+TN+FN+TP} FP+TN+FN+TPFP+TP。可理解为选择的阈值。

    ​ 画出来的可能的图为:
    洛伦兹曲线1或者洛伦兹曲线2
    ​ 当情况中坏样本很少时,即TP与FN均较小时,有下式:

    F P + T P F P + T N + F N + T P ≈ F P F P + T N \frac{FP+TP}{FP+TN+FN+TP}\approx\frac{FP}{FP+TN} FP+TN+FN+TPFP+TPFP+TNFP,右边即为FPR

    ​ 此时,洛伦兹曲线与ROC曲线基本一致。

    4.Gini系数

    ​ 衡量坏账户数在好账户数上的累积分布与随机分布曲线之间的面积。

    ​ 定义:绝对公平线(y=x)与洛伦兹曲线围成的面积与绝对公平线以下面积的比例。

    ​ 若为上方的左图情况,则对应的 G i n i = A A + B Gini=\frac{A}{A+B} Gini=A+BA

    ​ 若为上方的右图情况,则对应的 G i n i = A C = A A + B Gini=\frac{A}{C}=\frac{A}{A+B} Gini=CA=A+BA

    当洛伦兹曲线与ROC曲线重合或近似一致时,此时画出来的图类似于上方右图,

    ​ 有 G i n i = A A + B = A U C − C 0.5 = A U C − 0.5 0.5 Gini=\frac{A}{A+B}=\frac{AUC-C}{0.5}=\frac{AUC-0.5}{0.5} Gini=A+BA=0.5AUCC=0.5AUC0.5

    ⇒ G i n i = 2 ∗ A U C − 1 \Rightarrow Gini=2*AUC-1 Gini=2AUC1

    ​ 需要注意的是,此时洛伦兹曲线与ROC曲线重合或者近似一致时才成立。若因实际情况中坏样本较多,导致洛伦兹曲线与ROC曲线并不近似,则需按上方所述定义计算Gini系数。

    5.Lift曲线和Gain曲线

    5.1.Lift曲线

    ​ Lift曲线表示的是相较于不利用模型时模型的提升指数。衡量的是一个模型(或规则)对目标中“响应”的预测能力优于随机选择的倍数,以1为界线,大于1的Lift表示该模型或规则比随机选择捕捉了更多的“响应”。

    L i f t = T P T P + F P T P + F N T P + F P + F N + T N = T P T P + F P P P + N Lift=\frac{\frac{TP}{TP+FP}}{\frac{TP+FN}{TP+FP+FN+TN}}=\frac{\frac{TP}{TP+FP}}{\frac{P}{P+N}} Lift=TP+FP+FN+TNTP+FNTP+FPTP=P+NPTP+FPTP

    ​ 其中,分母表示的是不使用任何模型;分子则表示的是预测为正例的样本中的真实正例的比例。

    例如(此处是对上方求解lift的式子进行解释):

    ​ 若经验告诉我们10000个借款人中有1000个是逾期的,则我们向这10000个借款人借款的逾期率是10%。P / (P + N) = 10%。通过对这10000个借款人进行研究,建立模型进行分类,我们得到预计可能逾期的1000个借款人,TP + FP = 1000。但此时这1000个借款人中有300个是真的逾期了的,TP = 300,则此时的命中率TP / (TP + FP)为30%。

    ​ 此时,我们的提升值lift = 30% / 10% = 3,模型找到逾期人员的效果提升至原先(无模型)的三倍。

    再例如(此处是对参考资料[1]中通过贝叶斯推导得到的lift的式子进行解释):

    ​ 以信用评分卡模型的评分结果为例,通常会将打分后的样本按分数从低到高排序(这句与“预测为正例的样本从大到小排序”、“预测为负例的样本从小到大排序”含义相同),取10等分或20等分或 x 等分(有同分数对应多条观测的情况,所以各组观测数未必完全相等),并对组内观测数与坏样本数进行统计。

    ​ 用评分卡模型捕捉到的坏客户的占比,可由该组坏样本数除以总的坏样本数计算得出;而不使用此评分卡,以随机选择的方法覆盖到的坏客户占比,等价于该组观测数占总观测数的比例。对两者取累计值,取其比值,则得到提升度Lift,即该评分卡抓取坏客户的能力是随机选择的多少倍。

    ​ 下表是一个提升表(Lift Table)的示例(对应上方的第二个例如):

    Lift表

    ​ 注意lift是由倒数第三列 / 倒数第二列得到,原因是在每个十分位数描点时,对于lift来说,需要计算的是小于等于这个十分位数时的情况。

    ​ 比如第一行,此时将0.1作为随机判断的阈值,则对于随机判断,判断得到坏样本的比例则为10%,对于模型,则判断得到坏样本的比例占比为20 / 55 = 36%;

    ​ 对于第二行,此时将0.2作为随机判断的阈值,则对于随机判断,判断得到坏样本的比例则为20%,对于模型,则判断得到坏样本的比例占比为(20 + 10) / 55 = 54%,以此类推。

    ​ 以分数段(此处为各个十分位数)为横轴,以提升度为纵轴,可绘制出提升图,示例如下:

    lift曲线

    ​ Lift曲线图,当在很高的提升值上保持一段后,迅速下降至1时,表示模型较好。(为什么呢?)

    ​ (我觉得是这样的。以上方所述信用评分卡模型(假设评分卡得分为300-900)代入,这种情况表明,在前一部分(用户信用评分较低时,比如300-550)时,提升值较高则表示模型比之于无模型的时候有更好的效果。而如若一旦过了某个点(比如600),迅速下降到1,则表明该阈值下有无模型差别不大了。因此当模型有这种情况时,模型较好。优点总结为:

    • 迅速下降的位置可以指导我们选择作为是否放贷的标准;
    • 在信用评分较低的区间这一段保持较高的提升值,说明,在信用评分较低的区间,模型能够比无模型更能找出不良用户,且提升值还不错。)

    5.2.Gain曲线

    ​ Gain曲线是整体精准度的指标。

    G a i n = T P T P + F P Gain=\frac{TP}{TP+FP} Gain=TP+FPTP

    ​ 根据预测为正例的样本从大到小排序,依次选取截断点,计算Gain后绘图。(横轴为阈值)绘制出来的曲线图如下所示:

    Gain曲线

    ​ Gain曲线图,当蓝线快速上升至1时,表示模型较好。

    6.总结

    ​ 各个指标的总结如下所示:
    总结

    7.参考资料

    [1] https://www.cnblogs.com/dataxon/p/12538524.html#gainlift-chart

    [2] https://www.jianshu.com/p/ff0eb70d31ec

    [3] https://blog.csdn.net/Orange_Spotty_Cat/article/details/82425113

    以上只是自己查阅网上资料所作的学习总结,如若有说得不好的地方,也欢迎留言友善讨论。谢谢😉

    展开全文
  • Lift曲线 GAIN曲线 混淆矩阵 混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。其中矩阵的行表示真实值,矩阵的列...
  •  参加工作后,对分类模型性能评价有了进一步的认识,所以我来试着更新一下理解。...首先,ROC曲线是tpr与fpr的相关关系可视化,这种衡量所考虑的目的是在尽量少的误诊(假阳性率)基础上,尽可能多地检验出阳性个
  • lift(提升度):类似提纯 lift越高,模型提纯效果越好 区分有监督和无监督算法是看对训练数据是否打标签 决策树可以分为分类树和回归树 分类树:因变量是离散的为分类树 回归树:因变量是连续的为回归树 多分类问题...
  • 针对不同的问题与目的,我们通常采用ROC曲线与lift曲线作为评价logistic回归模型的指标。   一、ROC曲线 正因为我们比较关注正例的情形,所以设置了两个相应的指标:TPR与FPR。 TPR:True Positive ...
  • 关于AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线。在别人的博客里看到下面的一个小故事: 故事是这样的(向善于总结的大佬致敬): ​ 首先,混淆矩阵是个元老,年龄最大也资历最老。创建了两个...
  • 提升lift函数

    2018-03-03 11:27:50
    根据评分卡的评分结果分组计算lift,可以调用后绘制lift曲线
  • ROC曲线与AUC以及LIFT

    千次阅读 2017-06-02 09:43:13
    ROC曲线 对于0,1两类分类问题,一些分类器得到的结果往往不是0,1这样的标签,如神经网络,得到诸如0.5,0,8这样的分类结果。这时,我们人为取一个阈值,比如0.4,那么小于0.4的为0类,大于等于0.4的为1类,可以得到一个分类...
  • 如何看ROC,LIFT,PR,KS曲线

    万次阅读 2020-09-10 15:14:44
    1.ROC曲线 ROC(receiver operating characteristic)接受者操作特征,其显示的是分类器的真正率和假正率之间的关系 ROC曲线有助于比较不同分类器的相对性能,当FPR小于0.36时M1浩宇M2,而大于0.36是M2较好。 ROC...
  • 分类评估指标之家族成员:ROC、AUC、Lift、Gain、Gini、KS、PR曲线、F1、洛伦兹曲线.pdf
  • 蓝线是我正常模型的lift曲线,红线是根据boss的描述画出来的,因为E(lift) = 1,所以红线后面只能越来越平缓,直线是我自己构造出来的,每个decile的lift是线性增加的,接下来就是怎么通过lift来
  • LIFT 论文详解

    千次阅读 2019-02-16 23:55:22
    LIFT 本文提供了相应的theano 和 tensorflow,论文是比较早期的探索利用CNN的方法去学习特征的工作,而且该组是瑞士联邦理工学院的 cvlab,之前也做过很多 deep feature 和 三维视觉相关的研究,该工作很值得研究...
  • Lift图衡量的是,与不利用模型相比,模型的预测能力“变好”了多少,lift(提升指数)越大,模型的运行效果越好。 Gain图是描述整体精准度的指标。 计算公式如下:       作图步骤: 1. 根据学习器的预测结果...
  • 【模型指标】LIFT提升图

    千次阅读 2019-04-28 18:11:57
    信用模型中的LIFT 在模型评估中,我们常用到增益/提升(Gain/Lift)图来评估模型效果,其中的Lift是“运用该模型”和“未运用该模型”所得结果的比值。以信用评分卡模型的评分结果为例,我们通常会将打分后的样本按...
  • 升图(Lift Chart) (转载自http://technet.microsoft.com/zh-cn/library/ms175428.aspx,纯粹为学习而整理,转载请标明出处) 在数据挖掘设计器的“挖掘准确性图表”选项卡的“提升图”选项卡上,根据您...
  • Lift提升度的计算逻辑是:在模型中算出来每个评分等级的分数,之后便将将打分后的样本按分数从低到高排序,取10或20等分,并将坏样本数与组内观察数作商,最后再将该值比各个自然分组与整体样本数的比值,这便是lift...
  • 提升度,提升表和提升图 lift chart

    千次阅读 2019-10-31 16:56:40
    Lift, Lift Table, and Lift Chart 提升指数、提升表和提升图(草稿) 胡江堂,北京大学软件与微电子学院 2006-11-5 1. 什么是Lift? I) Lift(提升指数)是评估一个预测模型是否有效的一个度量;这个比值由...
  • ROC曲线

    千次阅读 2014-10-03 21:02:44
    ROC(ReceiverOperating Characteristics Curve,指受试者工作特征曲线 / 接收器操作特性曲线),在评估和比较二分类模型(结果通常标记为Positive或Negative)的性能时非常有用,它是一个二维的曲线,Y轴用...
  • R语言数据挖掘-模型评估篇

    千人学习 2018-06-27 18:05:32
    本课程 详细介绍了模型评估常用技术手段:混淆矩阵、ROC曲线、KS曲线、LIFT曲线,并通过自定义函数 实现各种曲线绘制方法。还介绍了等频分箱在企业中应用的价值。
  • 信用卡评分笔记

    2017-08-22 21:07:03
    信用卡评分语言: R语言 python 信用卡评分模型: ROC曲线 lift曲线 lorenz曲线 logistic回归 ROC IV WOE gini KS lift
  • 相机gain lift gamma offset参数意义

    千次阅读 2019-01-21 18:42:33
    曾经被 gain lift gamma offset困住过,今天我终于知道答案了!  第一,gain:增益  针对亮部曝光区域,越亮的灰阶,受影响的程度就会越大,增益效应就是乘法计算(不同的数值乘以同一个数,数值越大的,乘完的...
  • 对于分类模型,常用的指标有混淆矩阵、ROC曲线,AUC值,KS曲线以及KS值、Lift图,Gain图等,查阅了很多的资料,加入自己的理解整理了一下他们的计算方法和意义,希望对大家有帮助。1. 混淆矩阵---确定截断点后,评价...
  • 分类器性能评估之Lift和Gain(3)

    千次阅读 2016-05-06 20:52:47
    跟ROC类似,Lift(提升)和Gain(增益)也一样能简单地从以前的Confusion Matrix以及Sensitivity、Specificity等信息中推导而来,也有跟一个baseline model的比较,然后也是很容易画出来,很容易解释。以下先修知识...
  • 分类模型的性能评估——Lift和Gain

    千次阅读 2010-10-27 21:02:00
    跟ROC类似,Lift(提升)和Gain(增益)也一样能简单地从以前的Confusion Matrix以及Sensitivity、Specificity等信息中推导而来,也有跟一个baseline model的比较,然后也是很容易画出来,很容易解释。以下先修知识...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 934
精华内容 373
关键字:

lift曲线