2011-12-06 6 views
3

Matlabのブースティングで使用するためのデシジョンツリーの切り株を作成する方法については、私はclassregtreeに送ることができるいくつかのパラメータが1つのレベルで終わることを確認していますか?私は枝刈りを試みたが、必ずしも切り株(シングルカット)を与えるわけではない。時々私は2つのカット(アンバランストリー)を得ることができました。ツリースタンプMatlabを作成する

私はClassificationTree.templateとfitensemble関数を認識していますが、LDAやfitensembleで提供されていない他の分類子で使用するための独自のブースティングアルゴリズムを作成したいと思います。私はあなただけの観測のあなたの数に等しいminparentパラメータを設定することができると信じて

おかげ

答えて

4

>> 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 

はわからないが、最終的にそれを手動でコーディングするより速いかもしれ - あなたはとにかく他のカスタムコードを組み込んでいる場合は特に:アイリス例のデータを使用。がんばろう! classregtreeで返されるt1もし

+0

ありがとう、それは素晴らしい作品です。 – omarzouk

+0

実際には、時にはそれはまったく切断されません。つまり、ツリーはルートノードのみで作成されます。S – omarzouk

+0

うーん...あなたが投稿できる小さな例はありますか?そうでない場合は、他のオプション(http://www.mathworks.com/help/toolbox/stats/classregtree.html)を試してみてください。一例として、リスクが等しく、「mergeleaves」がデフォルト(「on」)のまま残っている場合、私はカットがあるとは思わない。 –

0

は、私はあなたがそれはあなたが必要なものをやるんコマンド

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

で決定切り株t2を作成することができると思い、あなたの木ですか?

+1

まあ1 - それは効率的ではありませんし、2 - それは木が不均衡である場合、プルーンは1つの側を他の側に優先するかもしれないので、私は左の枝に1つの分割がある木で終わりますが、私は1つのレベルを増やし、私はルートノードで終わる。マージをオフにしても問題が解決するかどうかはわかりません。しかし、提案をありがとう:-) – omarzouk

関連する問題