どの特徴量がモデルの出力に寄与しているかを知りたい、ランダムフォレスト

ランダムフォレスト(Random Forest)モデルを使用して、各特徴量がモデルの出力にどの程度寄与しているかを知りたい場合、特徴量の重要度(feature importance)を調べることが一般的です。ランダムフォレストでは、各特徴量の重要度を計算することができます。

NumpyやScikit-learnなどのライブラリを使用してランダムフォレストモデルを構築した場合、feature_importances_属性を使用して各特徴量の重要度を取得できます。この属性により、各特徴量がモデルの予測に与える影響の大きさを示す値を取得できます。

以下は、Scikit-learnを使用してランダムフォレストモデルを構築し、特徴量の重要度を取得する例です。

python
from sklearn.ensemble import RandomForestClassifier import numpy as np # ランダムなデータを生成 X = np.random.rand(100, 10) # 100サンプル, 10特徴量 y = np.random.randint(2, size=100) # 2クラスの分類ターゲット # ランダムフォレストモデルを構築 rf_model = RandomForestClassifier() rf_model.fit(X, y) # 各特徴量の重要度を取得 importances = rf_model.feature_importances_ # 各特徴量の重要度を出力 for i, importance in enumerate(importances): print(f'Feature {i}: Importance = {importance}')

このコードでは、ランダムな特徴量とターゲットを生成し、それらを使用してランダムフォレストモデルを構築しています。feature_importances_属性を使用して、各特徴量の重要度を取得し、それを出力しています。特徴量の重要度が高いほど、その特徴量がモデルの予測に与える影響が大きいことを示します。

未分類

Posted by ぼっち