(ABORTED) 授课极其偏向理论,数学证明多的恐怖,期末风评也不好(确实也不好),已退课。
02 模型评估与选择
如何获得测试结果?评估方法
- 留出法:数据集简单随机地划分为两个互斥的集合:一个作为训练集,另一个作为测试集。在训练集(如 70% 或 80%)上训练模型,在测试集上评估模型性能。
- 交叉验证法:将数据集分层并随机划分为 k 个大小相似且互斥的子集(称为“折”或“folds”)。每次用 k-1 个子集的并集作为训练集,剩下的那 1 个子集作为测试集。这样重复 k 次,每一次使用不同的子集作为测试集,最终返回 k 次评估结果的平均值。
- 自助法:通过有放回随机抽样来生成训练集。对于一个包含 m 个样本的数据集 D,每次随机挑选一个样本放入训练集 D’,然后再将该样本放回 D。重复这个过程 m 次,得到了一个大小为 m 的训练集 D’。使用未被采样的样本作为测试集。
如何评估性能优劣?性能度量
- TP:真正例
- FP:假正例
- FN:假反例
- TN:真反例
查准率:$P = \frac{TP}{TP + FP}$
查全率:$R = \frac{TP}{TP + FN}$
F1:$F1 = \frac{2PR}{P + R} = \frac{2TP}{样例总数 + TP - TN}$, $\frac{1}{F1} = \frac{1}{2} (\frac{1}{P} + \frac{1}{R})$
$F_{\beta} = \frac{(1 + \beta^2)PR}{\beta^2P + R}$,𝛽>1时查全率有更大影响;𝛽<1时查准率有更大影响:$\frac{1}{F_{\beta}} = \frac{1}{(1 + \beta^2)} (\frac{1}{P} + \frac{\beta^2}{R})$
PR图:精确率-召回率曲线。
目的:用于评估分类模型(尤其是二分类模型)在不同决策阈值下的性能表现。
- 选择一个概率阈值(例如,从0到1,以0.05为步长)。对于每个阈值:
- 将概率大于等于该阈值的样本预测为正例,小于的预测为负例。
- 根据这个预测结果,计算出一对 (召回率, 精确率) 值。
- 将所有阈值下的 (召回率, 精确率) 点连接起来,就形成了PR曲线。
BEP是PR曲线上的一个特殊点,在该点上,模型的精确率 和 召回率 的数值相等。
ROC曲线,全称是 受试者工作特征曲线。它和PR图类似,也是通过遍历所有可能的分类阈值来绘制的,但它使用的评估指标不同。
- 纵轴:真正例率(TPR),其实就是召回率。
TPR = Recall = TP / (TP + FN) - 横轴:假正例率(FPR)。
FPR = FP / (FP + TN) - 对于每个阈值:
- 将概率大于等于该阈值的样本预测为正例,小于的预测为负例。
- 根据预测结果,计算出一对 (FPR, TPR) 值。
- 以FPR为横轴,TPR为纵轴,将所有点连接起来,就得到了ROC曲线。
一个优秀的模型,其ROC曲线应该尽可能地靠近图的左上角,即在较低的FPR下获得较高的TPR。
曲线下的面积(AUC) 就是用来量化这个“靠近左上角”程度的指标。直观的概率解释:随机选取一个正例样本和一个负例样本,模型对正例样本的预测值(属于正类的概率)高于负例样本预测值的概率。
非均等代价:犯不同的错误往往会造成不同的损失
如何判断实质差别?比较检验
在某种度量下取得评估结果后,是否可以直接比较以评判优劣?
不行, 因为:
- 测试性能不等于泛化性能
- 测试性能随着测试集的变化而变化
- 很多机器学习算法本身有一定的随机性
统计假设检验
两学习器比较:
通过在同一个数据集上进行多次(k折)配对实验,得到两个学习器性能差异的一个序列,然后检验这个差异序列的均值是否与0有显著差异。
McNemar检验
这种方法不关心性能的具体数值,只关心分类结果是否正确,特别适用于分类问题。如果两个学习器性能相同,那么他们“犯不同错误”的次数应该大致相等,即A正确但B错误的样本数和A错误但B正确的样本数应该接近。
卡方:$\chi^2 = \frac{(|e_{01} - e_{e10}| - 1)^2}{e_{01} + e_{e10}}$
多学习器比较:
Friedman检验:在多个数据集上(或通过多次重采样,如交叉验证),对每个学习器的性能进行排序,然后检验这些排序的平均值是否显著不同。
在N个数据集上(或通过N次交叉验证实验)比较k个学习器。得到一个N×k的性能矩阵,计算每个学习器在所有N个数据集上的平均序值 $R_i$ ,计算卡方分布。
当Friedman检验发现显著差异后,Nemenyi检验用来进行事后分析,具体找出是哪些学习器之间存在差异。
03 线性模型
$f(\mathbf{x}) = w^T\mathbf{x} + \mathbf{b}$
线性回归
求 $f(x_i) = wx_i + b$ 使得 $f(x_i) \simeq y_i$
令均方误差最小化,有 $(w^*, b^*) = \arg_{w, b} \min \Sigma _{i = 1} ^m (f(x_i) - y_i)^2 = \arg_{w, b} \min \Sigma _{i = 1} ^m (y_i - wx_i - b)^2$
也即最小二乘化 $E_{w, b} = \Sigma _{w, b} ^m (y_i - wx_i - b)$
分别对 w 和 b 求导:
令导数为 0,得到闭式(closed-form)解:
多元线性回归: