2017-03-08 15 views
2

私は1672x6のデータを持っています。私はその中のいくつかを絵に入れました。デシジョンツリーの結果セット

enter image description here ここで、x値はA1 A2 A3 A4 A5 A6であり、y値はB1 B2 .... B1672である。

決定木を生成しながら、私は、次のコードを使用:

vars = {'A1', ' A2 ','A3',' A4 ','A5',' A6'} 
x = [A1 A2 A3 A4 A5 A6]; 
y = [B]; 
t = classregtree(x, y, 'method','classification', 'names',vars, ... 
       'categorical',[2 4], 'prune','off'); 
view(t) 

、それは私がその値より大きい値を取得したい

enter image description here

のような超クレイジーな木を生成し、私が与えた。私が言うとき:

inst = [3 2.3 2 0 1 0]; 
prediction = eval(t, inst) 

それは私だけ(B271のような)B値を与える変数が、私は、このようなA1>3 A2>2.3 A3>2 A4>0 A5>1 A6>0などinst変数よりも大きな値を持つすべてのBの変数を取得したいことを持っています。どうすれば入手できますか?次は、そのようなすべての行を出力する簡単なコードで、instより大きいすべての行を検索したい場合は決定木見つけたい行

+0

は、なぜあなたは決定木が必要なのでしょうか? 'inst'よりも大きい行だけを取得したいと思うようです。または、意思決定ツリーを使用する必要がありますか? – smttsp

答えて

0

あなたは二つのことを混同しているように見えます。

for i = 1:size(B,1) 
    if all(a(i,:)>inst)==1 
     i, 
    end 
end 

しかし、決定木は全く別の話題です。 決定木には、一連の条件(あなたの場合はA1〜A6)とトレーニング用の行(B1〜B1672)とそのそれぞれの結果があります。新しいテストケースが問い合わせされると、マシンはすべての結果から最良の結果を決定します。

いくつかの決定ツリーtotorials:12wikipedia