以下内容均为https//nndl.github.io/nndl-book.pdf的学习笔记。
为了衡量一个机器学习模型的好坏,需要给定一个测试集,用模型对测试集中的每一个样本进行预测,并根据预测结果计算评价分数.
对于分类问题,常见的评价标准有准确率、精确率、召回率和F值等.给定测试集𝒯 = {(𝒙(1), 𝑦(1)), ⋯ , (𝒙(𝑁), 𝑦(𝑁))},假设标签𝑦(𝑛) ∈ {1, ⋯ , 𝐶},用学习好的模型𝑓(𝒙; 𝜃∗)对测试集中的每一个样本进行预测,结果为{𝑦(̂ 1),⋯, 𝑦(̂ 𝑁)}.
准确率(Accuracy)、错误率(Error Rate)
准确率是所有类别整体性能的平均。
精确率(Precision)、召回率(Recall)
准确率是所有类别整体性能的平均,如果希望对每个类都进行性能估计,就需要计算精确率(Precision)和召回率(Recall)
对于类别𝑐 来说,模型在测试集上的结果可以分为以下四种情况:
类别 | 定义式 |
---|---|
真正例(True Positive,TP):一个样本的真实类别为𝑐 并且模型正确地预测为类别𝑐 | ![]() |
假负例(False Negative,FN):FN):一个样本的真实类别为𝑐,模型错误地预测为其他类 | ![]() |
假正例(False Positive,FP):FP):一个样本的真实类别为其他类,模型错误地预测为类别𝑐 | ![]() |
真负例(True Negative,TN) | 一个样本的真实类别为其他类,模型也预测为其他类 ,不需要关注 |
以下将几种关系用混淆矩阵形式表示:
精确率(Precision)
精确率(Precision),也叫精度或查准率,类别𝑐 的查准率是所有预测为类别𝑐 的样本中预测正确的比例:
召回率(Recall)
召回率(Recall),也叫查全率,类别𝑐 的查全率是所有真实标签为类别𝑐 的样本中预测正确的比例。
F值
**F 值(F Measure)**是一个综合指标,为精确率和召回率的调和平均:
其中𝛽 用于平衡精确率和召回率的重要性,一般取值为1.𝛽 = 1 时的F 值称为F1值,是精确率和召回率的调和平均.
宏平均(Macro Average)
为了计算分类算法在所有类别上的总体精确率、召回率和F1值,使用宏平均,宏平均是每一类的性能指标的算术平均值。
交叉验证(Cross-Validation)
** 交叉验证(Cross-Validation):**是一种比较好的衡量机器学习模型的统计分析方法,可以有效避免划分训练集和测试集时的随机性对评价结果造成的影响.我们可以把原始数据集平均分为𝐾组不重复的子集,每次选𝐾 − 1组子集作为训练集(𝐾一般大于3),剩下的一组子集作为验证集.这样可以进行𝐾 次试验并得到𝐾 个模型,将这𝐾 个模型在各自验证集上的错误率的平均作为分类器的评价.