Matlab 的 TreeBagger 和 k 折叠交叉验证



我正试图使用函数crossval获得用TreeTag创建的模型的5倍交叉验证错误,但我一直得到错误

使用crossval时出错>evalFun函数"regatree"生成了以下错误:输入参数太多。

我的代码如下。有人能给我指正确的方向吗?感谢

%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

阅读文档帮助很大!:

功能必须定义为:

(注意,它需要3个参数,而不是2个(

function yfit = myfunction(Xtrain,ytrain,Xtest)
% Calculate predicted response
...
end

Xtrain——用作训练预测器的X中的观测子集数据该函数使用Xtrain和ytrain来构造分类或回归模型。

ytrain——y中用作训练响应数据的响应子集。ytrain的行对应于Xtrain。该函数使用Xtrain和ytrain来构造分类或回归模型。

Xtest——X中的观测值子集,用作测试预测数据。该函数使用Xtest和在Xtrain和ytrain上训练的模型计算预测值yfit。

yfit——Xtest中观测值的预测值集。yfit值形成具有与Xtest相同行数的列向量。

最新更新