文章目录
一.模型评估综述
1.1 什么是模型评估
模型评估是指在机器学习中,对于一个具体方法输出的最终模型,使用一些指标和方法来评估它的泛化能力。这一步通常在模型训练和模型选择之后,正式部署模型之前进行。模型评估不针对模型本身,而是针对问题和数据,因此可以用来评价不同方法的模型的泛化能力,以此决定最终模型的选择。
1.2 评估类型
机器学习的基本任务大致分为三类,分别是分类(Classification)、回归(Regression)和聚类(Clustering),在本文仅介绍分类的模型评估。
1.3 模型泛化能力
模型的泛化能力是机器学习的一个重要概念和指标。是指一个模型在训练集之外的未知数据上的表现能力,泛化能力强的模型能够正确学习到数据的普遍规律并将其运用到新的数据上从而做出准确的预测。
简单地说,当模型在训练样本上表现良好,并且能在新的数据样本上保持相同的表现,我们就可以说这个模型的泛化能力强。
1.4 过拟合与欠拟合
过拟合与欠拟合是机器学习中常见的两个概念,描述的是模型在训练数据和未知数据上表现的差异。下图中第一到第三的图分别是欠拟合、正好和过拟合三种状态。
1.4.1 过拟合
过拟合表现为在训练数据上表现优秀的那在新数据集上表现较差,通常是因为模型过于复杂,学习到了数据集中的细节和噪声而不是数据的真实分布,因而泛化能力差。
举个很经典的例子,当我们设计一个模型用于判断一个物品是否是树叶,而训练集中有几个样本的叶片边缘带有尖刺,模型作者希望他的模型能够符合贴近他的每一个样本,因而将带有“尖刺边缘”这一不是明显特征的特点纳入了参数中,这样一来,模型就能够完美贴合训练样本,但在应用时会发现模型容易钻牛角尖,会将不带尖刺边缘的样本排除,无法识别不带尖刺边缘的树叶,这就导致了模型的泛化能力差。
解决模型过拟合的问题,有以下几种方法:
- 增加数据量以提供更多信息,减少噪声的影响
- 简化模型,减少模型参数的数量
- 通过交叉验证评估模型的泛化能力
1.4.2欠拟合
欠拟合则与过拟合相反,由于模型过于简单,无法学习到数据的足够特征,无法正确捕捉数据的复杂性和变化,没有学习到数据的规律。这就导致模型不管是在训练样本还是未知样本上的表现都不佳。
常见的解决欠拟合的方法有:
- 增加模型的复杂度,如增加更多的特征或使用更复杂的模型
- 收集更多的数据,提供更加丰富的信息给模型
- 增加训练时间或者调整模型的超参数
二.常见的分类模型评估方式
2.1 混淆矩阵
混淆矩阵是分类模型巩固的一个重要工具,可以直观展示模型的预测结果和实际结果之间的关系,通常由以下四个部分构成:
- 真正类 (True Positives, TP): 模型正确地预测正类的数量。
- 假负类 (False Negatives, FN): 模型错误地将正类预测为负类的数量。
- 假正类 (False Positives, FP): 模型错误地将负类预测为正类的数量。
- 真负类 (True Negatives, TN): 模型正确地预测负类的数量。
二元混淆矩阵格式如下:
分类器 | 真实结果 | ||
---|---|---|---|
Positive(阳性) | Negative(阴性) | ||
预测结果 | Positive | TP | FP |
Negative | FN | TN |
多元分类矩阵格式如下:
分类器 | 真实结果 | ||||
---|---|---|---|---|---|
A | B | C | D | ||
预测结果 | A | TA | FA | FA | FA |
B | FB | TB | FB | FB | |
C | FC | FC | TC | FC | |
D | FD | FD | FD | TD |
2.2 准确率(Accuracy)
准确率是指模型正确预测的样本总数占总样本总数的比例,其计算公式为:
准确率 = T N + T F T N + F N + T P + F P = T T + F 准确率 = \dfrac{TN+TF}{TN+FN+TP+FP} = \dfrac{T}{T+F} 准确率=TN+FN+TP+FPTN+TF=T+FT
2.3 精确率(Precision)
精确率的概念比较容易与准确率的概念混淆,准确率的目标是所有样本,计算的是所有分类正确样本占总样本的多少,而精确率是指在所有被模型预测为正类的样本中,实际为正类的样本的比例,关注的是被模型分为此类的数据中有多少是正确的。
当我们使用精确率(下使用Precision代替)作为考量时,优点是不容易出现假正类,但是,当precision值过高时,容易出现模型偏向某一类别的情况,因为此时模型会倾向于预测多数类别而忽略了少数类别的预测。
举一个例子,假设在一个疾病诊断问题中,疾病发生的实际情况(正类)非常罕见。如果模型仅仅通过预测大多数人都是健康的(负类)来提高Precision,那么它可能会忽略真正的病例,因为这些病例在数据中占比很小。这样的模型虽然精确度高,但其实用性非常有限,因为它未能有效识别和预测少数但重要的正类样本。
在混淆矩阵中,这表现为某一行的T除以本行上所有数字的和,如下列表格标注了颜色的A行就是红色的TA值除以TA加FA的和。
预测/实际 | A | B | C | D |
---|---|---|---|---|
A | T A \color{red}{TA} TA | F A \color{green}{FA} FA | F A \color{green}{FA} FA | F A \color{green}{FA} FA |
B | FB | TB | FB | FB |
C | FC | FC | TC | FC |
D | FD | FD |