Gini和AUC的关系(Gini=2AUC-1真的成立吗?)
在做信用评分卡研究时,除了用KS/AUC指标,还经常见到基尼系数(gini coefficient)。
gini系数通常被用来判断收入分配公平程度。
图.洛伦茨曲线与基尼系数
Gini coefficient 是指绝对公平线(line of equality)和洛伦茨曲线(Lorenz Curve)围成的面积与绝对公平线以下面积的比例,即gini coefficient = A面积 / (A面积+B面积) 。
但是,业界在实际计算Gini系数时往往用ROC曲线曲线和中线围成的面积与中线之上面积的比例,也就是Gini=2AUC-1。
图.Gini coefficient与AUC
也就是说用ROC曲线去计算Gini的前提是ROC曲线和Gini曲线时重合的,因此Gini coefficient与AUC可以互相转换:
gini = A / (A + B) = (AUC - C) / (A + B) = (AUC -0.5) / 0.5 = 2*AUC - 1
那问题来了,ROC曲线与Gini的洛伦兹曲线到底是不是重合的呢?
根据《信用风险评分卡研究》这本书中所说公式Gini=2AUC-1“只有在将ROC曲线解释为洛伦兹曲线时才成立”,而且“二者并不相同”。
下面仔细看下ROC曲线和洛伦兹曲线的异同点。
ROC空间是一个以伪阳性率(FPR, false positive rate)为X轴,真阳性率(TPR, true positive rate)为Y轴的二维坐标系所代表平面。
- TPR: 真阳性率,所有阳性样本中(TP+FN),被分类器正确判断为阳的比例。
TPR = TP / (TP + FN) = TP / 所有真实值为阳性的样本个数 - FPR: 伪阳性率,所有阴性样本中(FP+TN),被分类器错误判断为阳的比例。
FPR = FP / (FP + TN) = FP / 所有真实值为阴性的样本个数
洛伦兹曲线的纵轴是违约数占违约总量百分比的累计值,也就是TPR,而洛伦兹的横轴(被拒绝申请的百分比)是(FP+TP)/(TN+FP+FN+TP),当坏样本很少时,FN和TP的值很小,因而洛伦兹曲线和ROC曲线横纵轴取值基本一致,曲线基本重合。但当坏样本较多时,二者不重合,且差距较大。
最后的结论是:当样本中坏样本极少时可用gini=2AUC-1近似计算,当坏样本较多,或者好坏样本接近1:1时,那就得对gini单独计算比较准确。
最后是关于Gini值的计算:
(1) 用公式gini=2AUC-1
from sklearn import metrics
auc_roc_score = metrics.roc_auc_score(target_label, predict_probabilty)
gini_by_roc_score = 2 * auc_roc_score - 1
(2) Gini的python直接计算可用下面文章中的代码:
https://blog.csdn.net/u010665216/article/details/78528261
def gini(actual, pred):
assert (len(actual) == len(pred))
all = np.asarray(np.c_[actual, pred, np.arange(len(actual))], dtype=np.float)
all = all[np.lexsort((all[:, 2], -1 * all[:, 1]))]
totalLosses = all[:, 0].sum()
giniSum = all[:, 0].cumsum().sum() / totalLosses
giniSum -= (len(actual) + 1) / 2.
return giniSum / len(actual)
def gini_normalized(actual, pred):
return gini(actual, pred) / gini(actual, actual)
gini_predictions = gini(actual, predictions)
ngini= gini_normalized(actual, predictions)
Gini和AUC的关系(Gini=2AUC-1真的成立吗?)相关推荐
- 分类模型的ROC曲线、AUC值、GINI系数、Lift、Gain、KS指标分别是什么?计算公式是什么?有什么意义?
分类模型的ROC曲线.AUC值.GINI系数.Lift.Gain.KS指标分别是什么?计算公式是什么?有什么意义? 目录
- 基尼系数,累积准确度分布,AUC
在本文中,我们介绍了如何计算预测模型的基尼系数.累积准确度分布 (CAP) 和曲线下面积 (AUC).这篇文章的目的就是用通俗的语言解释这些概念,让外行人能够理解其背后的数学原理. 这些方法测量预测模 ...
- python稳健性检验_风控模型6大核心指标(附代码)
欢迎各位同学学习python金融风控评分卡模型和数据分析微专业课 在我们开发完信用分模型后,经常需要计算如下的一些指标:● 区分度的指标:○ AUC○ KS○ ...
- Gini指数、Gini系数、Gini不纯是一回事吗?
决策树算法CART中用的是哪一个? 用的是Gini impurity,也就是基尼不纯. Gini impuirty是什么? 假设这个数据集里有kk种不同标签,第ii个标签所占的比重为pipi,那么Gi ...
- ID3/C4.5/Gini Index
<?xml version="1.0" encoding="utf-8"?> ID3/C4.5/Gini Index ID3/C4.5/Gini I ...
- Data Minig --- Decision Tree ID3 C4.5 Gini Index
一.决策树学习(适用于"属性-值"实例且输出值离散) 决策树学习是一种逼近离散值目标函数的方法,这个方法学到的函数称为一棵决策树.学到的决策树可表示为多个if-then过程以提高可 ...
- 熵(Entropy)、信息熵增益、信息熵增率和基尼(Gini)指数
文章中的这些概念为衡量特征(属性)选择的方法,特征选择在于选取对训练数据具有分类能力的特征,提高决策树学习的效率,特征选择是决定用哪个特征来划分特征空间. 文章目录 信息熵(information e ...
- Gini coefficient直观的解释与实现
引言 大家在机器学习中经常会看到基尼系数的词汇,有时候在做比赛的时候,有些赛题的Scoring Metric就是基尼系数.我们去Google或者Baidu,得到的都是些不甚满意的经济学相关的解释.那么 ...
- 论文浅尝 - ACL2020 | 用于关系三元组抽取的级联二进制标记框架
论文笔记整理:王中昊,天津大学. 来源:ACL2020 链接:https://arxiv.org/pdf/1909.03227.pdf 摘要 从非结构化文本中提取关系三元组是构建大规模知识图的关键.然 ...
- 论文浅尝 | 基于平行新闻的Bootstrapping关系抽取
笔记整理:吴锐,东南大学大四本科生,研究方向为自然语言处理. Citation:Michael Glass, K. B. . (2012). Bootstrapping relation extrac ...
最新文章
- MFC第三节-多线程
- VS2010 error RC2170: bitmap file xxx.png is not in 3.00 format
- robot framework环境搭建(转)
- 绘制彩虹html代码,HTML5 Canvas 彩虹螺旋图生成器
- 第十三章 对文本进行排序、单一和重复操作:sort命令、uniq命令
- 8X53 VS 6763
- ACM学习历程—HDU5396 Expression(递推 计数)
- 【转】一致性hash算法与server列表维护
- TwinCAT 3 安全门程序
- 苹果自带的清理软件_苹果电脑清理软件哪个好?对比CleanMyMac和腾讯柠檬清理软件...
- 关于程序员的教育和培训
- ads滤波器仿真(3)——三阶发夹线带通滤波器及其优化
- USB3.0:VL817Q7-C0的LAYOUT指南(三)
- 跳舞毯 [HDU2154]
- Rational License Key Error的解决办法
- Theil-Sen Median斜率估计和Mann-Kendall趋势分析:以多年NPP数据为例
- 测试策略与测试计划,有什么区别?
- 网线品质差的三大影响
- P R MAP简单理解,yolo中
- selenium登录 爬取淘宝商品信息
热门文章
- 【小程序】用canvas 实现一个简易的移动端名片可编辑小程序
- Error in driver during machine creation: Machine didn‘t return an IP after 120 seconds, aborting
- 汇编——Masm使用及程序结构
- 服务器文件安全扫描,服务器安全扫描工具
- Ios 公司申请苹果账号
- 对于Linux内核tty设备的一点理解 【转】
- 移动机器人c语言程序设计,机器人辅助C程序设计
- 微信小程序秀才成语接龙趣味答题小游戏带流量主源码
- Day4-STM32的中断与通信——百问网7天物联网智能家居
- 记一次android设备通过tun0网络连接上级国标平台问题