在MATLAB中使用交叉验证函数的方法

这周忙着赶毕业论文,发个前段时间用到的在MATLAB中使用交叉验证函数的方法吧。
交叉验证是一种随机循环验证方法,它可以将数据样本随机分割成几个子集。交叉验证主要用于评估统计分析或机器学习算法的泛化能力等。
在评估机器学习算法的泛化能力时,我们可以选择随机分割后的一部分数据作为训练样本,另一部分作为测试样本。具体实现流程如下:

Data = rand(9,3);%创建维度为9×3的随机矩阵样本
indices = crossvalind('Kfold', 9, 3);%将数据样本随机分割为3部分
for i = 1:3 %循环3次,分别取出第i部分作为测试样本,其余两部分作为训练样本
    test = (indices == i);
    train = ~test;
    trainData = Data(train, :);
    testData = Data(test, :);
end

相应输出结果:
生成的随机矩阵Data:
生成的随机矩阵
indices数据,即分成的三类,数字相同表示对应的行数为同一类:
这里写图片描述
当i=3时的test数据:
这里写图片描述
对应的train数据(即对test取反):
这里写图片描述
testData(即test数据中‘1’所对应的行的数据)
这里写图片描述
trainData:
这里写图片描述
结束,欢迎交流学习!

  • 31
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值