ランダムフォレストモデルでの精度の平均低下とGINIの平均低下の解釈方法


34

ランダムフォレストパッケージからの変数の重要度の出力を解釈する方法を理解するのに少し苦労しています。通常、精度の平均低下は、「各フィーチャの値を並べ替えることによるモデルの精度の低下」として説明されます。

これは、機能全体または機能内の特定の値に関する記述ですか?どちらの場合でも、平均精度の低下は、問題のフィーチャ(またはフィーチャからの値)をモデルから削除することによって誤って分類された観測の数または割合ですか?

次のモデルがあるとします。

require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)

Call:
 randomForest(formula = Species ~ ., data = dat, ntree = 25,
 proximity = TRUE, importance = TRUE, nodesize = 5)

Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2

        OOB estimate of  error rate: 3.33%
Confusion matrix:
          other virginica class.error
other        97         3        0.03
virginica     2        48        0.04

ここに画像の説明を入力してください

このモデルでは、OOBレートはかなり低くなっています(約5%)。ただし、この測定値の最大値を持つ予測子(Petal.Length)の平均精度の低下は、約8にすぎません。

これは、モデルからPetal.Lengthを削除すると、平均で8個程度の観測値の誤分類が追加されるということですか?

Petal.Lengthの平均精度の低下は、この測定値で最高であり、この測定値で他の変数の値がさらに低い場合、どのように低くなりますか?


dat <
-iris

回答:


26

これは、機能全体または機能内の特定の値に関する声明ですか?

  • 「グローバル」変数の重要度とは、トレーニング後、予測前に特定の変数を並べ替えた場合の、すべてのアウトオブバッグクロス検証済み予測の精度の平均低下です。「グローバル」は暗黙的です。ローカル変数重要度は、個々のout-of-bag相互検証予測による精度の平均低下です。グローバル変数の重要度は、変数ごとに単一の数値であり、すべての予測で平均化されるため、理解しやすく、より堅牢であるため、最も一般的です。

どちらの場合でも、平均精度の低下は、問題のフィーチャ(またはフィーチャからの値)をモデルから削除することによって誤って分類された観測の数または割合ですか? "

  1. 電車の森
  2. アウトオブバッグCV精度を測定→OOB_acc_base
  3. 置換変数i
  4. アウトオブバッグCV精度を測定→OOB_acc_perm_i
  5. VI_i =-(OOB_acc_perm_i-OOB_acc_base)

-" これは、モデルからPetal.Lengthを削除すると、平均で8個程度の観測値の誤分類が追加されるということですか? "

  • うん。Petal.lengthとPetal.widthの両方に、ほぼ完全な線形分離があります。したがって、変数は冗長な情報を共有し、1つだけを並べ替えてもモデルは妨害されません。

Petal.Lengthの平均精度の低下は、この測定値で最高であり、したがって、この測定値で他の変数の値がさらに低いことを考えれば、どうしてそんなに低いのでしょうか?

  • 堅牢な/正規化されたモデルが冗長変数でトレーニングされると、単一変数の順列に対して非常に耐性があります。

主に変数の重要度を使用して、変数の有用性をランク付けします。変数の重要度の絶対値を明確に解釈することはうまくいきません。

ジニ: GINIの重要性は、特定の変数の分割による純度の平均ゲインを測定します。変数が有用な場合、混合ラベル付きノードを純粋な単一クラスノードに分割する傾向があります。置換された変数による分割は、ノードの純度を増加または減少させる傾向はありません。有用な変数を並べ替えると、平均ジニゲインが比較的大きく減少する傾向があります。GINIの重要性は、ランダムフォレストが使用可能な最適な分割を選択するために使用するローカル決定関数と密接に関連しています。したがって、計算に余計な時間はかかりません。一方、ローカルスプリットの平均ジニゲインは、モデル全体のパフォーマンスの変化に反して、必ずしも測定に最も役立つものではありません。ジニの重要性は、比較的偏っており、より不安定で、より間接的な質問に答える傾向があるため、(順列ベースの)変数の重要性よりも全体的に劣っています。


ランキングシンプル超えた変数の重要度の解釈については、チェックアウト:「分類問題のための二変量変数選択」 -Vivian W.ンとレオ・ブレイマンの digitalassets.lib.berkeley.edu/sdtr/ucb/text/692.pdf
ソレンHavelundウェリング

