交叉验证等验证方法

一.交叉验证法
1.“交叉验证法”(cross validation)先将数据集D划分为k个大小相似的互斥子集,即D=D1并D2并D3…并Dk,每个子集之间没有交集。
2.然后每次用k-1个子集的并集作为训练集,余下的那个作为测试集,这样得到k组训练/测试集。
3.可以进行k次训练和测试,最终返回的是这k个结果的均值。
4.可以随机使用不同的划分多次,比如10次10折交叉验证
通常把交叉验证法称为“k折交叉验证”(k-fold cross validation),k最常用的取值是10,为10折交叉验证

二.留出法
“留出法”(hold out)直接将数据集D划分为两个互斥的集合。其中一个集合作为训练集S,另一个集合作为测试集T,即D=S并T,S交T=空集。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。
需要注意的是,训练/测试集的划分要尽可能保持数据分布的一致性。从采样的角度看待数据集的划分过程,则保留类别比例的采样方式称为“分层采样”

三.自助法
“自助法”(bootstrapping)是一个比较好的解决方案,以自助采样为基础,给定包含m个样本的数据集D,进行采样得数据集D’:每次随机从D中挑选一个样本,copy放入D’,并将样本放回初始数据集D中,使得该样本在下次采样还可能被采样到。该过程重复m次,得到包含m个样本的数据集D’。
将D’用作训练集,D/D‘用作测试集,每次使用m个训练样本,仍有约1/3没在训练集中出现用于测试,称为“包外估计”。对于数据集较小的样本较好。

猜你喜欢

转载自blog.csdn.net/JasonZhangOO/article/details/69053350