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

mayoko’s diary

プロコンとかいろいろ。

python RandomForestClassifierの重要度を出力する

機械学習

最近ちょっとだけ機械学習を勉強し始めました。教科書には「ランダムフォレストはそれぞれの説明変数の値がどれくらい目的変数を算出するのに重要か」を示す重要度の値を出力を示すことができると書いてあったのですが、pythonではどのようにしてそれを算出できるのかがよくわかりませんでした。
結構調べたところ、次のページが参考になりました。
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html
要するに、次のようなソースコードのようにすれば良いらしいです。

# -*- coding: utf-8 -*-

import numpy as np
from sklearn.ensemble import RandomForestClassifier

from sklearn import datasets

# データセットの読み込み
iris = datasets.load_iris()
X = iris.data
Y = iris.target

# 機械学習
model = RandomForestClassifier()
model.fit(X, Y)

# それぞれの変数の重要度を記述する
print model.feature_importances_


出力結果は以下。

$ python practice.py 
[ 0.06719648  0.03525529  0.48436224  0.41318599]

3つ目と4つ目の変数が重要らしいですね。