我正在尝试使用MATLAB的TreeBagger
方法,该方法实现了一个随机森林。我的数据是一个具有2个字段(位置和成本)的25 * 1结构。位置字段的每个元素为56 * 3,成本的每个元素为1 * 2。 “位置”字段为“培训X”,“成本”字段为“培训Y”。
如何使用TreeBagger
方法?
我写了这段代码:
for m = 1 : 2
for q=1:25
fitness(q,m)=subpop(q,:).cost(1,m);
end
M1 = TreeBagger(1,
[subpop.position],fitness(:,m),'Method','regression','Surrogate','on',...
'oobvarimp','on','OOBPred','on');
imp(m,:) = M1.OOBPermutedVarDeltaError;
end
但是我遇到了以下错误:
Error using classreg.learning.FullClassificationRegressionModel.prepareDataCR (line 138)
X and Y do not have the same number of observations.
Error in classreg.learning.regr.FullRegressionModel.prepareData (line 104)
[X,Y,W,dataSummary] = ...
Error in TreeBagger/init (line 1198)
[bagger.X,bagger.Y,bagger.W,bagger.DataSummary] = ...
Error in TreeBagger (line 531)
bagger = init(bagger,X,Y,makeArgs{:});
Error in test_980305 (line 199)
M1 =
TreeBagger(1,[subpop.position],fitness(:,m),'Method','regression','Surrogate','on',...