交叉验证(Cross Validation)

来源:互联网 发布:手机玩gta5的软件 编辑:程序博客网 时间:2024/06/05 10:28

基本思想

       把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。


交叉验证的目的是为了得到可靠稳定的模型。

cross-validation: 一个验证算法是否靠谱(具有可推广到新数据的能力)的主要方法。


统计学更注重理论,追求理论的完整性和模型的精确性,在对样本建立某个特定模型后,用理论去对模型进行各种验证;

机器学习则注重经验,如交叉验证,就是通过不同模型在同一样本上的误差表现好坏,来选择适合这一样本的模型,而不去纠结理论上是否严谨。


将样本分为3部分更合理: 训练集、交叉验证集、测试集更合理。

留意三个集合,training set , validation set, and test set.




subject wise的不会让test集合中的数据进入训练集
record wise则会对于每一个data,使用其他所有的数据作为训练集。
The problem is, that if the algorithm can (implicitly) detect the identity of the person based on the features, it can automatically also “diagnose” the disease.这句说的是如果算法能够看出test set是对应的哪一个样本,那么其就可以判断出这个样本是否 good 。



十折交叉验证 (10-fold cross-validation) 用来测试算法准确性: 将数据集分成十份,轮流将其中9份作为训练数据,1份作为测试数据,进行试验。

  1. 训练集中样本数量必须够多,一般至少大于总样本数的 50%。
  2. 两组子集必须从完整集合中均匀取样。






cross validation只是validation你的模型而已。每次对data set 不同的分割都会导致classification的不同。如果要用cross validation, 你只能把learn到的参数存起来,然后load这组参数对整个data set 做classification. 






原创粉丝点击