Как использовать TreeBagger (случайный лес) метод на структуре? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь использовать метод MATLAB TreeBagger, который реализует случайный лес. Мои данные - это структура 25 * 1 с 2 полями (позиция и стоимость). Каждый элемент поля позиции равен 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',... 

enter image description here

...