220127_202202_机器学习中的实验方法与原则


220127_202202_机器学习中的实验方法与原则

目录
  • 220127_202202_机器学习中的实验方法与原则
    • 训练集与测试集
    • 验证集
    • 随机重复实验
    • K折交叉验证
    • 统计有效性检验
      • 伯努利试验
      • 样本错误率与真实错误率
      • 偏差与方差
      • 正态分布的置信区间
      • 二项分布与正态分布的联系
      • 求置信区间的一般方法


训练集与测试集

  • 训练集:模型可见样本标签,用于训练模型,样本数有限。

  • 测试集:用于评估模型在可能出现的未见样本上的表现。

尽可能与训练集互斥,即测试样本尽量不在训测试练集中出现。

训练集与测试集的划分方法:

  • 随机划分

    • 按比例。
    • 固定数目。
  • 留一化分(leave-one-out)

    • 一个样本作测试,其余样本训练:常用于K近邻等算法的性能评估。
  • 特殊划分

    • 按时间划分,例如1—5月气象数据作训练,6月气象数据作测试。
    • 推荐系统中,常把每个用户交互序列的最后一个样本作测试,其余作训练。

验证集

  • 验证集:从训练集中额外分出的集合,一般用于超参数的调整
    • 训练轮次、正则化权重、学习率等等

不在训练集上调整超参数:防止过拟合训练集。
不在测试集上调整超参数:防止过拟合测试集,破坏测试集的未见性。

实验流程:将训练集再次划分为新的训练集与验证集;
在新的训练集上用训练不同模型;
用验证集检验不同模型的性能;
选择性能最好的模型作为最终模型,并用测试集测试。

随机重复实验

  1. 由于可能出现特殊情况:模型性能不好,但是测试集的测试结果很好。

为了避免这种情况,要多次的、随机的实验。

可以选择增加测试样本、重复多次划分数据集等方法,增强数据随机性。

  1. 在训练模型前,会对参数进行随机初始化,根据具体算法的区别,不同的初始化的最终训练结果可能有区别。

因此,可以更改生成随机数的随机种子,增强模型随机性。


应当注意每次的评价之间 独立同分布(实际工作中,每次实验的参数不应在前一次实验的基础上修改)。

实验报告中应当包含评价指标的均值、标准差、标准误差。

均值:

\[\overline{\mathrm{X}}=\frac{1}{n} \sum_{i=1}^{n} \mathrm{X}_{i} \\ S=\sqrt{\sum_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2} /(n-1)} \\ \text { Standard Error of the Mean, } S E M=\frac{S}{\sqrt{n}}=\sqrt{\sum_{i=1}^{n}\left(\mathrm{X}_{i}-\overline{\mathrm{X}}\right)^{2} /(n(n-1))} \]


标准差、标准误差是什么?
参考下博客:
(23条消息) 标准差(Standard Deviation) ,标准误差(Standard Error)及置信区间(CI)通俗解释_soga235的博客-CSDN博客_标准差的置信区间公式

样本标准差:个体离散程度 ,反映了个体对样本均值的代表性。
标准误差 :样本均值的离散程度 ,反映了样本均值对总体的代表性。


为什么标准差下面是n-1?
参考知乎回答(运用基础数理统计知识可证):
为什么样本方差(sample variance)的分母是 n-1? - 知乎 (zhihu.com)

\[\begin{aligned} E\left(S_{1}^{2}\right) &=\frac{1}{n} \sum_{i=1}^{n} E\left(\left(X_{i}-\bar{X}\right)^{2}\right)=\frac{1}{n} E\left(\sum_{i=1}^{n}\left(X_{i}-\mu+\mu-\bar{X}\right)^{2}\right) \\ &=\frac{1}{n} E\left(\sum_{i=1}^{n}\left(\left(X_{i}-\mu\right)^{2}-2\left(X_{i}-\mu\right)(\bar{X}-\mu)+(\bar{X}-\mu)^{2}\right)\right) \\ &=\frac{1}{n} E\left(\sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-2 \sum_{i=1}^{n}\left(X_{i}-\mu\right)(\bar{X}-\mu)+n(\bar{X}-\mu)^{2}\right) \\ &=\frac{1}{n} E\left(\sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-2 n(\bar{X}-\mu)(\bar{X}-\mu)+n(\bar{X}-\mu)^{2}\right) \\ &=\frac{1}{n} E\left(\sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-n(\bar{X}-\mu)^{2}\right) \\ &=\frac{1}{n}\left(\sum_{i=1}^{n} E\left(\left(X_{i}-\mu\right)^{2}\right)-n E\left((\bar{X}-\mu)^{2}\right)\right) \\ &=\frac{1}{n}(n \operatorname{Var}(X)-n \operatorname{Var}(\bar{X})) \\ &=\operatorname{Var}(X)-\operatorname{Var}(\bar{X})=\sigma^{2}-\frac{\sigma^{2}}{n}=\frac{n-1}{n} \sigma^{2} \end{aligned} \]

