二类分类问题评价指标

1. 准确率

评价分类问题的性能的指标一般是分类准确率,其定义是对于给定的数据,分类正确的样本数占总样本数的比例。但是这一指标在Unbalanced的数据上表现很差。比如说我的样本有990个正样本,10个负样本,我直接把所有样本都预测为正,我的准确率为99%,居然有这么高得准确率,但我的分类方法实际是非常不具有说服力的。

2. 精确率和召回率

对于二分类问题常用的评价指标是精确率和召回率。通常以关注的类为正类,其他类为负类,分类器在数据集上的预测或者正确或者不正确,我们有4中情况,在混淆矩阵中表示如下:

精确率 :P = TP / (TP + FP)

召回率: R = TP / (TP + FN)

F1: 精确率和召回率的调和平均。 即: 2/F1 = 1/P + 1/R

直观上来解释精确率和召回率。

精确率表示我现在有了这么的预测为正的样本,那么这些样本中有多少是真的为正呢?

召回率表示我现在预测为正的这些值中,占了所有的正的为正的样本的多大比例呢?

不同的分类问题,对精确率和召回率的要求也不同。

例如:假币预测,就需要很高的精确率,我需要你给我的预测数据具有很高的准确性。

肿瘤预测就需要很高的召回率。“宁可错杀三千,不可放过一个”。

3. ROC和AUC   [^1]

TPR = TP / (TP + FN)

FPR = FP / (FP + TN)

我们使用FPR作为横坐标,TPR作为纵坐标得到ROC曲线如下:

接下来主要考察ROC曲线中的四个点和一条线:

为了方便分析,横纵坐标再写于此处:

FPR = FP / (FP + TN)    TPR = TP / (TP + FN)

(0,1): FN = 0, FP = 0, 表示所有样本都正确分类,这是一个完美的分类器;

(1,0):TN = 0, TP = 0, 表示所有样本都分类错误,这是一个最糟糕的分类器;

(0, 0): FP = 0, TP = 0, 表示所有样本都分类为负

(1,1): TN = 0, FN = 0, 表示左右样本都分类为正

经过以上分析,我们可以断言,ROC曲线越靠近左上角,该分类器的性能越好。

下面考虑上图虚线与 y = x,该对角线实际上表示一个随机猜测的分类器的结果。

如何画ROC曲线呢?我们回想我们的数据时什么样子的,在二分类问题中,我们最终得到的数据时对每一个样本,估计其为正的概率值。现在我们根据每个样本为正的概率大小从大到小进行排序,下图是一个示例,图

中共有20个测试样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。

接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为

0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一

来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果如下图:

AUC:ROC曲线下的面积,引入AUC的原因是量化评价指标。

AUC面积越大,分类效果越好。AUC小于1,另一方面,正常的分类器你应该比随机猜测效果要好吧?所以 0.5 <= AUC <= 1

之前一直不理解一句话:AUC表征了分类器把正样本排在负样本前边的能力。这里的意思其实是指数据按照其为正的概率从大到小排序之后,正样本排在负样本前边的能力。AUC越大,就有越多的正样本排在负样本前边。极端来看,如果ROC的(0, 1)点,所有的正样本都排在负样本的前边。

4. ROC 与 P, R对比

ROC曲线特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。

(在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。)

下图是ROC曲线和Precision-Recall曲线的对比:

a,c为ROC曲线,b,d为P-R曲线;

a,b 为在原始测试集(balanced)上的结果,c,d为把原始数据集的负样本增加10倍后的结果。很明显,ROC曲线基本保持不变,P-R曲线变化较大。

 

另外,为什么取AUC较好?因为一个二分类问题,如果你取P或R的话,那么你的评价结果和你阈值的选取关系很大,但是我这个一个分类器定了,我希望评价指标是和你取得阈值无关的,也就是需要做与阈值无关的处理。所以AUC较P R好。


本文来自http://www.cnblogs.com/futurehau/p/6109772.html

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pyspark是Apache Spark的一个Python接口,它在大规模数据处理广泛用于机器学习。对于二分类模型评价指标,主要有以下几个: 1. **准确率(Accuracy)**:预测确的样本数占总样本数的比例,是最直观的评估指标。公式为:(TP + TN) / (TP + TN + FP + FN),其TP(True Positive)表示真例,TN(True Negative)表示真例,FP(False Positive)表示假例,FN(False Negative)表示假例。 2. **精确率(Precision)**:模型预测为例且实际为例的比例,衡量的是模型在预测为类时的可靠性。公式为:TP / (TP + FP)。 3. **召回率(Recall)**:实际为例被模型确预测为例的比例,衡量的是模型找到所有例的能力。公式为:TP / (TP + FN)。 4. **F1分数(F1 Score)**:精确率和召回率的调和平均值,综合考虑了两个指标。公式为:2 * Precision * Recall / (Precision + Recall)。 5. **ROC曲线(Receiver Operating Characteristic Curve)**:绘制出真例率(TPR)与假例率(FPR)之间的关系,用来评估模型在不同阈值下的性能。 6. **AUC-ROC(Area Under the ROC Curve)**:ROC曲线下的面积,值越大说明模型性能越好,1代表完美分类。 7. **混淆矩阵(Confusion Matrix)**:展示模型预测结果与实际结果的对比,直观地看到分类效果。 8. **交叉验证得分(Cross-validation Score)**:通过将数据集划分为训练集和验证集多次,计算平均得分,避免过拟合或欠拟合的影响。 在选择指标时,需要根据具体业务场景和需求来决定,比如关注模型的准确性、误报率还是查全率等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值