1

現在、私のコードは次のようになります。

clf = RandomForestClassifier(n_estimators=10, criterion='entropy')
clf = clf.fit(X, Y)

ただし、X は次のような配列です。

X = [[0, 1], [1, 1]]

X を次のように使用したいと思います。

X = [{'avg': 0, 'stddev': 1}, {'avg': 1, 'stddev': 1}]

単純に、ツリーをプロットする (ここで説明されているように: http://scikit-learn.org/stable/modules/tree.html#classificationX[0]['avg'] )よりも読む方がはるかに理にかなっているからですX[0][0]。出来ますか?辞書またはパンダを使用していますか?

4

3 に答える 3

2

または、 を使用するときに機能名を指定できますexport_graphviz。これにより、テスト ノードでより意味のあるラベルを持つツリーが生成されます。

http://scikit-learn.org/dev/modules/generated/sklearn.tree.export_graphviz.html#sklearn.tree.export_graphvizfeature_namesのパラメーターを参照してください

于 2013-10-16T13:00:02.030 に答える
2

これは、機能辞書を構築し、データにモデルを適合させる前に DictVectorizer を使用する方法に関する「larsmans」による優れた例ですDictVectorizer クラスはデフォルトで (numpy.ndarray の代わりに) scipy.sparse 行列を使用して、結果のデータ構造がメモリに収まるようにすることに注意してください。すべての sklearn 学習モデルが疎行列をサポートしているわけではないため、コンストラクターで sparse=False オプションを使用して密な配列を取得することをお勧めします。

dv = DictVectorizer(sparse=False)
于 2013-10-14T16:29:29.657 に答える