はじめに
機械学習において、特徴量の重要度は、どの特徴量が目的変数に最も影響を与えるかを理解するための貴重なツールです。この実験では、特徴量の重要度を計算する 2 つの方法:不純度ベースの特徴量の重要度と順列重要度を比較します。タイタニック号のデータセットに対してランダムフォレスト分類器を使用して、2 つの方法の違いを示します。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
データの読み込みと特徴量エンジニアリング
pandas を使ってタイタニック号のデータセットのコピーを読み込みます。また、目的変数と相関のない 2 つのランダムな変数を追加します。OrdinalEncoderとSimpleImputerを使ってデータを前処理します。
ランダムフォレスト分類器の定義と学習
RandomForestClassifierを使ってランダムフォレスト分類器を定義し、前処理済みのデータで学習させます。
モデルの精度を評価する
学習セットとテストセットにおけるランダムフォレスト分類器の精度を評価します。
不純度の平均減少 (MDI) によるツリーの特徴量の重要度
ランダムフォレスト分類器の不純度ベースの特徴量の重要度を計算します。この方法が数値型の特徴量の重要度を過大評価することがわかります。
テストセットにおける順列重要度
ホールドアウトされたテストセットにおけるランダムフォレスト分類器の順列重要度を計算します。この方法が高基数の特徴量に偏っておらず、特徴量の重要度のより良い指標であることがわかります。
学習セットにおける順列重要度
学習セットにおけるランダムフォレスト分類器の順列重要度を計算します。ツリーが過適合する能力が制限されるとき、ランダムな数値型とカテゴリ型の特徴量の重要度が低下することに気付きます。
低容量モデルにおける順列重要度
min_samples_leaf を 20 に設定し、再度ランダムフォレスト分類器を学習します。学習セットとテストセットにおけるランダムフォレスト分類器の順列重要度を計算します。予測に役立たないランダムな数値型とカテゴリ型の特徴量の重要度がさらに低下することに気付きます。
まとめ
この実験では、ランダムフォレスト分類器を使用して、タイタニック号のデータセットにおける不純度ベースの特徴量の重要度と順列重要度を比較しました。不純度ベースの特徴量の重要度は、数値型の特徴量の重要度を過大評価し、高基数の特徴量に偏っていることがわかりました。順列重要度は、特徴量の重要度のより良い指標であり、高基数の特徴量に偏っていません。また、ツリーが過適合する能力を制限することで、予測に役立たない特徴量の重要度を低下させることができることも観察されました。