Создать пень Matlab - PullRequest
       24

Создать пень Matlab

3 голосов
/ 06 декабря 2011

Есть идеи о том, как создать пень дерева решений для использования с бустингом в Matlab? Я имею в виду, есть ли какой-то параметр, который я могу послать в classregtree, чтобы убедиться, что у меня только 1 уровень? Я пробовал обрезку, и это не всегда дает пень (один разрез). Иногда мне удавалось получить только 2 среза (несбалансированное дерево).

Я знаю о ClassificationTree.template и функциях fitensemble, но я хочу написать свой собственный алгоритм повышения, чтобы использовать его с LDA или другими классификаторами, которые не предоставляются fitensemble.

Спасибо

Ответы [ 2 ]

4 голосов
/ 06 декабря 2011

Полагаю, вы можете просто установить параметр minparent равным вашему количеству наблюдений. Используя данные примера радужной оболочки:

>> load fisheriris;
>> t = classregtree(meas,species,...
                 'names',{'SL' 'SW' 'PL' 'PW'}, 'minparent', 150)

t = 

Decision tree for classification
1  if PL<2.45 then node 2 elseif PL>=2.45 then node 3 else setosa
2  class = setosa
3  class = versicolor

Не уверен, но, возможно, будет быстрее кодировать его вручную - особенно если вы все равно добавляете другой пользовательский код. Удачи!

0 голосов
/ 07 декабря 2011

Если t1 - ваше дерево, как возвращает classregtree, я думаю, вы можете создать пень решения t2 с помощью команды

t2 = prune(t1, 'level', max(prunelist(t1)-1));

Это делает то, что вам нужно?

...