• 机器学习基石笔记-Lecture 15 Validation


    本节讲如何做模型选择。

    对一个问题我们有M个模型,它们分别对应M个假设空间以及相应的算法。如何选择出一个最好的模型呢?

    通过之前讲到的overfitting,我们知道Ein最好的不一定Eout好,但是我们其实是希望选出来的模型在Eout上表现尽可能好。

    如果我们有额外的test数据,在test上的Etest则可以近似的看做Eout。

    这些额外的数据从哪里来呢?一个方法是把现有的样本划分为train和validation, 用validation的Eval来估计Eout.

    选出在validation上表现最好的模型,然后再将全部的样本丢进去训练,得到g*,因为样本增多了,理论上应该是比当时的g- 更好的。

    如何选择validation的大小呢?

    如果K过小,那么Eval对Eout的估计可能就不好,如果K过大,那么train的样本过少,训练出来的g- 与g可能差的就比较多,Eout就不能通过Eout(g-)来反映了。

    通常选择1/5的样本量作为validation.

    leave-one-out cross validation

    N个样本,每次留一个作为validation, N-1个用于训练。这样进行N此,得到N个不同的 g- ,对每个g-在validation上的error做平均,那么可以看成这个模型的Eout.

    Eloocv的期望理论上可以反映Eout(g-)的期望,某种程度也反映了Eout(g),所以Eloocv是一个好的衡量模型的方法。

    在上述推导中,个人理解这个部分像是全期望公式一样,首先固定Dn,对全部的(xn,yn)有一个期望,然后再对全部的Dn有一个期望。

    V-fold cross validation

    loocv的一个缺点是计算量过多,所以用了等分V份的方式来做cross validation。

     
  • 相关阅读:
    ubuntu切换到root
    ubuntu vim退出时出错
    easy_install和pip的安装及使用
    Swap file "/etc/.hosts.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it,
    ERROR 2003 (HY000): Can't connect to MySQL server on 'ip地址' (110)
    Android-PullToRefresh(一)
    Android Exception 6 (adapter is not modified from a background thread)
    Android Exception 5(startActivityForResult & singleTask)
    【协议篇】UDP
    【协议篇】TCP
  • 原文地址:https://www.cnblogs.com/akanecode/p/7054671.html
Copyright © 2020-2023  润新知