7

二項分類の問題に (scikit で) ロジスティック回帰を使用しており、個々の予測を説明できることに興味があります。より正確には、陽性クラスの確率を予測し、その予測に対する各機能の重要性を測定することに関心があります。

係数 (ベータ) を重要度の尺度として使用することは、ここで回答したように一般的には悪い考えですが、私はまだ良い代替手段を見つけていません。

これまでのところ、私が見つけた最高のものは次の3つのオプションです。

  1. モンテカルロ オプション: 他のすべての機能を修正し、評価する機能をトレーニング セットからのランダム サンプルに置き換えて予測を再実行します。これを何度も行います。これにより、陽性クラスのベースライン確率が確立されます。次に、元の実行の陽性クラスの確率と比較します。違いは、機能の重要度の尺度です。
  2. 「Leave-one-out」分類子:機能の重要性を評価するには、最初にすべての機能を使用するモデルを作成し、次にテスト対象の機能を除くすべての機能を使用する別のモデルを作成します。両方のモデルを使用して新しい観測を予測します。2 つの違いは、機能の重要性です。
  3. 調整済みベータ:この回答に基づいて、 「その係数の大きさにデータ内の対応するパラメーターの標準偏差を掛けた値」によって特徴の重要性をランク付けします。

すべてのオプション (ベータ版、モンテカルロ、および「Leave-one-out」を使用) は、私には貧弱なソリューションのように思えます。

  1. モンテカルロはトレーニング セットの分布に依存しており、それを裏付ける文献が見つかりません。
  2. 「1 つを除外する」は、2 つの相関する機能によって簡単にだまされます (一方が存在しない場合、もう一方が介入して補い、両方の重要度が 0 になります)。
  3. 調整されたベータはもっともらしく聞こえますが、それを裏付ける文献が見つかりません。

実際の質問:線形分類子を使用して、意思決定の瞬間に各機能の重要性を解釈する最良の方法は何ですか?

クイック ノート #1: ランダム フォレストの場合、これは些細なことです。このブログ投稿prediction + biasで美しく説明されているように、単純に分解を使用できます。ここでの問題は、ロジスティック回帰などの線形分類器で同様のことを行う方法です。

簡単なメモ #2: stackoverflow には関連する質問が多数あります ( 1 2 3 4 5 )。この特定の質問に対する答えを見つけることができませんでした。

4

2 に答える 2