2016-11-08 2 views
0

私が建てdecisiontree、例にsklearn使用:sklearn-decisiontreeclassifierを使用しているときに「なし」を処理するにはどうすればいいですか?

clf = tree.DecisionTreeClassifier() 
clf = clf.fit(X,Y) 
result = clf.predict(testdata) 

Xは、どのようにそれを行うには、「なし」Xに存在しない場合、トレーニング入力サンプルですが?それは与えられた不純物関数(エントロピー、ジニ指数を最小にするために、ツリーの各ノードに分割を行うため

+0

通常、データのすべてのエントリは数値タイプである必要があります。欠けている値を扱う1つの方法は、それらをただただ入力することです。必要に応じて、特定の列に帰属する行をコード化した新しいブール変数を作成してください。 – Quickbeam2k1

答えて

0

ディシジョンツリーと(例えば木に基づく)ランダムフォレストようなアンサンブルの方法は、数値データを受け入れます。 ..)

あなたのデータにいくつかのカテゴリ機能またはNanがある場合、学習ステップでエラーが発生します。

に回避この:

  • 数値データにカテゴリデータを変換します。たとえばワンホットエンコーダをこの使用を行うこと。 Heresklearnのドキュメントへのリンクです。

警告:あなたはカテゴリの多くの機能(例えばID機能)OneHotEncodingをお持ちの場合はメモリの問題につながる可能性があります。そのような機能をエンコードしないようにしてください。

  • インプット一部の値は欠落値です。多くの戦略が存在する(平均、中央値、最も頻繁...)。 Heresklearnのドキュメントへのリンクです。

前処理を実行すると、デシジョンツリーをデータに合わせることができます。

+0

ありがとう〜 – tfaufo

+0

歓迎です;) – MMF

関連する問題