模型评估指标二
科学家门捷列夫说“没有测量,就没有科学”,在AI场景下我们同样需要定量的数值化指标来指导我们更好地应用模型对数据进行学习和建模
事实上,在机器学习领域,对模型的测量和评估至关重要。选择与问题相匹配的评估方法,能帮助我们快速准确地发现在模型选择和训练过程中出现的问题,进而对模型进行优化和迭代
1、模型评估的目标
模型评估的目标是选出泛化能力强的模型完成机器学习任务。实际的机器学习任务往往需要进行大量的实验,经过反复调参、使用多种模型算法(甚至多模型融合策略)来完成自己的机器学习问题,并观察哪种模型算法在什么样的参数下能够最好地完成任务
泛化能力强的模型能很好地适用于未知的样本,模型的错误率低、精度高。机器学习任务中,我们希望最终能得到准确预测未知标签的样本(即泛化能力强)的模型
但是我们无法提前获取未知的样本,因此我们会基于已有的数据进行切分来完成模型训练和评估,借助于切分出的测试数据进行评估,可以很好地判定模型状态(过拟合/欠拟合),进而迭代优化
在建模过程中,为了获得泛化能力强的模型,我们需要一整套方法及评价指标:
- 评估方法:为保证客观地评估模型,对数据集进行的有效划分实验方法
- 性能指标:量化的评估模型效果的指标
2、模型评估方法
模型评估方法主要涉及到对完整数据集不同的有效划分方法,保证我们后续计算得到的评估指标是可靠有效的,进而进行模型选择和优化
2.1、留出法(Hold-out)
留出法是机器学习中最常见的评估方法之一,它会从训练数据中保留出验证样本集,这部分数据不用于训练,而用于模型评估
使用留出法划分数据集需要注意:
- 划分时一般不宜随机划分,可以采用分层抽样的方式选择测试数据,以保证数据分布比例的平衡
- 单次划分不一定能得到合适的测试集,一般多次重复按照划分、训练、测试求误差的步骤,取误差的平均值
- 划分的验证集不能太大或太小,否则评估将失去意义,常用做法是选择1/5~1/3左右的数据当作验证集用于评估
2.2、交叉验证法(Cross Validation)
留出法的数据划分可能会带来偏差。在机器学习中,另外一种比较常见的评估方法是交叉验证法:K折交叉验证对K个不同分组训练的结果进行平均来减少方差
因此模型的性能对数据的划分就不那么敏感,对数据的使用也会更充分,模型评估结果更加稳定,可以很好地避免上述问题
使用交叉验证法划分数据集需要注意:
- 当数据量较小时,选择较大的K;当数据量较大时,选择较小的K。这样可以提高评估的效率
- K一般取5或10,当K取样本总数m时,称为留一法,每次的测试集都只有一个样本,需要进行m次训练和预测
更多关于交叉验证法的介绍详见上篇:模型评估指标(一)
2.3、自助采样法(Bootstrap Sampling)
部分场景下,数据量较少,很难通过已有的数据来估计数据的整体分布。因为数据量不足时,计算的统计量反映不了数据分布,这时可以使用自助采样法
自助采样法是一种用小样本估计总体值的一种非参数方法,在进化和生态学研究中应用十分广泛。自助采样法通过有放回抽样生成大量的伪样本,通过对伪样本进行计算,获得统计量的分布,从而估计数据的整体分布
自助采样法的过程为
- 对m个样本进行m次有放回采样得到初始训练集,初始数据集中有的样本多次出现,有的则从未出现,从未未出现的剩余样本作为测试集
- 上述的采样过程我们可以重复T次,采样出T个包含m个样本的训练集,然后基于每个训练集训练出一个基学习器,然后将这些基学习器进行结合
有了有效的模型评估方法,我们还需要量化的度量指标来精准评估与判断模型性能
3、单项分类模型评估指标
单项分类问题评估指标主要有:准确率、精确率和召回率等,而这些指标都是基于混淆矩阵进行计算的
3.1、混淆矩阵(Confusion Matrix)
混淆矩阵(Confusion Matrix)可以直观地展示模型预测结果与实际标签之间的对应关系。它是一个表格矩阵&