技术交流QQ群:1027579432,欢迎你的加入!
1.交叉验证
- 简单交叉验证:随机的将样本数据分为两部分(比如:70%的训练集,30%的测试集),然后用训练集来训练模型,在测试集上验证模型及参数。接着,再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后选择损失函数评价最优的模型和参数。
- K折交叉验证(Cross Validation):是一种比较好的可能衡量机器学习模型的统计分析方法,可以有效避免划分训练集和测试集时的随机性对评价结果造成的影响。K折交叉验证会把样本数据随机的分成K份,每次随机的选择K-1份作为训练集,剩下的1份做测试集。当一轮训练完成后,重新随机选择K-1份来训练数据。若干轮(小于K)之后,选择损失函数评价最优的模型和参数。这K个模型在各自验证集上的错误率的平均值作为分类器的评价结果,K一般大于3。
- 留一交叉验证:是第二种情况的特例,此时K等于样本数N,这样对于N个样本,每次选择N-1个样本来训练数据,留一个样本来验证模型预测的好坏。此方法主要用于样本量非常少的情况,比如对于普通适中问题,N小于50时,一般采用留一交叉验证。
- 自助法(bootstrapping):这是一种比较特殊的交叉验证方式,也是用于样本量少的时候。比如现在有N个样本(N较小),每次在这N个样本中随机采集一个样本,放入训练集,采样完后把样本放回。这样重复采集N次,我们得到N个样本组成的训练集。当然,这N个样本中很有可能有重复的样本数据。同时,用没有被采样到的样本做测试集。这样接着进行交叉验证。由于我们的训练集有重复数据,这会改变数据的分布,因而训练结果会有估计偏差。因此,此种方法不是很常用,除非数据量真的很少,比如小于20个。
2.没有免费午餐定理
- 由Wolpert和Macerday在最优化理论中提出的。对于基于迭代的最优化算法,不存在某种算法对所有问题(有限的搜索空间中)都有效。如果一个算法对某些问题有效那么它一定在另外一些问题上比纯随机搜索算法更差。也就是说,不能脱离具体问题来谈论算法的优劣性,任何算法都有局限性,必须具体问题具体分析。没有免费午餐定理对于机器学习算法同样适用。不存在一种机器学习算法适合于任何领域或任务。
3.丑小鸭定理
- 1969年由渡边慧提出的,"丑小鸭和白天鹅之间的区别一样大"。因为世界上不存在相似性的客观标准,一切相似性的标准都是主观的。如果以体型大小的角度来看,丑小鸭和白天鹅的区别大于两只白天鹅的区别;但是如果以基因的角度来看,丑小鸭与它父母的差别要小于其他白天鹅之间的差别。
4.奥卡姆剃刀原理
- 由14世纪逻辑学家William of Occam提出的一个解决问题的原则:“如无必要,务增实体”。奥卡姆剃刀的思想和机器学习上正则化思想十分相似:简单模型的泛化性能更好。如果有两个性能相近的模型,我们应该选择更简单的模型。因此,在机器学习的学习准则上,我们经常会引入正则化来限制模型能力,避免过拟合。
5.归纳偏置
- 机器学习中,很多学习算法经常会对学习的问题做一些假设,这些假设就称为归纳偏置(Inductive Bias)Mitchell 1997。比如在KNN中,我们会假设在特征空间中,一个小的局部区域中的大部分样本都属于同一类。在朴素贝叶斯分类器中,我们会假设每个特征的条件概率是相互独立的。归纳偏置在贝叶斯学习中也经常被称为先验。