目录
解决欠拟合的方法有哪些?https://zhuanlan.zhihu.com/p/97326991
https://www.zhihu.com/question/26485586
模型评估方法
Accuracy作为指标有哪些局限性?
-
分类准确率是指分类正确的样本占总样本个数的比例,即,意义为:被正确分类的样本个数占总体样本个数的比率。
-
准确率是分类问题中最简单最直观的评价指标,但存在明显的缺陷。比如负样本占99%时,分类器把所以样本都预测为负样本也可以获得99%的准确率。所以,当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素,此时准确率指标并不足以说明分类器的好坏。
-
对于此种问题,可以使用更为有效的平均准确率(每个类别下的样本准确率的算术平均)作为模型评估的指标。
ROC曲线是什么?
ROC(Receiver Operating Characteristic,接受者工作特征曲线)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣(可信度)。在这个ROC曲线的示例图中看到的那样,ROC曲线的横坐标为false positive rate(FPR,假阳性率),纵坐标为true positive rate(TPR,真阳性率)(也就是recall)。
考虑ROC曲线图中的四个点和一条线。
- 第一个点,(0,1),即FPR=0, TPR=1,这意味着FN(false negative)=0,并且FP(false positive)=0。这是一个完美的分类器,它将所有的样本都正确分类。
- 第二个点,(1,0),即FPR=1,TPR=0,这是一个最糟糕的分类器,避开了所有的正确答案。
- 第三个点,(0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。
- 第四个点(1,1),分类器实际上预测所有的样本都为正样本。
- 经过以上的分析,可以断言,ROC曲线越接近左上角,该分类器的性能越好。
- ROC曲线图中的虚线y=x上的点。这条对角线上的点其实表示的是一个采用随机猜测策略的分类器的结果(FP = TN, TP = FN,这样FP+TP = TN + FN,即Y = N,也就是随机猜测了),例如(0.5,0.5),表示该分类器随机对于一半的样本猜测其为正样本,另外一半的样本为负样本。
通过调整模型预测的阈值可以得到不同的点,将这些点可以连成一条曲线,这条曲线叫做接受者工作特征曲线(Receiver Operating Characteristic Curve,简称ROC曲线)。对于一个特定的分类器和测试数据集,显然只能得到一个分类结果,即一组FPR和TPR结果,而要得到一个曲线,需要一系列FPR和TPR的值,这又是如何得到的呢?
Wikipedia:
In signal detection theory, a receiver operating characteristic (ROC), or simply ROC curve, is a graphical plot which illustrates the performance of a binary classifier system as its discrimination threshold is varied.
分类器的一个重要功能“概率输出”,即表示分类器认为某个样本具有多大的概率属于正样本(或负样本)。通过更深入地了解各个分类器的内部机理,我们总能想办法得到一种概率输出。通常来说,是将一个实数范围通过某个变换映射到(0,1)区间3
ROC曲线是通过不断移动分类器的“截断点”来生成曲线上的一组关键点的。在二值分类问题中, 模型的输出一般都是预测样本为正例的概率。 假设测试集中多个样本, 经过分类器我们可以获得模型的输出结果,样本按照预测概率从高到低排序。 在输出最终的正例、 负例之前, 需要指定一个阈值, 预测概率大于该阈值的样本会被判为正例, 小于该阈值的样本则会被判为负例。 比如, 指定阈值为0.9, 那么只有大于、等于阈值的会被预测为正例, 其他全部都是负例。 上面所说的“截断点”指的就是区分正负预测结果的阈值。
通过动态地调整截断点, 从最高的得分开始(实际上是从正无穷开始, 对应着ROC曲线的零点) , 逐渐调整到最低得分, 每一个截断点都会对应一个FPR和TPR, 在ROC图上绘制出每个截断点对应的位置, 再连接所有点就得到最终的ROC曲线。当threshold取值越多,ROC曲线越平滑。
PR曲线是什么?
https://zhuanlan.zhihu.com/p/46714763
ROC曲线中,以FPR为x轴,TPR为y轴。FPR指实际负样本中被错误预测为正样本的概率。TPR指实际正样本中被预测正确的概率。
PR曲线中,以Recall(召回率)为x轴,Precision为y轴。Recall与TPR的意思相同,而Precision指正确分类的正样本数占总正样本的比例。
当处理一些高度不均衡的数据集时,PR曲线能表现出更多的信息,发现更多的问题。
相比P-R曲线, ROC曲线有一个特点, 当正负样本的分布发生变化时, ROC曲线的形状能够基本保持不变, 而P-R曲线的形状一般会发生较剧烈的变化。
可以看出, P-R曲线发生了明显的变化, 而ROC曲线形状基本不变。 这个特点让ROC曲线能够尽量降低不同测试集带来的干扰, 更加客观地衡量模型本身的性能。
在很多实际问题中, 正负样本数量往往很不均衡。 比如, 计算广告领域经常涉及转化率模型, 正样本的数量往往是负样本数量的1/1000甚至1/10000。 若选择不同的测试集, P-R曲线的变化就会非常大, 而ROC曲线则能够更加稳定地反映模型本身的好坏。 所以, ROC曲线的适用场景更多, 被广泛用于排序、 推荐、 广告等领域。
需要注意的是, 选择P-R曲线还是ROC曲线是因实际问题而异的, 如果希望更多地看到模型在特定数据集上的表现, P-R曲线则能够更直观地反映其性能。
AUC指标有什么特点?放缩结果对AUC是否有影响(无)?
AUC是现在分类模型,特别是二分类模型使用的主要离线评测指标之一。相比于准确率、召回率、F1等指标,AUC有一个独特的优势,就是不关注具体得分,只关注排序结果,这使得它特别适用于排序问题的效果评估,例如推荐排序的评估。AUC这个指标有两种解释方法,一种是传统的“曲线下面积”解释,另一种是关于排序能力的解释。例如0.7的AUC,其含义可以大概理解为:给定一个正样本和一个负样本,在70%的情况下,模型对正样本的打分高于对负样本的打分。可以看出在这个解释下,我们关心的只有正负样本之间的分数高低,而具体的分值则无关紧要。
AUC只关注模型预测得分的相对大小,非常适合排序业务,例如0.7的AUC,其含义可以大概理解为:给定一个正样本和一个负样本,在70%的情况下,模型对正样本的打分高于对负样本的打分。可以看出在这个解释下,我们关心的只有正负样本之间的分数高低,而具体的分值则无关紧要。
AUC(Area Under Curve)被定义为ROC曲线下的面积, 该值能够量化地反映基于ROC曲线衡量出的模型性能。 计算AUC值只需要沿着ROC横轴做积分。由于ROC曲线一般都处于y=x这条直线的上方(如果不是的话, 只要把模型预测的概率反转成1-p就可以得到一个更好的分类器),所以AUC的取值一般在0.5~1之间。 AUC越大, 说明分类器越可能把真正的正样本排在前面, 分类性能越好。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。
AUC代表随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。