我正在尝试使用函数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
1条答案
按热度按时间mwg9r5ms1#
阅读文档很有帮助!:
必须将该功能定义为:
(请注意,它需要3个参数,而不是2个)
X训练-X中用作训练预测器数据的观测的子集。该函数使用XTRAIN和YTRAIN来构建分类或回归模型。
Y训练-y中用作训练响应数据的响应的子集。Y系列的行对应于X系列的行中相同的观测结果。该函数使用XTRAIN和YTRAIN来构建分类或回归模型。
Xtest-X中用作测试预测值数据的观测值的子集。该函数使用X检验以及在X序列和Y序列上训练的模型来计算预测值yfit。
Yfit-Xtest中观测值的预测值集合。Yfit值形成一个列向量,其行数与Xtest相同。