簡體   English   中英

Matlab決策樹

[英]Matlab decision tree

我正在嘗試制定決策樹,但結果卻很奇怪,我無法弄清楚哪里出了問題。 有七個變量,我分別使用1或2來表示它們的含義,例如,對於變量1,數字1是溫暖的,而2是寒冷,對於變量2,數字1是是的,而2是否。

vars = {'TEMP' 'SKIN' 'BIRTH' 'AQUATIC' 'AERIAL' 'LEGS' 'HIBER'};
x = [1 1 1 2 2 1 2
     2 2 2 2 2 2 1
     2 2 2 1 2 2 2
     1 1 1 1 2 2 2
     2 1 2 1 2 1 1
     2 2 2 2 2 1 2
     1 1 1 2 1 1 1
     1 1 2 2 1 1 2
     1 1 1 2 2 1 2
     2 2 1 1 2 2 2
     2 2 2 1 2 1 2
     1 1 2 1 2 1 2
     1 1 1 2 2 1 1
     2 2 2 1 2 2 2
     2 1 2 1 2 1 1];
s = {'M';'R';'F';'M';'A';'R';'M';'B';'M';'F';'R';'B';'M';'F';'A'};
y = cellstr(s);
t = classregtree(x, y, 'method','classification', 'names',vars,...
                 'categorical',[1 7], 'prune','off');
view(t) 

結果只是一個步驟樹而沒有其他信息。 這有什么問題?

無論如何,我不是決策樹方面的專家,只是在使用classregtree的參數( minparent ,是minparent ):

vars = {'TEMP' 'SKIN' 'BIRTH' 'AQUATIC' 'AERIAL' 'LEGS' 'HIBER'};

x = [1 1 1 2 2 1 2
     2 2 2 2 2 2 1
     2 2 2 1 2 2 2
     1 1 1 1 2 2 2
     2 1 2 1 2 1 1
     2 2 2 2 2 1 2
     1 1 1 2 1 1 1
     1 1 2 2 1 1 2
     1 1 1 2 2 1 2
     2 2 1 1 2 2 2
     2 2 2 1 2 1 2
     1 1 2 1 2 1 2
     1 1 1 2 2 1 1
     2 2 2 1 2 2 2
     2 1 2 1 2 1 1];

y = {'M';'R';'F';'M';'A';'R';'M';'B';'M';'F';'R';'B';'M';'F';'A'};

t = classregtree(x,y,'method','classification','Names',vars, ...
    'categorical',[1 7],'prune','off','minparent',1);

view(t);

我已經能夠重現看起來不錯的東西。 無論如何,因為Matlab的發布2011A, classregtree已經過時並已被取代fitrtree (RegressionTree)和fitctree (ClassificationTree)功能( classregtree正在只能保持retrocompatibility原因)。 我建議您更新代碼並改用這些功能:

t = fitctree(x,y,'PredictorNames',vars, ...
    'CategoricalPredictors',{'TEMP' 'HIBER'},'Prune','off','MinParentSize',1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM