その他のトピック

このユニットでは、次のトピックについて説明します。

  • ランダム フォレストの解釈
  • ランダム フォレストのトレーニング
  • ランダム フォレストの長所と短所

ランダム フォレストの解釈

ランダム フォレストは、ディシジョン ツリーよりも解釈が複雑です。ランダム フォレストには、ランダムなノイズでトレーニングされたディシジョン ツリーが含まれています。したがって、意思決定ツリー構造の判断は難しくなります。ただし、ランダム フォレスト モデルはいくつかの方法で解釈できます。

ランダム フォレストを解釈する方法の一つは、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 モデルで計算できるモデルに依存しない指標です。ただし、ランダム フォレストでは、バリデーション データセットを使用する代わりに、アウトオブバッグ評価で順列変数の重要性を計算できます。

SHAPSHapley Additive exPlanations)は、個々の予測やモデルごとの解釈を説明するモデル非依存の方法です。(モデルに依存しない解釈の概要については、Molnar の Interpretable Machine Learning をご覧ください)。通常、SHAP の計算はコストがかかりますが、ディシジョン フォレストでは大幅に高速化できるため、ディシジョン フォレストを解釈するうえで適した方法です。

使用例

前回のレッスンでは、tfdf.keras.CartModel を呼び出して小規模なデータセットで CART 分類ツリーをトレーニングしました。ランダム フォレスト モデルをトレーニングするには、tfdf.keras.CartModeltfdf.keras.RandomForestModel に置き換えます。

model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)

長所と短所

このセクションでは、ランダム フォレストの長所と短所について簡単に説明します。

長所:

  • ランダム フォレストは、決定木と同様に数値特徴量とカテゴリ特徴量をネイティブにサポートしており、多くの場合、特徴量の前処理は必要ありません。
  • ディシジョン ツリーは独立しているため、ランダム フォレストは並列でトレーニングできます。したがって、ランダム フォレストをすばやくトレーニングできます。
  • ランダム フォレストには、多くの場合優れた結果が得られるデフォルトのパラメータがあります。多くの場合、これらのパラメータをチューニングしてもモデルにほとんど影響しません。

短所:

  • ディシジョン ツリーは剪定されないため、サイズが大きくなる可能性があります。100 万ノードを超えるモデルは一般的です。ランダム フォレストのサイズ(および推論速度)が問題になることがあります。
  • ランダム フォレストは内部表現を学習して再利用できません。各ディシジョン ツリー(および各ディシジョン ツリーの各分岐)は、データセット パターンを再学習する必要があります。一部のデータセット(特に表形式ではないデータセット(画像、テキストなど))では、このため、ランダム フォレストの結果が他の方法よりも悪くなることがあります。