误差(error):学习器的实际预测输出与样本的真实输出之间的差异。
训练误差(或经验误差):学习器在训练集上的误差(training error)、(empirical error)。
泛化误差:学习器在新样本上的误差(generalization error)。
=> 希望得到泛化误差小的学习器,但能做的是让训练误差尽量小。
欠拟合与过拟合,与学习器的学习能力有关。(
这
里
的
学
习
能
力
是
否
“
过
于
强
大
”
,
是
由
学
习
算
法
和
数
据
内
涵
共
同
决
定
的
。
\red{这里的学习能力是否“过于强大”,是由学习算法和数据内涵共同决定的。}
这里的学习能力是否“过于强大”,是由学习算法和数据内涵共同决定的。)
参考这篇
学习算法、参数配置=> “模型选择”问题
评估方法
训练集S、测试集T
模型选择,需要使用“测试集”(testing set)来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为泛化误差的近似。
假设:测试样本也是从样本的真实分布中,独立同分布采样得到的。
现实任务中会考虑:
泛
化
误
差
、
时
间
开
销
、
存
储
开
销
、
可
解
释
性
等
\red{泛化误差、时间开销、存储开销、可解释性等}
泛化误差、时间开销、存储开销、可解释性等
对数据集D中的m个样例,如何分开训练集和测试集呢?
有几种方法:
- 留出法(hold-out)
- 交叉验证法(cross validation)
- 自助采样法(bootstrapping)/可重复采样/可放回采样——>‘包外估计’、估计偏差
参考这篇
模型调参
ML中涉及两类参数:
- 算法参数:亦称超参数,人为指定候选值,数目较少。
- 模型参数:数目可能很多,通过学习过程中产生候选值。
因为训练中仅使用部分数据集,则在模型选择完后,学习算法和参数配置都已确定,此时应该用D重新训练模型,使用全部m个样本,再最终提交。
- 训练集:模型学习使用的数据集
- 验证集:训练数据划分为训练集和验证集,验证集上的性能进行模型选择与调参。
- 测试集:评估模型在实际使用时的泛化能力
性能度量
------ 均方误差
- 错误率与精度
- 查准率与查全率
==> 加权调和平均
F
β
F_{\beta}
Fβ(书中32页) 比算术平均(
P
+
R
2
\frac{P+R}{2}
2P+R)和几何平均(
P
∗
R
\sqrt{P*R}
P∗R)更重视较小值。
其中当
β
\beta
β为1时退化为标准的F1度量。
当有多个二分类混淆矩阵时,有两种平均策略:
- 宏marco-P-R-F1:每个先计算自己的P-R,取均值后算F1
- 微 micro-P-R-F1:将矩阵加起来平均,再计算P-R-F1