matlab中划分训练集,验证集,测试集的代码
时间: 2024-03-28 13:34:44 浏览: 109
在MATLAB中,可以使用`cvpartition`函数来划分训练集、验证集和测试集。下面是一个示例代码:
```matlab
% 假设有一个包含100个样本的数据集
data = 1:100;
% 设置划分比例
trainRatio = 0.6; % 训练集比例
valRatio = 0.2; % 验证集比例
testRatio = 0.2; % 测试集比例
% 使用cvpartition函数进行划分
c = cvpartition(length(data), 'HoldOut', 1 - trainRatio);
trainIdx = training(c); % 训练集索引
testIdx = test(c); % 测试集索引
% 使用cvpartition函数进行划分验证集
c2 = cvpartition(sum(trainIdx), 'HoldOut', 1 - valRatio);
trainIdx(trainIdx) = training(c2); % 更新训练集索引
valIdx = trainIdx & ~training(c2); % 验证集索引
% 根据索引获取划分后的数据集
trainData = data(trainIdx);
valData = data(valIdx);
testData = data(testIdx);
```
上述代码中,首先定义了一个包含100个样本的数据集`data`。然后通过`cvpartition`函数进行划分,其中使用`'HoldOut'`方法指定了按比例划分。通过`training`和`test`方法可以获取训练集和测试集的索引。接着,再次使用`cvpartition`函数对训练集进行划分,得到验证集的索引。最后,根据索引获取划分后的数据集。
阅读全文