ご回答ありがとうございます!OOBエラー率(パーセンテージ)の増加として、精度の平均低下を説明する場所を見たことがあります。あなたが投稿した式もエラー率を示唆しているようです:(OOB_acc_perm_i-OOB_acc_base)。しかし、平均精度の低下は、誤って分類された観測の数を指していると確信していますか?
FlacoT

1
変数の重要性は低下するため、マイナス記号の前に注意してください。私は単位についてあまり具体的ではありませんでした。これらは%または純粋な比率/割合で表すことができますが、問題ではありません。ただし、精度= 1-error_rate、VI_i = error_rate_perm_i-error_rate_baseとしてはい。回帰の場合、置換変数の重要度の単位は通常、%説明された分散の減少であり、ジニの重要度の単位はmean_square_error-gainの平均減少です。「しかし、平均精度の低下は、誤って分類された観測値の数を指していると確信していますか?」-いいえ、精度はカウントではなく小数です。
ソレンHavelundウェリング

10

randomForestのヘルプマニュアルからの精度の平均低下(MDA)の説明は次のとおりです。

最初の測定値は、OOBデータの並べ替えから計算されます。各ツリーについて、データのout-of-bag部分の予測エラーが記録されます(分類のエラー率、回帰のMSE)。各予測変数を並べ替えた後、同じことが行われます。2つの間の差はすべてのツリーで平均化され、差の標準偏差で正規化されます。変数の差の標準偏差が0に等しい場合、除算は行われません(ただし、その場合、平均はほぼ常に0に等しくなります)。

説明によれば、MDAの「精度」とは、フォレストのエラー率に関心があるという事実に関係なく、実際には単一ツリーモデルの精度を指します。そう、

「これは、モデルからPetal.Lengthを削除しても、平均で8個程度の観測値の誤分類が追加されるということですか?」

  • Mean(Decreases in Accuracy of Trees)StandardDeviation(Decreases in Accuracy of Trees)
  • Mean(Decreases in Accuracy of Trees)

H0:Nodes constructed by predictor i is useless in any single trees
H1:Nodes constructed by predictor i is useful

注釈として、Sorenによって記述されたMDAプロシージャは、randomForestパッケージの実装とは異なります。MDAに求めているもの、つまり森林モデル全体の精度の低下に近いものです。ただし、モデルはおそらくPetal.Lengthを使用せずに別の方法で近似され、他の予測子にさらに依存します。したがって、SorenのMDAは悲観的すぎます。


2つのフォローアップの質問:1.他のパッケージが@Sorenによって記述されたより直感的なMDAを使用する場合、何か考えはありますか?2. RandomForestでのMDAの解釈が検定統計量である場合、H0を拒否するのに十分な大きさの検定統計量に関する経験則のようなものはありますか?MDAは既知の分布に従っていますか?
FlacoT 16

1.申し訳ありませんが、他のパッケージは試しませんでした。2.単に検定統計量に似ています。ディストリビューションにはアクセスできません(これを調べた人がほとんどいないとわかっている限り)。また、テスト自体にも意味がありません。テストがFORESTについて何も結論づけているとは思いません。
建玉

4

サンフランシスコ大学のチームによる最近の(ブログ投稿)[ https://explained.ai/rf-importance/index.html]は、R(randomForest)とPython(scikit)の両方のデフォルトの重要度戦略が信頼できないことを示しています多くのデータシナリオで。特に、潜在的な予測変数が測定のスケールまたはカテゴリの数で異なる場合、不純物の重要性メトリックの平均減少は偏っています。

論文とブログ投稿は、連続性が高くカーディナリティの高い変数が、不純物の重要度ランキングの平均減少においてどのように好まれるかを示しています。著者は、これらの場合にデフォルトの代わりに置換の重要性を使用することを提案しています。モデル内の予測変数の相関が高い場合、条件付き順列の重要性が示唆されます。

変数でブレークポイントが選択されるたびに、変数のすべてのレベルがテストされて最適なブレークポイントが見つかるため、不純物は偏っています。連続または高カーディナリティの変数にはさらに多くのスプリットポイントがあり、その結果「複数のテスト」の問題が発生します。つまり、より多くの分割が試行される変数がツリー内でより頻繁に表示されるため、偶然に変数が結果を適切に予測する可能性が高くなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.