在MATLAB中,如何使用分区模型进行分类或回归?

在MATLAB中,如何使用分区模型进行分类或回归?,matlab,cross-validation,Matlab,Cross Validation,交叉验证模型似乎不能与预测功能一起使用。如何使用带有测试集的模型?例如: ens = fitcecoc(X, T, 'KFold', 10) 直接使用predict函数会产生错误,MATLAB文档解释了为什么它会产生错误。ens是一个具有10个不同分类器的分区模型。我们是否应该使用每个分类器运行predict,然后使用最大一致性的类?另外两个类似的问题还没有得到答案,所以我想我会用找到的解决方案回答我自己的问题。MATLAB K-Fold交叉验证产生K个不同的分类器或回归器。它们是通过保留部分

交叉验证模型似乎不能与预测功能一起使用。如何使用带有测试集的模型?例如:

ens = fitcecoc(X, T, 'KFold', 10)

直接使用predict函数会产生错误,MATLAB文档解释了为什么它会产生错误。ens是一个具有10个不同分类器的分区模型。我们是否应该使用每个分类器运行predict,然后使用最大一致性的类?

另外两个类似的问题还没有得到答案,所以我想我会用找到的解决方案回答我自己的问题。MATLAB K-Fold交叉验证产生K个不同的分类器或回归器。它们是通过保留部分数据生成的(保留操作是随机的,因此,如果数据集不平衡,请小心)。为了预测输出类,您可以迭代所有经过训练的K模型,并使用mode获得准确的类

cv_Ensemble = crossval(Ensemble_Model, 'KFold', 10);

classIdx = zeros(N, length(cv_Ensemble .Trained));

for p = 1:length(cv_Ensemble .Trained)
      [temp, ~] = predict(cv_Ensemble.Trained{p}, Data_f);
      classIdx(:, p) = temp;
end

classIdx = mode(classIdx, 2)