模型评价指标总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型评价指标总结相关的知识,希望对你有一定的参考价值。

参考技术A 1、分类准确度

定义:分类准确度(accuracy),指在分类模型中,模型的输出分类结果与真实结果一致的样本占总分类样本的比例。

优缺点:其容易理解,但致命缺点是对于极度偏斜的数据,使用分类准确度是不科学不全面的。如癌症产生的概率时0.1%,那如果不用任何机器学习的算法,只要系统将所有人都预测为健康,那么即可达到99.9%的准确率。这显然是不科学的。

2、精准率和召回率

精准率和召回率又可分别称为查准率和查全率,即平常所说的precision和recall。想要弄清楚这两个指标的计算方法,首先需要对混淆矩阵有个清晰的认识。

(1)混淆矩阵

混淆矩阵是一个2*2的矩阵形式的表格,其行为真实标签分布,列为预测标签分布。如下:

其中,第一行为真实值为P,第二行为真实值为N。第一列为预测值为P,第二列为预测值为N。设矩阵为M,则M11为真实值为p且预测值为P,M12为真实值为p但预测值为N,M21为真实是为N但预测值为P,M22为真实值为N且预测值为N。

(2)精准率(precision)

precision=TP/(TP+FP)。含义为所有预测为positive的样本中真正为positive的样本数所占比例。即预测为P,且预测对了的比例。通常含义上,精准率为我们关注的事件预测得有多准。

(3)召回率(recall)

recall=TP/(TP+FN)。含义为所有实际为positive的样本中预测对了的样本数所占比例。即真实值为P,且预测对了的比例。通常含以上,召回率为我们关注的事件真正预测成功的比例为多少。

3、综合评价指标

精准率和召回率是两个矛盾的指标,一个高时,另一个就偏低。因此,需要一个综合性的指标来对模型性能进行评估。

(1)F值

F值precision和recall的调和平均数,使用调和平均数时,假设两者一样重要,称为F1-score。

F1-score=(2recall*precision)/(recall+precision)

(2)P-R曲线(Precision-Recall Curve)

以precision为纵轴,以recall为横轴,取不同的分类阈值,在此基础上画出来的一条曲线就叫做PR曲线。PR曲线越接近右上角(precision=1,recall=1),代表模型越好。一般而言,比较P-R曲线下面积的大小,可在一定程度上表征模型在查准率和查全率上取得相对“双高”的比例,但该值不太容易计算。因此,其他相对容易计算的性能度量被提出。

(2)ROC曲线(Receiver Operating Characteristic Curve)

ROC曲线,全称“受试者工作特征”曲线,以“真正率”为y轴,以“假正率”为x轴,取不同的分类阈值,在此基础上画出来的一条曲线就叫做ROC曲线。ROC曲线越接近左上角(true positive rate=1,false positive rate=0),代表模型性能越好。同P-R曲线一样,一般通过ROC曲线下的面积(auc)来判断模型的好坏。AUC越大,代表模型性能越好,若AUC=0.5,即ROC曲线与45度角线重合,表示模型的区分能力与随机猜测没有差别。

4、回归模型的评价指标

1、均方误差MSE

2、均方根误差RMSE

3、平均绝对误差MAE

4、R Square

均方根误差和平均绝对误差依据数据本身的量纲,不同的模型不具有可比性,没有分类准确率这样统一在0-1之间取值的性质。因此,出现了R square统计量。

R square优点:

(1)对于分子来说,预测值和真实值之差的平方和,即使用我们的模型预测产生的错误。

(2)对于分母来说,是均值和真实值之差的平方和,即认为“预测值=样本均值”这个模型(Baseline Model)所产生的错误。

(3)我们使用Baseline模型产生的错误较多,我们使用自己的模型错误较少。因此用1减去较少的错误除以较多的错误,实际上是衡量了我们的模型拟合住数据的地方,即没有产生错误的相应指标。

R square结论:

(1)R square<=1

(2)R square越大越好,越大说明减少的分子小,错误率低。其最大值为1。

(3)当我们的模型等于基准模型时,R square = 0

(4)如果R square<0,说明我们学习到的模型还不如基准模型。此时,很可能我们的数据不存在任何线性关系。

聚类模型性能评价指标

有监督的分类算法的评价指标通常是accuracy, precision, recall, etc;由于聚类算法是无监督的学习算法,评价指标则没有那么简单了。因为聚类算法得到的类别实际上不能说明任何问题,除非这些类别的分布和样本的真实类别分布相似,或者聚类的结果满足某种假设,即同一类别中样本间的相似性高于不同类别间样本的相似性。聚类模型的评价指标如下:

1. Adjusted Rand Index(兰德指数):

若已知样本的真实类别标签labels_true ,和聚类算法得到的标签labels_pred,ARI是计算两种标签分布相似性的函数,该函数对标签的定义形式没有要求。scikit-learn中的示例代码如下:

1 from sklearn import metrics
2 labels_true = [0, 0, 0, 1, 1, 1]
3 labels_pred = [0, 0, 1, 1, 2, 2]
4 metrics.adjusted_rand_score(labels_true, labels_pred)
1 metrics.adjusted_rand_score(labels_pred, labels_true)
adjusted_rand_score方法的输入参数没有顺序要求,上面两种结果是完全一样的。
最好的聚类结果是聚类类别和真实类别的分布完全一致,如下代码,结果为1
1 labels_pred = labels_true[:]
2 metrics.adjusted_rand_score(labels_true, labels_pred)

较差的聚类结果会得到负的或者接近0的兰德指数,如下代码

1 labels_true = [0, 1, 2, 0, 3, 4, 5, 1]
2 labels_pred = [1, 1, 0, 0, 2, 2, 2, 2]
3 metrics.adjusted_rand_score(labels_true, labels_pred)

结果为 -0.12

ARI的优点:

  • 随机均匀的标签分布的ARI值接近0,这点与raw Rand Index和 V-measure指标不同;
  •  ARI值的范围是[-1,1],负的结果都是较差的,说明标签是独立分布的,相似分布的ARI结果是正的,1是最佳结果,说明两种标签的分布完全一致;
  •  不用对聚类结果做任何假设,可以用来比较任意聚类算法的聚类结果间的相似性。

ARI的缺点:

ARI指标需要事先知道样本的真实标签,这和有监督学习的先决条件是一样的。然而ARI也可以作为一个通用的指标,用来评估不同的聚类模型的性能。

数学公式:

 如果C是真实类别,K是聚类结果,我们定义a和b分别是:
a: 在C和K中都是同一类别的样本对数

b: 在C和K中都是不同类别的样本对数

raw Rand Index 的公式如下:

 

C2nsamples  是样本所有的可能组合对.

RI不能保证在类别标签是随机分配的情况下,其值接近0(极端情况是类别数和样本数相等)

为了解决这个问题,ARI被提出,它具有更高的区分度.

 

参考:

 http://scikit-learn.org/stable/modules/clustering.html#clustering-performance-evaluation

http://blog.csdn.net/sinat_33363493/article/details/52496011

https://en.wikipedia.org/wiki/Rand_index

https://stats.stackexchange.com/questions/89030/rand-index-calculation

以上是关于模型评价指标总结的主要内容,如果未能解决你的问题,请参考以下文章

总结-模型评价指标的定义(基于CatBoost文档)

总结-模型评价指标的定义(基于CatBoost文档)

总结-模型评价指标的定义(基于CatBoost文档)

模型评价指标(CTR)

详解目标检测模型的评价指标及代码实现

模型中评价指标过多会怎么样