K折交叉验证

随机把数据集分成K个相等大小的不相交子集,每次取其中一个做测试集,其他的做训练集。

这样能取到K个评价指标。

优点 :数据利用率高。缺点:训练集之间有交集,难满足独立同分布。

K越大:

  • 所估计的模型效果偏差(bias )下降,方差(variance)上升。
  • 计算代价上升 。

统计有效性检验


Q1:为什么 一个假设在有限量数据上测得的准确率 能估计 在这个假设在未见数据上的准确率p?

考察错误率的数学期望与方差

Q2:估计所得的准确率中含有多少错误?

考察置信区间


伯努利试验

可以将假设模型做出判断看做是一种伯努利试验(经典的例子:抛硬币n次r次向上)。

设试验E只有两个可能结果:\(A\)\(\bar{A}\),则称E为伯努利(Bernoulli)试验.设\(P(A)=p\ (0<p<1)\),此时\(P(\bar A)=1-p\ (0<p<1)\)。将E独立重复地进行n次,则称这一串重复的独立试验为n重伯努利试验。以X表示n重伯努利试验中A发生的次数。

n重伯努利试验中,事件A恰好发生 k 次的概率为:

\[P(X=k)=C_{n}^{k} p^{k}(1-p)^{n-k}(k=0,1,2, \cdots, n) \]

对于随机变量X,求得分布律成为二项分布。记为\(X \sim b(n, p)\)

由概率论的相关知识,二项分布的数学期望与方差的推导如下:

\[\begin{aligned} & E(X)=\sum_{k=0}^{n} k \cdot P\{X=k\}=\sum_{k=0}^{n} k\left(\begin{array}{l} n \\ k \end{array}\right) p^{k}(1-p)^{n-k} \\ =& \sum_{k=0}^{n} \frac{k n !}{k !(n-k) !} p^{k}(1-p)^{n-k} \\ =& \sum_{k=1}^{n} \frac{n p(n-1) !}{(k-1) ![(n-1)-(k-1)] !^{1}} p^{k-1}(1-p)^{(n-1)-(k-1)} \\ =& n p \sum_{k=1}^{n} \frac{(n-1) !}{(k-1) ![(n-1)-(k-1)] !} p^{k-1}(1-p)^{(n-1)-(k-1)} \\ =& n p[p+(1-p)]^{n-1}=n p \end{aligned} \]

\[\begin{array}{l} E\left(X^{2}\right)=E[X(X-1)+X]=E[X(X-1)]+E(X) \\ =\sum_{k=0}^{n} k(k-1)\left(\begin{array}{l} k \\ n \end{array}\right) p^{k}(1-p)^{n-k}+n p \\ =\sum_{k=0}^{n} \frac{k(k-1) n !}{k !(n-k) !} p^{k}(1-p)^{n-k}+n p \\ =n(n-1) p^{2} \sum_{k=2}^{n} \frac{(n-2) !}{(n-k) !(k-2) !} p^{k-2}(1-p)^{(n-2)-(k-2)}+n p \\ =n(n-1) p^{2}[p+(1-p)]^{n-2}+n p=\left(n^{2}-n\right) p^{2}+n p . \\ D(X)=E\left(X^{2}\right)-[E(X)]^{2}=\left(n^{2}-n\right) p^{2}+n p-(n p)^{2} \\ =n p(1-p) \end{array} \]

样本错误率与真实错误率

在估计假设准确率的问题中,假设n个随机样本中有r个被误分类。每一个样本被误分类的概率为p。

记 该假设对于一个未知样本被误分类的真实概率为 $\operatorname{error}_{D}(h)=p $
记 由测试集测试所得错误率为 \(error_{S}(h)=r / n\) (S记为测试集)
那么有:

