目录
1.模型评估
1.1 模型评估概述
模型评估是对训练好的模型性能进行评估, 模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。
1.2 模型评估类型
机器学习的任务有回归,分类和聚类,针对不同的任务有不同的评价指标。按照数据集的目标值不同,可以把模型评估分为分类模型评估和回归模型评估。
2.模型评估主要理论
2.1 过拟合与欠拟合
过拟合
过拟合其实就是为了得到一致假设而使得假设过于地严格。使得其在训练集上的表现非常地完美,但是在训练集以外的数据集却表现不好。
解决办法
1.增加训练数据数 2.使用正则化约束 3.减少特征值 4.调整超参数和参数 5.降低模型的复杂度
6.使用Dropout 7.提前结束训练
欠拟合
欠拟合是指模型在训练数据上没有获得充分小的误差.造成欠拟合的原因通常是模型学习能力过低,具体地说,就是模型参数过少或者结构过于简单,以至于无法学习到数据的内在结构和特征.例如,当用一个线性模型去拟合非线性数据时,会发生欠拟合.由此,可以通过增加模型参数和复杂度,提高学习能力,从而解决欠拟合问题.与欠拟合相对应的,是过度拟合.
解决办法
1.模型复杂化 2.增加更多特征,使输入具有更强的表达能力
3.调整参数和超参数 4.降低正则化约束
2.2 模型泛化能力
泛化能力(generalization ability)是指机器学习算法对新鲜样本的适应能力。
机器学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。
规律适用于现有数据,同样也适用于新鲜数据。
3.常见的分类模型评估
3.1. 混淆矩阵
混淆矩阵是监督学习中的一种可视化工具,主要用于模型的分类结果和实例的真实信息的比较 。
矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。
真实值是positive,模型认为是positive的数量(True Positive=TP)
真实值是positive,模型认为是negative的数量(False Negative=FN):这就是统计学上的第一类错误(Type I Error)
真实值是negative,模型认为是positive的数量(False Positive=FP):这就是统计学上的第二类错误(Type II Error)
真实值是negative,模型认为是negative的数量(True Negative=TN)
预测性分类模型,肯定是希望越准越好。那么,对应到混淆矩阵中,那肯定是希望TP与TN的数量大,而FP与FN的数量小。所以当我们得到了模型的混淆矩阵后,就需要去看有多少观测值在第二、四象限对应的位置,这里的数值越多越好;反之,在第一、三四象限对应位置出现的观测值肯定是越少越好。
召回率:表现出在实际正样本中,分类器能预测出多少。
与真正率相等,可理解为查全率。正确预测为正占全部正校本的比例
Recall = TP/(TP+FN),即正确预测的正例数 /实际正例总数
3.2 AUC指标
主要用于评估样本不均衡的情况
逻辑回归里面,对于正负例的界定,通常会设一个阈值,大于阈值的为正类,小于阈值为负类。如果我们减小这个阀值,更多的样本会被识别为正类,提高正类的识别率,但同时也会使得更多的负类被错误识别为正类。为了直观表示这一现象,引入ROC。根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve,横坐标为False Positive Rate(FPR假正率),纵坐标为True Positive Rate(TPR真正率)。
4.ROC 曲线与PR曲线的差异
PR曲线和ROC曲线是不同的两种常用于评估分类模型性能的图形工具。它们都可以有效地表示模型在不同阈值下的表现。
ROC 曲线:ROC 曲线描绘的是模型在各种阈值之下的真正例率(True Positive Rate,TPR)和假正例率(False Positive Rate,FPR)之间的关系。TPR 也就是召回率,FPR 是错误分类为正例的负例所占的比率。ROC 曲线在处理均衡数据集(即正例和负例数量大致相等)时非常有用,或者在我们对阳性和阴性样本的错误判断不做区分的情况下。
PR 曲线:PR 曲线显示的是模型在各个阈值下的精确率(Precision)和召回率(Recall)关系。PR 曲线比ROC曲线对不平衡数据集更敏感,因此,当类别分布极度不平衡(例如,正样本很少,负样本很多)时,我们更倾向于使用 PR 曲线来评估模型的表现。
总结起来,如果处理的问题类别在数据集中比较均衡,或者阳性和阴性样本的错误判断同等重要,那么 ROC 曲线就可以很好地满足你的需求;但如果你的问题类别在数据集中不平衡,那么 PR 曲线能给出更准确的模型性能评估。
相比P-R曲线,ROC曲线有个很好的特性:当测试集中的正负样本的分布发生变化的时候,ROC曲线能够保持稳定。在实际的数据集中经常会出现类不平衡现象,而且测试数据中的正负样本的分布也可能随着时间变化。
PR曲线会面临一个问题,当需要获得更高recall时,model需要输出更多的样本,precision可能会伴随出现下降/不变/升高,得到的曲线会出现浮动差异(出现锯齿),无法像ROC一样保证单调性。所以,对于正负样本分布大致均匀的问题,ROC曲线作为性能指标更好。
5.ROC曲线绘制
5.1 代码
5.2 分析
1.当k值较小时,模型可能会过拟合,随着k值的增加,考虑了更多的紧邻点,准确性提升,但也可能会导致欠拟合。
2.在ROC曲线中,AUC值越大,模型性能越好。