10-fold cross-validation

10-fold cross-validation,用来测试精度。是常用的精度测试方法。将数据集分成十分,轮流将其中9份做训练1份做测试,10次的结果的均值作为对算法精度的估计,一般还需要进行多次10倍交叉验证求均值,例如10次10倍交叉验证,更精确一点。
参考文献:
[1] http://ks.cn.yahoo.com/question/1590000871462.html
[2] http://zhidao.baidu.com/question/37942877.html

dbhunter

2008-9-28 11:13:23

/**
*this.samples,this.trainSamples,this.testSamples,this.vcTrainSampleID,this.vcTestSampleID为类成员变量
*this.samples 样本集
*this.trainSamples 训练样本集
*this.testSamples 测试样本集
*this.vcTrainSampleID 训练样本集标号
*this.vcTestSampleID 测试样本集标号
*this.line 样本行数
*n n交叉
*startNum 开始样本标号
*/

CODE:


public void nCorssDivideSample(int n, int startNum) {
   int testSamplesNum = 0;
   int maxSampleNum = this.samples.length;
   int counter = n - 1;
   for (int i = 0; i < maxSampleNum; i++) {
if (i % n == 0) {
testSamplesNum++;
}
   }
   int counterTrain = 0, counterTest = 0;
   this.trainSamples = new Sample[this.line - testSamplesNum];
   this.testSamples = new Sample[testSamplesNum];
   for (int i = 0; i < maxSampleNum; i++) {
if ((counter % n + 1) == n) {
this.testSamples[counterTest++] = this.samples[startNum];
this.vcTestSampleID.add(startNum);
} else {
this.trainSamples[counterTrain++] = this.samples[startNum];
this.vcTrainSampleID.add(startNum);
}
startNum++;
counter++;
startNum = startNum % maxSampleNum;
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值