###前提・実現したいこと
ランダムフォレストでは一般的にオリジナルのサンプルから約0.632倍したデータ数を決定木のサンプルとして抽出し、
スコア平均をとって算出していると理解しているのですが、この0.632倍の値を他の値に変えることはできますでしょうか。
0.632倍に関する資料
https://modeling.uconn.edu/wp-content/uploads/sites/1188/2016/05/Optimizing-Random-Forests-propensity-score.pdf
異常検知で外れ値が少ないため、全体的にサンプル数の割合を増やしたランダムフォレストをつくりたいと考えています。
データをirisに置き換えたコードを以下に載せておきます。
コードを動かすとsamplesが150ではなくなり100くらいに、valueもそれぞれ50ぴったりでない状態pngが出力されるのが確認できると思います。
###該当のソースコード
python3.6
1from sklearn.ensemble import RandomForestClassifier 2import pydotplus as pdp 3from sklearn.datasets import load_iris 4from sklearn import tree 5 6 7# irisデータの読み込み 8iris = load_iris() 9 10 11# ランダムフォレスト設定 12rf = RandomForestClassifier() 13rf.fit(iris.data, iris.target) 14 15# フォレスト視覚化 16estimators = rf.estimators_ 17file_name = "./tree_visualization.png" 18dot_data = tree.export_graphviz(estimators[0], # 決定木オブジェクトを一つ指定する 19 out_file=None, # ファイルは介さずにGraphvizにdot言語データを渡すのでNone 20 filled=True, # Trueにすると、分岐の際にどちらのノードに多く分類されたのか色で示してくれる 21 rounded=True, # Trueにすると、ノードの角を丸く描画する。 22 feature_names=iris.feature_names, # これを指定しないとチャート上で特徴量の名前が表示されない 23 class_names=iris.target_names,# これを指定しないとチャート上で分類名が表示されない 24 special_characters=True # 特殊文字を扱えるようにする 25 ) 26graph = pdp.graph_from_dot_data(dot_data) 27graph.write_png(file_name) 28
###補足情報(言語/FW/ツール等のバージョンなど) Python3.6 ライブラリ:sklearn 0.19.1 http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html 乏しい英語力で読んで、色々試したものの分からず… 可視化ツール:Graphviz Graphviz導入時に参考にしたサイト http://own-search-and-study.xyz/2016/08/16/python3%e3%81%a7scikit-learn%e3%81%ae%e6%b1%ba%e5%ae%9a%e6%9c%a8%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%83%95%e3%82%a9%e3%83%b3%e3%83%88%e3%81%a7%e7%94%bb%e5%83%8f%e5%87%ba%e5%8a%9b%e3%81%99%e3%82%8b/ できるならライブラリを使ったやり方で解決したいです… また直接的な解決策でなくても、関連する知見や情報でも助かります。 よろしくお願いいたします。 追記 sklearnのbootstrap=Noneにすることでサンプル数=オリジナルのサンプル数となることまでは試していて、まあ結果も悪くは見えないので十分なのかもしれませんが、0.8倍くらいで試す方法などがあればと思っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/15 08:37
2017/12/15 08:42
2017/12/15 08:42
2017/12/15 08:46