Gini和AUC的关系(Gini=2AUC-1真的成立吗?)

news/2024/12/23 6:38:23/

在做信用评分卡研究时,除了用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)
 

 

 

 

 

 


http://www.ppmy.cn/news/772452.html

相关文章

KS值和GINI系数

有效性指标中的区分能力指标: KS(Kolmogorov-Smirnov):KS用于模型风险区分能力进行评估, 指标衡量的是好坏样本累计分部之间的差值。 好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。 KS的计算步骤…

Dagum Gini Decomposition,Dagum基尼系数分解的python实例

背景 基尼系数(Gini index or Gini Coefficient),是国际上通用的、用以衡量一个国家内或地区内总体居民收入差距的常用指标之一。 但是其全局性的特征也意味着缺少了局部的收入(或发展等)的相对区域化的信息。在97年…

决策树Gini系数计算过程详细解答

最近看了篇文章,关于决策树的基尼系数计算过程,很详细,也很完整; 文章出处:https://sefiks.com/2018/08/27/a-step-by-step-cart-decision-tree-example/ 收藏记录一下。 An algorithm can be transparent only if …

基尼指数 Gini Index

基尼系数(Gini index)反映的是从数据集D中随机选取两个样本,其类别标记不一致的概率。因此,基尼系数越小,数据纯度越高。 G i n i ( D ) 1 − ∑ k 1 ∣ γ ∣ p k 2 . Gini(D)1-\sum_{k1}^{|\gamma|}{p_k^2}. Gini…

资料: GINA

vs6中msdn输入: GINA, 找到demo: Gina Sample: Graphical Identification and Authentication DLL http://msdn.microsoft.com/en-us/magazine/cc163489.aspx Create Custom Login Experiences With Credential Providers For Windows Vista

GINI Index-基尼指数

给定节点t: 这里的Pi(t) 是 类i的概率,c是所有类的总数。 最大值:1-1/c 当每个记录平分时,是收益最小的分类最小值:0 当所有记录都是属于同一个类时,是最大收益 下面给出一个例子方便理解: 计…

Gini index世界各国基尼系数(1960-2022)

Gini index世界各国基尼系数(1960-2022) 1990年以前数据缺失较多,1990-2020年数据较为完整,2021、2022数据部分缺失 本数据集包含200多个国家/地区的基尼系数面板数据。 数据来源于世界银行 相关指标:Gini index

Gini指数、Gini系数、Gini不纯是一回事吗?

决策树算法CART中用的是哪一个? 用的是Gini impurity,也就是基尼不纯。 Gini impuirty是什么? 假设这个数据集里有kk种不同标签,第ii个标签所占的比重为pipi,那么Gini impurity为 1−∑i1kp2i,1−∑i1kpi2, 它描述了…