[英]How can I get the decision path to specific class type in classification decision tree
假設我創建了一個分類決策樹,如下所示:
HP(1:size(HP), end) = 0; LP(1:size(LP), end) = 1;
% the dt's input & target pop
x = [HP(:,1:end-1); LP(:,1:end-1)]; t = [HP(:,end); LP(:,end)];
dt = fitctree(x,t);
view(dt)
view(dt, 'mode', 'graph');
產出如下:
1 if x2<-21.4866 then node 2 elseif x2>=-21.4866 then node 3 else 1
2 class = 1
3 if x2<20.093 then node 4 elseif x2>=20.093 then node 5 else 0
4 if x1<27.8438 then node 6 elseif x1>=27.8438 then node 7 else 0
5 if x2<39.6866 then node 8 elseif x2>=39.6866 then node 9 else 1
6 if x1<-33.7504 then node 10 elseif x1>=-33.7504 then node 11 else 0
7 class = 1
8 class = 1
9 class = 0
10 class = 1
11 if x2<1.53772 then node 12 elseif x2>=1.53772 then node 13 else 0
12 if x2<-2.50063 then node 14 elseif x2>=-2.50063 then node 15 else 0
13 class = 0
14 if x1<14.2153 then node 16 elseif x1>=14.2153 then node 17 else 0
15 class = 1
16 class = 0
17 class = 1
和
1)如何獲得導致值為“0”的葉子的所有路徑?
2)是否有任何微妙的方法來創建基於決策樹的新實例(除了隨機生成實例和循環直到所需的輸出)? 例如,我想創建一個隨機實例,上面的樹將其分類為'0'
如果您知道決策的結束節點,則可以找到路徑。 你可以從[lable, score, node, cusum] = predict(mdl,x);
獲得結束節點號[lable, score, node, cusum] = predict(mdl,x);
。 如果您想從Treebagger獲取每個樹的節點,那么您需要在每個樹的循環中運行相同的節點。 [lable, score, node, cusum] = mdl.Trees{i}.predict(x);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.