【发布时间】:2017-12-26 22:40:39
【问题描述】:
我对常用的 K 折交叉验证的实现很像:
K = 10;
CrossValIndices = crossvalind('Kfold', size(B,2), K);
for i = 1: K
display(['Cross validation, folds ' num2str(i)])
IndicesI = CrossValIndices==i;
TempInd = CrossValIndices;
TempInd(IndicesI) = [];
xTraining = B(:, CrossValIndices~=i);
tTrain = T_new1(:, CrossValIndices~=i);
xTest = B(:, CrossValIndices ==i);
tTest = T_new1(:, CrossValIndices ==i);
end
但是为了确保训练、测试和验证数据集具有相似比例的类(例如,20 个类)。我想使用分层抽样 技术。基本目的是避免类不平衡问题。我知道 SMOTE 技术,但我想应用这个。
【问题讨论】:
标签: matlab machine-learning cross-validation sampling