2016-09-26 2 views
2

私はscikit-learnで決定木を構築しています。 stackoverflowを検索すると、各リーフに関連付けられたルールを抽出する方法を見つけることができます。今私の目標は、これらのルールを新しい観測に適用し、新しい観測がどの葉で終了するかを確認することです。sciki-learn決定木から学習したルールを適用する方法

ここは抽象的な例です。葉#1のルールがあるとします。 a < 5およびb> 7である場合、観察はリーフ#1に属する。今私は新しい観察をして、これらのルールを適用して、どの葉が終わるかをチェックしたいと思います。

私はセグメンテーションの目的でディシジョンツリーを使用しようとしています。

+0

公式サイトの文書では不十分ですか? http://scikit-learn.org/stable/modules/tree.html – Mai

+0

@Mai graphvizを使った視覚化はルールについての考え方を示しますが、これらのルールを手動でプログラムして新しい観測に使用する必要があります葉)。私は自動的に決定木から関数を抽出することを望んでいます。これは手作業によるコーディングを排除します。ツリーが小さいときは手動でコーディングするのが良いですが、サイズが大きいときはほとんど不可能です。 – user1700890

+1

_tree属性の使用はどうですか?私はあなたが_tree属性がどのように使われているかを見てそこから行くためにソースコードを調べることができると思います。私はあなたの問題をかなり得ていません。多少の説明が役に立つかもしれません。 – Mai

答えて

1

DecisionTreeClassifierの方法を使用すると、各サンプルが予測されるhteリーフのインデックスを取得できます。

from sklearn.tree import DecisionTreeClassifier 
clf = DecisionTreeClassifier() 
clf.fit([[1,2,3],[10,19,20],[6,7,7]],[1,1,0])  
clf.apply([[6,7,7]]) 
# array([3]) 
+0

あなたは絶対に正しいです、私はそれについて知っていました。私は私の心を失っていると思う。ありがとうございました! – user1700890

+0

私はあなたの質問を見るまで、実際に私はこれについて知らなかったので、何か新しいことを学んだ;) – maxymoo

1

scikit learnとのデシジョンツリークラシファイアを使用する例は、hereです。この例では、分類器をトレーニングし、第2のデータセットの結果を検証する。それに訓練された決定木を適用する際に

predict functionは、新たなデータサンプルの結果を返すために使用することができます。

predict(X, check_input=True) 

Xは、検査中の新しいデータサンプルの特徴ベクトルです。

This linkデシジョンツリークラシファイアのルールを出力する方法を理解するのに役立つかもしれません。

関連する問題