MatLab的TreeBagger和k-折交叉验证

uplii1fm  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(287)

我正在尝试使用函数CrosVal获取使用TreeBagger创建的模型的5倍交叉验证错误,但我一直收到错误
使用cross val>valFun时出错函数‘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
mwg9r5ms

mwg9r5ms1#

阅读文档很有帮助!:
必须将该功能定义为:
(请注意,它需要3个参数,而不是2个)

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

X训练-X中用作训练预测器数据的观测的子集。该函数使用XTRAIN和YTRAIN来构建分类或回归模型。
Y训练-y中用作训练响应数据的响应的子集。Y系列的行对应于X系列的行中相同的观测结果。该函数使用XTRAIN和YTRAIN来构建分类或回归模型。
Xtest-X中用作测试预测值数据的观测值的子集。该函数使用X检验以及在X序列和Y序列上训练的模型来计算预测值yfit。
Yfit-Xtest中观测值的预测值集合。Yfit值形成一个列向量,其行数与Xtest相同。

相关问题