机器学习(评估方法)

2.留出法:将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,随机划分,重复实验产生多个训练/测试集,取实验平均值。(注:通常,会将D中大约2/3−4/5的样本作为训练集,其余的作为测试集,不然,可能会导致评估结果不够准确稳定。)

3.交叉验证法:将数据集D划分为k个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性,每次用k-1个子集的并集作为训练集,剩余的那个子集作为测试集,这样就可以获得k组训练/测试集,取k个测试结果的均值。

3.1交叉验证法特例(留一法):当数据集D中包含m个样本,令k=m,则得到交叉验证法的一个特例,显然留一法是不受随机样本划分方式的影响。(缺点:当数据集样本比较大时,计算量就会很大)

3.1.0 NFL(No Free Lunch Theorem)定理:无论算法多聪明或笨拙,它们的期望性能是相同的。

比如西瓜问题,考虑{假设1:好瓜(色泽=*)^(根蒂=蜷缩)^(敲声=浊响)}和{假设2:好瓜(色泽=*)^(根蒂=坚硬)^(敲声=清脆)}。从NFL定理可知,这两个假设同样好。我们可以想到例子,对好瓜(色泽青绿、根底蜷缩、敲声浊响)是假设1更好,而对好瓜(色泽乌黑、根蒂硬挺、敲声清脆)则是假设2更好。看上去的确如此。但实际上(根蒂蜷缩敲声浊响)的好瓜很常见,而(根蒂硬挺敲声清脆)的好瓜罕见,甚至不存在。

    所以NFL最重要的意义,是让我们清楚的认识到,脱离具体问题,空泛地谈“什么学习算法更好”毫无意义。因为若考虑所有潜在问题,那么所有学习算法一样好,要谈论算法优劣性,必须针对具体的学习问题。

总结:只要能达到期望,无论算法的快慢,但是我们应该根据具体的问题去具体分析,

4.自助法:即我们每次从数据集D中取一个样本作为训练集中的元素,然后把该样本放回,重复该行为m次,这样我们就可以得到大小为m的训练集,在这里面有的样本重复出现,有的样本则没有出现过,我们把那些没有出现过的样本作为测试集。进行这样采样的原因是每个样本不被采到的概率为1−1m1−1m,那么经过m次采样,该样本都不会被采到的概率为(1−1m)m(1−1m)m,那么取极限有limm→∞(1−1m)m→1e≈0.368limm→∞(1−1m)m→1e≈0.368,因此我们可以认为在D中约有36.8%的数据没有在训练集中出现过 这种方法对于那些数据集小、难以有效划分训练/测试集时很有用,但是由于该方法改变了数据的初始分布导致会引入估计偏差。

总结

  1. 对于数据量充足的时候,通常采用留出法或者k折交叉验证法来进行训练/测试集的划分;
  2. 对于数据集小且难以有效划分训练/测试集时使用自助法
  3. 对于数据集小且可有效划分的时候最好使用留一法来进行划分,因为这种方法最为准确

猜你喜欢

转载自blog.csdn.net/qq_39822872/article/details/82696741