読者です 読者をやめる 読者になる 読者になる

おまじないの綴り方

spelling of a logical spell

Python : Scikit-learn の RandomForest の使用サンプル

(過去ブログからの移転記事です)

概要

pythonのscikit-learnでRandomForestを実装するときのシンプルなサンプルが検索しても出てこなかったので、貼ってみる

前提

以下のような形式で学習データ(all.csv)が格納されているものとする

label, feature1, feature2, feature3, ... 

コード

前提を満たすようなcsvファイル(all.csv)があるとき、以下のようなコードでRandomForestによる分類が可能

使いそうなプロパティとメソッド

分類結果を見る

  • model.predict(data)

各クラスに属する確率を見る

  • model.predict_proba(data, label)
  • logで見るなら:model.predict_log_proba(data, label)
  • 以下のような感じでテストデータごとに、各カテゴリに分類される確率が求まる
[[ 0.1  0.9  0.   0. ]
 [ 0.   0.9  0.   0.1]
 [ 0.   0.9  0.   0.1]]

カテゴリの一覧を表示する

  • model.classes_
  • predict_proba()で出力されるカテゴリはこの順番で表示される
  • 上の例の最初のテスト結果で言うとone=0.1, sasara=0.9 他は0
['one' 'sasara' 'takahashi' 'tsuzumi']

各特徴量の分類時の重要度を表示する

  • model.feature_importances_
  • 以下のように1番目の特徴量から順番に重要度が0-1で表示される
[ 0.02616349  0.01496079  0.02817814  0.00678484  0.01055403  0.00706551 ... ]