このユニットでは、次のトピックについて説明します。
- ランダム フォレストの解釈
- ランダム フォレストのトレーニング
- ランダム フォレストの長所と短所
ランダム フォレストの解釈
ランダム フォレストは、ディシジョン ツリーよりも解釈が複雑です。ランダム フォレストには、ランダムなノイズでトレーニングされたディシジョン ツリーが含まれています。したがって、意思決定ツリー構造の判断は難しくなります。ただし、ランダム フォレスト モデルはいくつかの方法で解釈できます。
ランダム フォレストを解釈する方法の一つは、CART アルゴリズムを使用して決定木をトレーニングして解釈することです。ランダム フォレストと CART はどちらも同じコアアルゴリズムでトレーニングされるため、データセットの「同じグローバルビューを共有」します。このオプションは、シンプルなデータセットや、モデルの全体的な解釈を理解する場合に適しています。
変数の重要度も、解釈性に優れたアプローチです。たとえば、次の表は、国勢調査データセット(Adult とも呼ばれる)でトレーニングされたランダム フォレスト モデルのさまざまな特徴の変数の重要度を示しています。
表 8. 14 個の異なる特徴の変数の重要性。
特集 | 合計スコア | 精度の平均低下 | AUC の平均減少率 | 平均最小深度 | ノード数 | PR-AUC の平均減少率 | Num as root |
---|---|---|---|---|---|---|---|
関係 | 4203592.6 |
0.0045 |
0.0172 |
4.970 |
57040 |
0.0093 |
1095 |
capital_gain | 3363045.1 |
0.0199 |
0.0194 |
2.852 |
56468 |
0.0655 |
457 |
marital_status | 3128996.3 |
0.0018 |
0.0230 |
6.633 |
52391 |
0.0107 |
750 |
年齢 | 2520658.8 |
0.0065 |
0.0074 |
4.969 |
356784 |
0.0033 |
200 |
教育 | 2015905.4 |
0.0018 |
-0.0080 |
5.266 |
115751 |
-0.0129 |
205 |
職業 | 1939409.3 |
0.0063 |
-0.0040 |
5.017 |
221935 |
-0.0060 |
62 |
education_num | 1673648.4 |
0.0023 |
-0.0066 |
6.009 |
58303 |
-0.0080 |
197 |
fnlwgt | 1564189.0 |
-0.0002 |
-0.0038 |
9.969 |
431987 |
-0.0049 |
0 |
hours_per_week | 1333976.3 |
0.0030 |
0.0007 |
6.393 |
206526 |
-0.0031 |
20 |
capital_loss | 866863.8 |
0.0060 |
0.0020 |
8.076 |
58531 |
0.0118 |
1 |
workclass | 644208.4 |
0.0025 |
-0.0019 |
9.898 |
132196 |
-0.0023 |
0 |
native_country | 538841.2 |
0.0001 |
-0.0016 |
9.434 |
67211 |
-0.0058 |
0 |
性別 | 226049.3 |
0.0002 |
0.0002 |
10.911 |
37754 |
-0.0011 |
13 |
人種 | 168180.9 |
-0.0006 |
-0.0004 |
11.571 |
42262 |
-0.0031 |
0 |
ご覧のとおり、変数の重要度の定義が異なるとスケールが異なり、特徴のランキングが異なる可能性があります。
モデル構造から得られる変数の重要度(上記の表の合計スコア、平均最小深度、ノード数、ルートとしての数など)は、ディシジョン ツリー(「カート | 変数の重要度」セクションを参照)とランダム フォレストに対して同様に計算されます。
順列変数の重要度(上記の表の {accuracy, auc, pr-auc} の平均減少など)は、検証データセットを持つ任意の ML モデルで計算できるモデルに依存しない指標です。ただし、ランダム フォレストでは、バリデーション データセットを使用する代わりに、アウトオブバッグ評価で順列変数の重要性を計算できます。
SHAP(SHapley Additive exPlanations)は、個々の予測やモデルごとの解釈を説明するモデル非依存の方法です。(モデルに依存しない解釈の概要については、Molnar の Interpretable Machine Learning をご覧ください)。通常、SHAP の計算はコストがかかりますが、ディシジョン フォレストでは大幅に高速化できるため、ディシジョン フォレストを解釈するうえで適した方法です。
使用例
前回のレッスンでは、tfdf.keras.CartModel
を呼び出して小規模なデータセットで CART 分類ツリーをトレーニングしました。ランダム フォレスト モデルをトレーニングするには、tfdf.keras.CartModel
を tfdf.keras.RandomForestModel
に置き換えます。
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
長所と短所
このセクションでは、ランダム フォレストの長所と短所について簡単に説明します。
長所:
- ランダム フォレストは、決定木と同様に数値特徴量とカテゴリ特徴量をネイティブにサポートしており、多くの場合、特徴量の前処理は必要ありません。
- ディシジョン ツリーは独立しているため、ランダム フォレストは並列でトレーニングできます。したがって、ランダム フォレストをすばやくトレーニングできます。
- ランダム フォレストには、多くの場合優れた結果が得られるデフォルトのパラメータがあります。多くの場合、これらのパラメータをチューニングしてもモデルにほとんど影響しません。
短所:
- ディシジョン ツリーは剪定されないため、サイズが大きくなる可能性があります。100 万ノードを超えるモデルは一般的です。ランダム フォレストのサイズ(および推論速度)が問題になることがあります。
- ランダム フォレストは内部表現を学習して再利用できません。各ディシジョン ツリー(および各ディシジョン ツリーの各分岐)は、データセット パターンを再学習する必要があります。一部のデータセット(特に表形式ではないデータセット(画像、テキストなど))では、このため、ランダム フォレストの結果が他の方法よりも悪くなることがあります。