我使用Matlab的統計和機器學習工具箱來創建決策樹,合奏,Knn模型等。我想將我的數據分成訓練/測試分區,然後得到模型訓練並使用訓練數據進行交叉驗證(實質上將訓練數據分解爲訓練數據和驗證數據),同時保留測試數據的錯誤度量。使用測試數據不以任何方式對模型進行訓練是非常重要的。對於我的決策樹,我有類似下面的代碼:Matlab機器學習火車,驗證,測試分區
chess = csvread(filename);
predictors = chess(:,1:6);
class = chess(:,7);
cvpart = cvpartition(class,'holdout', 0.3);
Xtrain = predictors(training(cvpart),:);
Ytrain = class(training(cvpart),:);
Xtest = predictors(test(cvpart),:);
Ytest = class(test(cvpart),:);
% Fit the decision tree
tree = fitctree(Xtrain, Ytrain, 'CrossVal', 'on');
% Error Metrics
testingLoss = loss(tree,Xtest,Ytest,'Subtrees','all'); % Testing
resubcost = resubLoss(tree,'Subtrees','all'); % Training
[cost,secost,ntermnodes,bestlevel] = cvloss(tree,'Subtrees','all'); % Cross Val
但是,試圖找到測試錯誤,當它返回
Undefined function 'loss' for input arguments of
type 'classreg.learning.partition.ClassificationPartitionedModel'.
。我已經嘗試了使用不同類型的分類算法的類似方法的幾種組合,但由於分區數據,不能將測試數據應用於交叉驗證的模型。我應該如何將測試數據應用於交叉驗證模型?