Cross Validation

  1. 什么是Cross Validation?

    假设目前已有的数据集全集为D,从中选出一部分作为交叉验证集。

    其余集作为训练集,将已有的模型A1A_1在训练集上训练,在验证集上得到Error1Error_1,再轮换选出另一部分作为验证集,重复。得到E(A1)\overline{E(A_1)},对模型A2A_2同样操作,得到E(A2)\overline{E(A_2)},最终选出E\overline{E}最小的模型A,在全集上训练,得到最终的矩 g 。

  2. 为什么需要Cross Validation?

    我们已经有了很多的机器学习模型,linear regression,PLA,Pocket,Logistic,同时每种模型又有各种超参数,是否加regularization,learning-rate,Logistic的维数,从中如何选择合适的模型成了重点,因此需要一种评判优劣的标准,如果都在全集上训练,测试,可能无法做到泛化。而留出一部分未被污染的数据作为测试,更客观。

  3. 如何使用Cross Validation?

    1. 将全集分为几部分,常常分为5或10.
    2. 选出一部分作为验证集,取一个模型在其余数据上训练。
    3. 在验证集上得到 Error1Error_1
    4. 轮流去其余部分作为验证集,重复 b,c
    5. 得到对应于该模型的 E(Ai)=1Nn=1NErrorn\overline {E(A_i)}=\frac{1}{N}\sum_{n=1}^N Error_n
    6. 对于其余模型,重复a, b, c, d, e
    7. 比较所有模型的 E(A)\overline {E(A)} 选出最小的作为最终模型 AA^*.
    8. 在全集上训练AA^*,得到合适的参数。确定最终的矩 g .