机器学习第二章——模型评估和选择

一、基本概念

  1. 错误率(Error Rate):分类错误的样本数占样本总数的比例。
  2. 精度(Accuracy):1 - 错误率,即分类正确的样本数占样本总数的比例。
  3. 误差(Error):学习器的实际预测输出与样本的真实输出之间的差异。
  • 训练误差(Training Error)经验误差(Empirical Error):在训练集上的误差。
  • 泛化误差(Generalization Error):在新样本上的误差。

二、过拟合与欠拟合

1、过拟合(Overfitting)

定义:对训练数据拟合过当,训练集表现很好,但测试集表现差。

原因:学习器的学习能力过于强大,学到了训练样本中的噪声或不太一般的特性。

解决方法:

  • 增加训练数据。
  • 降低模型复杂度,如减少神经网络层数、剪枝树模型等。
  • 使用正则化方法,如L2正则化。
  • 集成学习方法,如Bagging、Boosting等。

2、欠拟合(Underfitting)

定义:模型在训练和预测时都表现不好。

原因:学习器的学习能力低下,未能充分学习训练样本的一般性质。

解决方法:

  • 增加新特征。
  • 增加模型复杂度,如线性模型加高次项、神经网络增加层数等。

三、评估方法

1、留出法(Hold-out)

直接将数据集D划分为两个互斥的集合,一个作为训练集S,另一个作为测试集T。

注意事项:

  • 训练/测试集的划分要尽可能保持数据分布的一致性,常采用分层采样。
  • 一般采用若干次随机划分,重复实验评估后取平均值作为评估结果。
  • 训练集数据一般取2/3~4/5。

2、交叉验证法(Cross Validation)

先将数据集D划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集。

注意事项:

  • 划分方式有多种,为减少误差,常重复多次划分取平均。
  • 常用的k值有5、10、20等,特别地,当k=m(样本总数)时,称为留一法(Leave-One-Out,LOO)。

3、自助法(Bootstrapping)

通过自助采样法产生训练集D',D-D'作为测试集。

初始数据D中约有36.8%的样本未出现在采样数据集D'中,这部分样本用于测试,称为包外估计(Out-of-bag estimate)。

自助法适用于数据集较小、难以有效划分训练/测试集的情况,但会改变初始数据集的分布。

4、调参与最终模型

验证集(validation set):我们通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集常称为“验证集”(validation set)
超参数搜索算法

  • 网格搜索(Grid Search):查找范围内所有点来确定最优值,但计算资源消耗大。
  • 随机搜索(Random Search):在范围中随机选取样本点,可能更快但不一定得到全局最优。
  • 贝叶斯优化(Bayesian Optimization):对目标函数的形状进行学习,找到全局最优解,但可能陷入局部最优。

四、性能度量

模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求.

回归任务最常用的性能度量是“均方误差”(mean squared error)

更一般的,对于数据分布D和概率密度函数p(),均方误差可描述为

1错误率与精度
 

2 查准率、查全率与F1 

“查准率”(precision):“检索出的信息中有多少比例是用户感兴趣的”

“查全率”(recall):“用户感兴趣的信息中有多少被检索出来了”﹒


对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形,令TP、FP、TN、FN分别表示其对应的样例数,则显然有TP+FP+TN + FN=样例总数.分类结果的“混淆矩阵”(confusion matrix)如表2.1所示.

查准率 与查全率 分别定义为 

F1度量:

F1度量的一般形式——F_{\beta }
 

3 ROC与AUC 

ROC 曲线的纵轴是"真正例率" (Tr ue Positive Rate ,简称 TPR) ,横轴是"假正例率" (False Positive Rate ,简称 FPR) ,两者分别定义为

AUC 通过对 ROC 线下各部分的面积 求和而得 ROC 曲线是由坐标为 {(Xl y l), (X 2 , Y2) , . . . , (x m , Ym)} 的点按序连接而形 (Xl =0 , x m = 1) ,则 AUC 可估算为

4代价敏感错误率与代价曲线 

我们可根据任务的领域知识设定一个"代价矩 阵" (cost matrix) ,如表 2.2 所示,其中 costij 表示将第 类样本预测为第 样本的代价.一般来说 costii = 0; 若将第 类判别为第 类所造成的损失更 一般情况下,重要的是大,则 cost01 > cost lO; 损失程度相差越大 cost01 cost lO 值的差别越大.

若将表 2.2 中的第0 类作为正 类、第1类作为反类,令 D+ 与D- 分别代表样例集 的正例子集和反例子 集,则"代价敏感" (cost-sensitive) 错误率为

在非均等代价下, ROC 曲线不能直接反映出学习器的期望总体代价,而 "代价曲线" (cost curve) 则可达到该目的.代价曲线图的横轴是取值为 [0 1] 的正例概率代价

 其中 是样例为正例的概率;纵轴是取值为 [0 1] 的归一化代价

四、比较校验 

统计假设检验(hypothesis test)为我们进行学习器性能比较提供了重要依据.基于假设检验结果我们可推断出,若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B,以及这个结论的把握有多大.

1 假设检验

定测试样本是从样本总体分布 中独立 采样 而得 ,那么泛化错误率 \varepsilon 学习器将其中 {m}' 个样本误分类 余样本全部分类正确的概率是 由此可估算出其恰将 样本误分类的概率如下式所示,

五、 偏差与方差 

偏差-方差分解是解释学习算法泛化性能的一种重要工具,其尝试对学习算法的期望泛化错误率进行拆解。使用样本数相同的不同训练集产生的方差为:

噪声为

 

期望输出与真实标记的差别称为偏差,即

经过推导可得泛化误差可以分解为偏差、方差与噪声之和。

 

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值