我正试图使用函数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相同行数的列向量。