一、模型评估的一些基本术语
- 经验误差
指学习器在训练集上的误差
- 泛化误差
指学习器在新样本上的误差
- 泛化能力
学习的模型适应新样本的能力,即在预测新样本时的效果好坏
- 过拟合
模型训练过度,把训练样本自身的一些特点当成所有潜在样本的一般性质,导致泛化能力下降
- 欠拟合
模型对于训练样本的一般性质尚未学好,即学的还不够,能力还有待加强
- 模型选择
即面对不同的模型如何选择一个最优的模型作为我们的学习结果,一般而言不同的学习算法也会产生不同的模型,在各种参数上会有差异,理想情况是获得一个泛化能力最强的那个模型,但事实上很难判断模型的泛化能力,数据的采集是一个问题,所以机器学习中常用一些指标进行评估模型的好坏
二、模型评估的方法
我们希望得到一个泛化性能比较强的模型,一般而言是通过对数据集D进行划分成训练集S和测试集T,然后采用下列方法进行不同的处理,以获得最佳的模型
1.留出法
将数据集D划分成两个互斥的数据集,一个作为训练集,一个作为测试集,用测试集上的模型的效果对泛化误差进行估计
一般而言为了保持数据的分布的一致性,采取分层随机抽样的方法获得训练集和测试集
2.交叉验证法
先将数据集划分成k个相似的互斥子集,为保持数据分布的一致性,同样也是采取分层随机抽样,每次使用k-1个子集作为训练集,剩下的那个作为测试集,即可以获得k组训练结果,然后采取一定的方法进行最终结果的判断,比如,如果是离散值,投票法选最优,连续值,简单取平均即可。
一个特例:留一法,即每个子集都只包含一个数据的交叉验证法,这样的做法在小样本是非常有用的,避免了样本的不足导致模型训练不够的困难,但也有缺点,当数据量比较大的时候模型的计算等等开销比较大。
3.自助法
即有放回的随机抽样,每次随机的取一个数据出来,然后拷贝到一个集合中,重复m次即得到集合D~1~,初始集合为D,利用简单的极限推导可知,D中大概有1/3的数据不会出现在D~1~中,故取D~1~为训练集,D\D~1~为测试集,D~1~中可能有重复的数据,同样也在小规模的数据中比较常用,在大型数据集中由于其改变了数据的分布,可能会产生较大的估计偏差。
在数据量比较充足的情况下,留出法和交叉验证法更常用一点。
三、评价指标
这里由于时间匆忙写不了公式,后面有时间会补充的
- 均方误差
与预测值的误差平方的期望,离散型和连续型分别对应一个公式
公式1,公式2
- 错误率
分类错误的样本数占样本总数的比例
公式3
- 精度
分类正确的样本数占样本总数的比例
公式4
混淆矩阵
预测结果 真实情况 正例 反例 正例 TP(真正例) FN(假反例) 反例 FP(假正例) TN(真反例) T、F代表是否预测正确(True False)
P、N代表预测的结果(Positive Negative)
- 查准率(P):预测为正例中,正例的比例
公式5
- 查全率(R):实际为正例中,正例的比例
公式6
- F1值
查准率和查全率的调和平均,即倒数等于二者倒数的平均
公式7
- P-R曲线
将样本按照可能为正类的置信度从小到大排序,选择一个样本作为阈值点,大于他的值都看成正类,其他看成负类,这样就可以计算一组查全率和查准率,然后按照横坐标为查全率纵坐标为查准率绘制成一条曲线
简单记忆查全率和查准率的方法,查全率就是在实际正类中的占比,查准率就是在预测正类中的占比
- ROC曲线
和P-R曲线类似,只是横纵坐标换了一下
纵坐标为真正例率,即真正的正例在实际正例中的占比
横坐标为假正例率,即预测为假的正例在实际负例中的占比
- AUC
即ROC 曲线包围的面积