[林轩田]15-验证法

来源:互联网 发布:金融类游戏知乎 编辑:程序博客网 时间:2024/06/14 01:06

  • 模型选择
    • 模型选择的因素
  • 验证资料的选择 validation set Dval
    • Ein与Eval
    • 数据分块的办法
    • k的选择
  • 留1法做交叉验证
    • 留一法
  • k-fold 交叉验证
    • 总结
  • 其他资料

模型选择

模型选择的因素

演算法选方面选择:PLA, pocket, linear regression, logistic regression
iteration的次数:100,1000
每步大小: 1,0.01
特征transform: linear线性的、quadratic二次的,poly-10 10次多项式,legendre-poly-10 10次垂直多项式。
regulation选什么: L2 regularizeer L2范数,L1范数,对称范数。。。
规范化的权重λ 0,0.01,1

验证资料的选择 validation set Dval

Ein与Eval

如果用训练样本做验证,其实是被污染了的资料,因为你在训练模型的时候已经使用了这些资料
如果使用测试样本做验证,那就不好了,因为这些测试样本给你的话,以后判定的指标就不准了呀。

所以可以在训练之前拿出一部分样本做测试。这些样本不参与训练;

Paste_Image.png

数据分块的办法

所以我们现在把数据分成了两部分,k的那部分用来做验证,也就是计算Eval,N-k那部分用来训练模型。而在我们选择模型的时候,就不需要计算Ein了,而是计算Eval,以此来估计当前模型的Eout。
Paste_Image.png

我们的finite hoffding不等式来计算Eout

Paste_Image.png

选出合适的Gm之后还要用所有的资料重新来一次训练。
Paste_Image.png

k的选择

有当test_data很小,train_data接近D时,才差不多。
一般情况下,我们的test_data选取总数据的20%.即N/5 .

Paste_Image.png

留1法做交叉验证

留一法

留一个作为test_data,其余都作为train_data.循环N次,再把N个error取平均.
Paste_Image.png

Paste_Image.png

cross validation: 交叉验证指的是同一笔资料有时候当验证有时候当训练样本,最后取平均。

该方法理论上很好,但是实际上,并不常用.一般再数据量很小的时候用.

缺点有:
1.可能计算量很大
2.稳定性不是很好,因为每次仅仅留一个点作为test_data

k-fold 交叉验证

一般K取10. 也有取5的.k越大,越精确.但是运算量大.

总结

  1. 交叉验证其实对结果还是有一些乐观成分.
  2. 只要计算量允许,就用10折交叉验证,10折效果一般比5折好.
  3. cross validation 比single validation(普通验证法) 好,只要计算量允许,一定要用cross validation

其他资料

[验证法:如何选择模型,参数等 - 丁磊_ml的博客 - 博客频道 - CSDN.NET]
(http://blog.csdn.net/mosbest/article/details/52191916)

0 0
原创粉丝点击