图像处理-评价指标
来源:互联网 发布:mac os x 10.7.5软件 编辑:程序博客网 时间:2024/06/03 19:38
图像处理、深度学习评价指标
一、分类
1. 精确率与召回率
精确率与召回率多用于二分类问题。精确率(Precision)指的是模型判为正的所有样本中有多少是真正的正样本,即对于给定的测试数据集,分类器正确分类的样本数与总样本数之比;召回率(Recall)指的是所有正样本有多少被模型判为正样本,即召回。设模型输出的正样本集合为
有时候我们需要在精确率与召回率间进行权衡,一种选择是画出精确率-召回率曲线(Precision-Recall Curve),曲线下的面积被称为AP分数(Average precision score);另外一种选择是计算
当
2. ROC
设模型输出的正样本集合为
ROC曲线适用于二分类问题,以假正率为横坐标,真正率为纵坐标的曲线图,如:
AUC分数是曲线下的面积(Area under curve),越大意味着分类器效果越好。
3. 对数损失
对数损失(Log loss)亦被称为逻辑回归损失(Logistic regression loss)或交叉熵损失(Cross-entropy loss)。
对于二分类问题,设
可以很容易地将其扩展到多分类问题上。设
4. 铰链损失
铰链损失(Hinge loss)一般用来使“边缘最大化”(maximal margin)。
铰链损失最开始出现在二分类问题中,假设正样本被标记为1,负样本被标记为-1,
然后被扩展到多分类问题,假设
注意,二分类情况下的定义并不是多分类情况下定义的特例。
5. 混淆矩阵
混淆矩阵(Confusion Matrix)又被称为错误矩阵,通过它可以直观地观察到算法的效果。它的每一列是样本的预测分类,每一行是样本的真实分类(反过来也可以),顾名思义,它反映了分类结果的混淆程度。混淆矩阵
- kappa系数
kappa系数(Cohen’s kappa)用来衡量两种标注结果的吻合程度,标注指的是把N个样本标注为C个互斥类别。计算公式为
其中
是不是云里来雾里去的,现在举个栗子,对于50个测试样本的二分类问题,预测与真实分布情况如下表:
GROUND
1 0
PREDICT 1 20 5
0 10 15
预测与真实值相符共有20+15个,则观察到的符合比例为
7. 准确率
准确率(Accuracy)衡量的是分类正确的比例。设
其中
虽然准确率适用范围很广,可用于多分类以及多标签等问题上,但在多标签问题上很严格,在有些情况下区分度较差。
8. 海明距离
海明距离(Hamming Distance)用于需要对样本多个标签进行分类的场景。对于给定的样本
其中
我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况,当标签数量
9. 杰卡德相似系数
杰卡德相似系数( Jaccard similarity coefficients)也是用于需要对样本多个标签进行分类的场景。对于给定的样本
它与海明距离的不同之处在于分母。当预测结果与实际情况完全相符时,系数为1;当预测结果与实际情况完全不符时,系数为0;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。
我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况,当标签数量
10. 多标签排序
在这节我们介绍一些更精细化的多标签分类效果衡量工具。设真实标签分类情况为
10.1 涵盖误差
涵盖误差(Coverage error)计算的是预测结果中平均包含多少真实标签,适用于二分类问题。涵盖误差定义为:
其中
10.2 标签排序平均精度
标签排序平均精度(Label ranking average precision)简称LRAP,它比涵盖误差更精细:
其中
10.3 排序误差
排序误差(Ranking loss)进一步精细考虑排序情况:
其中
二、拟合
拟合问题比较简单,所用到的衡量指标也相对直观。假设
1. 平均绝对误差
平均绝对误差MAE(Mean Absolute Error)又被称为
2. 平均平方误差
平均平方误差MSE(Mean Squared Error)又被称为
3. 解释变异
解释变异( Explained variance)是根据误差的方差计算得到的:
4. 决定系数
决定系数(Coefficient of determination)又被称为
其中
三、聚类
1 . 兰德指数
兰德指数(Rand index)需要给定实际类别信息
其中
对于随机结果,RI并不能保证分数接近零。为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:
具体计算方式参见Adjusted Rand index。
ARI取值范围为
2. 互信息
互信息(Mutual Information)也是用来衡量两个数据分布的吻合程度。假设
其中
其中
与ARI类似,调整互信息(Adjusted mutual information)定义为:
利用基于互信息的方法来衡量聚类效果需要实际类别信息,MI与NMI取值范围为
3. 轮廓系数
轮廓系数(Silhouette coefficient)适用于实际类别信息未知的情况。对于单个样本,设
对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。
轮廓系数取值范围是
四、信息检索
信息检索评价是对信息检索系统性能(主要满足用户信息需求的能力)进行评估,与机器学习也有较大的相关性,感兴趣的可以参考这篇不错的博文。
四、总结
上面介绍了非常多的指标,实际应用中需要根据具体问题选择合适的衡量指标。那么具体工作中如何快速使用它们呢?优秀的Python机器学习开源项目Scikit-learn实现了上述绝指标的大多数,使用起来非常方便。
机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accuracy),精确率(Precision),召回率(Recall)和F1-Measure。(注: 相对来说,IR 的 ground truth 很多时候是一个 Ordered List, 而不是一个 Bool 类型的 Unordered Collection,在都找到的情况下,排在第三名还是第四名损失并不是很大,而排在第一名和第一百名,虽然都是“找到了”,但是意义是不一样的,因此 更多可能适用于 MAP 之类评估指标。)
本文将简单介绍其中几个概念。中文中这几个评价指标翻译各有不同,所以一般情况下推荐使用英文。
现在我先假定一个具体场景作为例子。
假如某个班级有男生80人,女生20人,共计100人.目标是找出所有女生.现在某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了.作为评估者的你需要来评估(evaluation)下他的工作
首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率[1].
这样说听起来有点抽象,简单说就是,前面的场景中,实际情况是那个班级有男的和女的两类,某人(也就是定义中所说的分类器)他又把班级中的人分为男女两类。accuracy需要得到的是此君分正确的人占总人数的比例。很容易,我们可以得到:他把其中70(20女+50男)人判定正确了,而总人数是100人,所以它的accuracy就是70 %(70 / 100).
由准确率,我们的确可以在一些场合,从某种意义上得到一个分类器是否有效,但它并不总是能有效的评价一个分类器的工作。举个例子,google抓取 了argcv 100个页面,而它索引中共有10,000,000个页面,随机抽一个页面,分类下,这是不是argcv的页面呢?如果以accuracy来判断我的工 作,那我会把所有的页面都判断为”不是argcv的页面”,因为我这样效率非常高(return false,一句话),而accuracy已经到了99.999%(9,999,900/10,000,000),完爆其它很多分类器辛辛苦苦算的值,而我这个算法显然不是需求期待的,那怎么解决呢?这就是precision,recall和f1-measure出场的时间了.
在说precision,recall和f1-measure之前,我们需要先需要定义TP,FN,FP,TN四种分类情况.
按照前面例子,我们需要从一个班级中的人中寻找所有女生,如果把这个任务当成一个分类器的话,那么女生就是我们需要的,而男生不是,所以我们称女生为”正类”,而男生为”负类”.
相关(Relevant),正类 无关(NonRelevant),负类
被检索到(Retrieved) true positives(TP 正类判定为正类,例子中就是正确的判定”这位是女生”) false positives(FP 负类判定为正类,”存伪”,例子中就是分明是男生却判断为女生,当下伪娘横行,这个错常有人犯)
未被检索到(Not Retrieved) false negatives(FN 正类判定为负类,”去真”,例子中就是,分明是女生,这哥们却判断为男生–梁山伯同学犯的错就是这个) true negatives(TN 负类判定为负类,也就是一个男生被判断为男生,像我这样的纯爷们一准儿就会在此处)
通过这张表,我们可以很容易得到这几个值:
TP=20
FP=30
FN=0
TN=50
精确率(precision)的公式是,它计算的是所有”正确被检索的item(TP)”占所有”实际被检索到的(TP+FP)”的比例.
在例子中就是希望知道此君得到的所有人中,正确的人(也就是女生)占有的比例.所以其precision也就是40%(20女生/(20女生+30误判为女生的男生)).
召回率(recall)的公式是,它计算的是所有”正确被检索的item(TP)”占所有”应该检索到的item(TP+FN)”的比例。
在例子中就是希望知道此君得到的女生占本班中所有女生的比例,所以其recall也就是100%(20女生/(20女生+ 0 误判为男生的女生))
F1值就是精确值和召回率的调和均值,也就是
调整下也就是
例子中 F1-measure 也就是约为 57.143%().
需要说明的是,有人[2]列了这样个公式
将F-measure一般化.
F1-measure认为精确率和召回率的权重是一样的,但有些场景下,我们可能认为精确率会更加重要,调整参数a,使用Fa-measure可以帮助我们更好的evaluate结果.
话虽然很多,其实实现非常轻松,点击此处可以看到我的一个简单的实现.
- 图像处理-评价指标
- 图像质量评价指标
- 图像检索评价指标
- 图像评价指标
- 数字图像处理,若干图像质量评价指标的实现
- 图像质量评价指标--大全
- 图像中的mAP评价指标
- 图像评价指标及方法
- 图像清晰度的评价指标
- 图像质量评价指标之Matlab实现
- psnr ssim图像评价指标解释
- 图像质量评价指标及MATLAB程序
- SAR图像变化检测的评价指标
- 图像质量评价与结构相似性指标
- 自然语言处理当中评价指标汇总
- 评价指标
- 评价指标
- 图像增强技术基础、评价指标及其经典算法
- LeetCode解题-#1-Two sum
- 推箱子 小时候困扰我多时的问题 只会过前两关的恐惧终于被电脑克服了
- 使用jdbc编程存在的问题
- java 多线程应用场景叙述
- 变量相关知识总结二_基本数据类型
- 图像处理-评价指标
- leetcode_6. ZigZag Conversion ? 待解决
- pg_start_backup() 和 pg_stop_backup()
- Java IO
- 基于STS的web项目引入方法
- css 只隐藏文字
- 招聘会有感
- NLTK初学(一)生成Oracle官网词云
- Tensorflow学习--CNN代码分析