\[E[r]=n p,\ \ \ E\left[\operatorname{error}_{S}(h)\right]=E\left[\frac{r}{n}\right]=\frac{n p}{n}=p=\operatorname{error}_{D}(h) \]

即 样本的错误率的数学期望 等于 真实的错误率。

又有:

\[\sigma_{\text {error }_{S}(h)}=\frac{\sigma_{r}}{n} &=\frac{\sqrt{n p(1-p)}}{n}=\sqrt{\frac{\operatorname{error}_{D}(h)\left(1-\operatorname{error}_{D}(h)\right)}{n}} \\ \]

由于 样本的错误率的数学期望 等于 真实的错误率,所以:

\[\sigma_{\text {error }_{S}(h)} =\frac{\sigma_{r}}{n} \approx \sqrt{\frac{e r r o r_{S}(h)\left(1-e r r o r_{S}(h)\right)}{n}} \]

偏差与方差

(1) 估计偏差 (Bias)
S 是训练集 , \(error_S^{(h)}\) 是有偏好的,

\[\text { bias } \equiv \mathrm{E}\left[\text { error }_{S}(h)\right]-\text { error }_{D}(h) \]

对于无偏估计(bias =0), h和S必须独立不相关地产生。所以不要在训练集上测试 !

(2) 估计 方差 (Variance )
即使是 S 的无偏估计 , \(error_S^{(h)}\)可能仍然和 \(error_D^{(h)}\)不同

希望 选择 无偏方差小 的估计。

正态分布的置信区间

参数p 的N %置信区间:一个以 N %的概率包含 p 的区间 , N%: 置信度。

对二项分布来说置信区间较难获得;

对正态分布来说就很容易。通过正态分布的某个区间(面积)来获得。

\(\text { 指标 } \mathrm{y} \text { 有 } N \% \text { 的可能性落在区间 } \mu \pm z_{N} \sigma\)

$等价于, 均值 \mu 有 N % 的可能性落在区间 y \pm z_{N} \sigma $

\[\begin{array}{c|ccccccc|} \hline N \%: & 50 \% & 68 \% & 80 \% & 90 \% & 95 \% & 98 \% & 99 \% \\ z_{N}: & 0.67 & 1.00 & 1.28 & 1.64 & 1.96 & 2.33 & 2.58 \\ \hline \end{array} \]

二项分布与正态分布的联系

对于足够大的采样大小,二项分布,可以通过正态分布 近似表示。经验法则 : n>30,np(1-p) >5。

求置信区间的一般方法

中心极限定理:

求解置信区间的一般方法如下,其中,中心极限定理解决了如何求Y得分布的问题:


如果h1在数据的一个样本集上表现优于h2,那么h1 总体上确实更好的概率有多大?

有:

\[\sigma_{\mathrm{d}} \approx \sqrt{\frac{\operatorname{error}_{1}(}{\left(\mathrm{h}_{1}\right)\left(1-\operatorname{error}_{1}\left(\mathrm{~h}_{1}\right)\right)}{\mathrm{n}_{1}}+\frac{\text { error }_{\mathrm{S}_{2}}\left(\mathrm{~h}_{2}\right)\left(1-\text { error }_{2}\left(\mathrm{~h}_{2}\right)\right)}{\mathrm{n}_{2}}} \]

满足概率为 N % ,落在的区间(这里写的是双边):

\[\hat{d} \pm z_N \sqrt{\frac{\text { error }_{1}\left(h_{1}\right)\left(1-\text { error }_{S_{1}}\left(h_{1}\right)\right)}{n_{1}}+\frac{\text { error }_{2}\left(h_{2}\right)\left(1-\text { error }_{S_{2}}\left(h_{2}\right)\right)}{n_{2}}} \]

我们只要考察d>0的概率即可。

举例:

这里d,认为是均值。有:

\[P(d>0) =P(d+0.1\ >\ \hat{d}) =P\left(\hat{d}\ <\ \mu+\frac{0.1}{\sigma_d} \times \sigma_d\right) \]

只要按照单边置信区间查询表格即可。

由以上推导可知,样本数n越大,置信度越高。

这是一种Z估计(又叫U检验)。

Z检验与T检验暂不做介绍。