我正在嘗試使用函式 crossval 獲取使用 TreeBagger 創建的模型的 5 倍交叉驗證錯誤,但我一直收到錯誤
使用 crossval>evalFun 時出錯函式“regrTree”產生以下錯誤:輸入引數過多。
我的代碼如下。誰能指出我正確的方向?謝謝
%Random Forest
%%XX is training data matrix, Y is training labels vector
XX=X_Tbl(:,2:end);
Forest_Mdl = TreeBagger(1000,XX,Y,'Method','regression');
err_std = crossval('mse',XX,Y,'Predfun',@regrTree, 'kFold',5);
function yfit_std = regrTree(Forest_Mdl,XX)
yfit_std = predict(Forest_Mdl,XX);
end
uj5u.com熱心網友回復:
閱讀檔案有很大幫助!:
該函式必須定義為:
(請注意,它需要 3 個引數,而不是 2 個)
function yfit = myfunction(Xtrain,ytrain,Xtest) % Calculate predicted response ... endXtrain - X 中用作訓練預測資料的觀察子集。該函式使用 Xtrain 和 ytrain 來構建分類或回歸模型。
ytrain - y 中的回應子集,用作訓練回應資料。ytrain 的行對應于 Xtrain 的行中的相同觀察值。該函式使用 Xtrain 和 ytrain 來構建分類或回歸模型。
Xtest - X 中用作測驗預測資料的觀察子集。該函式使用 Xtest 和在 Xtrain 和 ytrain 上訓練的模型來計算預測值 yfit。
yfit - Xtest 中觀測值的一組預測值。yfit 值形成一個列向量,其行數與 Xtest 相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/505851.html
