その他のトピック

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

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

ランダム フォレストの分析

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

ランダム フォレストを解釈する方法の一つは、CART アルゴリズムを使用して決定木をトレーニングして解釈することです。ランダム フォレストと CART はどちらも同じコア アルゴリズムでトレーニングされるため、データセットの同じグローバル ビューを共有します。このオプションは、単純なデータセットで、モデルの全体的な解釈を理解するのに役立ちます。

変数の重要度も、解釈可能性の優れたアプローチの 1 つです。たとえば、次の表は、国勢調査データセット(アダルトとも呼ばれます)でトレーニングされたランダム フォレスト モデルのさまざまな特徴の重要度の重要度を示しています。

表 8. 14 種類の特徴の重要度の変動

特集 合計スコア 平均精度低下 AUC の平均減少率 平均最小深度 ノード数 PR-AUC の平均減少率 root としての数値
関係

4203592.6

0.0045

0.0172

4.970

57040

0.0093

1095

Capital_gain

3363045.1

0.0199

0.0194

2852

56468

0.0655

457

marital_status

3128996.3

0.0018

0.0230

6.633

52391

0.0107

750

年齢

2,520,658.8

0.0065

0.0074

4.969 人

356784

0.0033

200

教育

2015905.4

0.0018

-0.0080

5.266

115751

-0.0129

205

職業

1,939,409.3

0.0063

-0.0040

5.017

221935

-0.0060

62

Education_num

1,673,648.4

0.0023

-0.0066

6.009

58303

-0.0080

197

fnlwgt

1,564,189.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

資本ロス

866863.8

0.0060

0.0020

8.076

58531

0.0118

1

ワーククラス

644,208.4

0.0025

-0.0019

9.898

132196

-0.0022

0

ネイティブ国

5,38841.2

0.0001

-0.0016

9.434 人

67211

-0.0058

0

性別

226049.3

0.0002

0.0002

10.911

37754

-0.0011

13

レース

1,681,809.9

-0.0006

-0.0004

11.571

42262

-0.0031

0

ご覧のように、変数の重要度の定義が異なると、規模が異なり、特徴のランキングに違いが生じる可能性があります。

モデル構造に由来する変数の重要度(たとえば、合計スコア、平均最小深度、ノード数、上の表の root の数)は、ディシジョン ツリー(セクション「カート | 変数の重要度」を参照)とランダム フォレストについて同様に計算されます。

順列の変数の重要度(たとえば、上記の表の平均 {accuracy、auc、pr-auc} の減少)は、検証データセットを使用して任意の機械学習モデルで計算できる、モデルに依存しないメジャーです。ランダム フォレストでは、検証用データセットを使用する代わりに、バッグ外評価によって順列の変数の重要度を計算できます。

SHAPSHapley Additive exPlanations)は、モデルに依存しない方法で、個々の予測またはモデルごとの解釈を説明します。(モデルに依存しない解釈の概要については、Molnar の解釈可能な機械学習をご覧ください)。SHAP は、通常はコンピューティングの費用が高くなりますが、デシジョン フォレストに対して大幅な高速化につながる可能性があるため、デシジョン フォレストを解釈する良い方法となります。

使用例

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

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

長所と短所

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

長所:

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

短所:

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