web-dev-qa-db-fra.com

Comment trouver l'importance des fonctionnalités pour un modèle de régression logistique?

J'ai un modèle de prédiction binaire formé par un algorithme de régression logistique. Je veux savoir quelles caractéristiques (prédicteurs) sont plus importantes pour la décision de classe positive ou négative. Je sais que le paramètre coef_ Provient du paquet scikit-learn, mais je ne sais pas s'il est suffisant pour l'importance. Une autre chose est de savoir comment je peux évaluer les valeurs coef_ En termes d’importance pour les classes négatives et positives. J'ai aussi lu sur les coefficients de régression normalisés et je ne sais pas ce que c'est.

Disons qu'il existe des caractéristiques telles que la taille de la tumeur, le poids de la tumeur, etc., permettant de prendre une décision concernant un cas de test comme malin ou non malin. Je veux savoir quelles caractéristiques sont les plus importantes pour la prédiction maligne et non maligne. Cela a-t-il un sens?

32
mgokhanbakal

Une des options les plus simples pour avoir une idée de "l'influence" d'un paramètre donné dans un modèle de classification linéaire (la logistique en est un) est de considérer la magnitude de son coefficient multipliée par l'écart type du paramètre correspondant dans les données. .

Considérons cet exemple:

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_)

Une autre façon d'obtenir un résultat similaire consiste à examiner les coefficients de l'ajustement du modèle sur des paramètres normalisés:

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

Notez qu’il s’agit de l’approche la plus élémentaire et qu’il existe un certain nombre de techniques pour rechercher l’importance des fonctionnalités ou l’influence des paramètres (en utilisant les valeurs p, bootstrap, divers "indices discriminants", etc.).

Je suis à peu près sûr que vous obtiendrez des réponses plus intéressantes sur https://stats.stackexchange.com/ .

42
KT.