模型评估与选择
下面所有的 表示括号内元素的个数
经验误差与过拟合
- 错误率:错误分类的样本数占总样本数的比例
- 精度:1-错误率
- 误差:学习器实际预测输出与样本的真实输出之间的误差
- 训练误差(training error) or 经验误差(empirical error):学习器在训练集上的误差
- 泛化误差(generalization error):新样本上的误差
- 欠拟合(underfitting):未能很好的拟合训练样本
- 过拟合(overfitting):过分拟合训练样本
过拟合是无法彻底避免的
评估方法
测试集:测试学习机对新样本的判别能力,以测试误差作为泛化误差的近似,测试集与训练集应该互斥。
生成测试集与训练集的方法
留出法(hold-out)
将数据集 划分为两个互斥的集合,一个作为训练集 ,一个作为测试集 。
- 训练集和测试集的划分尽可能保证数据分布的一致性。需要从 的正例和反例中等比例采数据,也就是说如果从正例中取 作为训练集,那么在反例中也应提取 作为训练集。
- 训练集和测试集不同的划分方式会导致不同的评估结果。为保证估计结果准确可靠,一般采用若干次随机划分,重复进行试验评估后取平均值作为留出法的评估结果。
- 和 不同的划分比例对数据集 的拟合程度不同, 越大,那么训练出的模型越接近 ,但此时泛化性能较差; 越大,那么训练的模型不能很好的拟合 。通常取 或 的数据作为训练样本。
交叉验证法(cross validation)
将数据集
划分为
个大小相似互斥的子集,每个子集
都尽可能保持数据分布的一致性(分层采样得到),然后每次用
个子集的并集作为训练集,余下的那个作为测试集,于是就得到了
组训练/测试集,从而进行
次训练测试,最终返回
结果的均值。该方法也被称为 "
折交叉验证 “(k-fold cross valication)。为了提高测试的稳定和准确度,与留出法一样,交叉验证法要重复
次,因此称为 "
次
折交叉验证”。
如果将
中的
个样本分为
份即
折交叉验证,那么就得到了留一法(Leave-Out-Out或LOO)。留一法不受随机样本划分的影响,且留一法评估比较准确,但是留一法的开销巨大,特别是当
很大时,且留一法的结果未必比其他方法更加准确。
自助法(bootstrapping)
给定包含
个样本的数据集
,每次从
中挑选一个样本,将其拷贝到
,然后将该样本放入原本的数据集
中,重复
次之后我们就得到包含
个数据的训练样本
(存在重复的数据),
\
作为测试集。
优点:减少训练样本规模不同造成的影响,还能比较高效的进行试验估计。自助法在数据集较小、难以有效区分训练/测试集时很有用。但是自助法改变了数据原有的分布,引入估计偏差
初始数据量足够时,留出法和交叉验证法更常用
调参与最终模型
现实中调参是对每个参数选定一个范围和变化步长。
注意在学习算法和参数均已选定之后需要用
个数据重新训练模型,这才是最终模型。
通常将实际测试时遇到的数据称为测试数据,为了加以区分,我们将模型评估选择中的测试集
称为验证集。
性能度量
什么样的模型是好的,不仅取决于算法和数据,还取决于任务需求
(PS:下面公式均不对概率密度的描述进行总结)
常用度量方式:均方误差
P 和 R
错误率:
精度:
混淆矩阵:
查准率(Precision):
查全率(Recall):
查全率与查准率相互矛盾,不能兼得。
以查准率为横坐标,查全率为纵坐标绘制的曲线为 “P-R曲线”
根据P-R曲线比较学习器性能
- 若一个学习器的P-R曲线被另一个学习器曲线完全包住,那么可以确定后者性能优于前者
- 若两个学习器的P-R曲线存在交集,那么可以比较面积(计算复杂)
- 基于平衡点(查全率等于准确率的点)衡量性能。平衡点越大,性能越好
- 基于 度量
- 基于
,
可以对查全率和查准率的不同偏重衡量学习器的性能。
当
时,查全率有更大影响;当
时,查准率有更大影响。
证明:
当 时, ,所以 查全率的影响更大。当 时, ,所以 查准率的影响更大。
宏查全率和宏查准率即多次测量查全率和查准率的平均
ROC和AUC
根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出假正例率和真正例率,以这两个值为坐标绘制曲线即为ROC(Receiver Operating Characteristic)
点
为所有正例排在所有反例之前的理想模型。
ROC曲线的绘制:
给定
个正例和
个反例,根据学习器的预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例都设为反例,此时真正例与假正例率均为0,在坐标
处标记一个点,然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为
,若当前为真正例,则对应标记点的坐标为
;若当前为假正例,则对应标记点坐标为
,然后用线段相连即可。
ROC曲线下的面积为AUC(Area Under ROC Curve)。
解释:设当前点为
,若
为真正例,那么横坐标不变,纵坐标加常数,则该项为0;若
为假正例,那么横坐标加常数,纵坐标不变,则
为当前矩形的面积。
损失函数定义为:
且
解释:
为正例反例的所有组合数,那么对
的个数求和可以表示排在正例前面的反例所占的比例,当
时,该反例可能在正例前面,也可能在正例后面,两种情况概率相等,基于统计的知识, 满足
的反例出现在正例前面的个数为
,因此对于每一个
来说,
是排在其之前反例的个数。
代价敏感错误率和代价曲线
代价敏感错误率即对错误情况加权值。
代价敏感曲线的绘制则是根据ROC曲线,将ROC曲线上每一个
,在代价平面上绘制一条从
的线段,所有线段下的总面积为该条件下的期望总体代价。
比较检验涉及到置信度等统计学的专业知识,现在还不太懂,留个坑,等以后弄懂了再填~