9

私は、ロジスティック回帰アルゴリズムによって訓練されたバイナリ予測モデルを持っています。私は、ポジティブまたはネガティブなクラスの決定にどの機能(予測子)が重要かを知りたい。私はcoef_パラメータがscikit-learnパッケージから来ることを知っていますが、それが重要であるかどうかは分かりません。もう一つは、負のクラスと正のクラスの重要性の観点から、coef_の値をどのように評価できるかです。私は標準化された回帰係数についても読んでおり、それが何であるか分かりません。ロジスティック回帰モデルの機能の重要性を見つけるにはどうすればよいですか?

悪性腫瘍や悪性腫瘍などのテストケースを決定するために、腫瘍の大きさ、腫瘍の重さなどの特徴があると言います。どの機能が悪性ではなく悪性の予測に重要かを知りたい。それは一種の意味ですか?

+0

もっと具体的な例を含めることができますか? – carlosdc

+0

悪性腫瘍や悪性腫瘍のようなテストケースを決定するために、腫瘍の大きさ、腫瘍の重さなどの特徴があると言います。どの機能が悪性ではなく悪性の予測に重要かを知りたい。それは一種の意味ですか? – mgokhanbakal

答えて

17

線形分類モデル(ロジスティックのうちの1つ)で与えられたパラメータの「影響」を感じる最も簡単な選択肢の1つは、その係数の大きさに対応するパラメータを使用します。これは最も基本的であることを

m.fit(X/np.std(X, 0), y) 
print(m.coef_) 

注:

import numpy as np  
from sklearn.linear_model import LogisticRegression 

x1 = np.random.randn(100) 
x2 = 4*np.random.randn(100) 
x3 = 0.5*np.random.randn(100) 
y = (3 + x1 + x2 + x3 + 0.2*np.random.randn()) > 0 
X = np.column_stack([x1, x2, x3]) 

m = LogisticRegression() 
m.fit(X, y) 

# The estimated coefficients will all be around 1: 
print(m.coef_) 

# Those values, however, will show that the second parameter 
# is more influential 
print(np.std(X, 0)*m.coef_) 

同様の結果を得るための別の方法が標準化されたパラメータのモデルフィットの係数を調べることです。

この例を考えてみましょう(p値、ブートストラップスコア、様々な「識別指標」などを使用して)特徴の重要性またはパラメータの影響を見つけるための他の多くの技術が存在する。

https://stats.stackexchange.com/でもっと面白い回答が得られると確信しています。

+0

ありがとうございます。もう1つ、m.coef_の負の値はどういう意味ですか?それは否定的なクラスの決定のためにより差別的であるようにそれは意味するか。正の値についても同じ質問です。 – mgokhanbakal

+4

負の係数は、対応するフィーチャの値が高いほど、分類が負のクラスに向かってより多く押し出されることを意味します。 –

+0

追加説明ありがとうございます。 – mgokhanbakal

関連する問題