Régression logistique et sélection de variables
Dans cet exercice, vous allez effectuer une sélection de variables sur l’ensemble d’avis de films (sentiment) en utilisant la régularisation L1. Les variables explicatives et les cibles sont déjà chargées dans X_train et y_train.
Nous allons rechercher la meilleure valeur de C avec GridSearchCV() de scikit-learn, abordé dans le cours prérequis.
Cet exercice fait partie du cours
Classifieurs linéaires en Python
Instructions
- Instanciez un objet de régression logistique qui utilise la régularisation L1.
- Trouvez la valeur de
Cqui minimise l’erreur en validation croisée. - Affichez le nombre de variables sélectionnées pour cette valeur de
C.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Specify L1 regularization
lr = LogisticRegression(solver='liblinear', ____)
# Instantiate the GridSearchCV object and run the search
searcher = GridSearchCV(lr, {'C':[0.001, 0.01, 0.1, 1, 10]})
searcher.fit(X_train, y_train)
# Report the best parameters
print("Best CV params", searcher.best_params_)
# Find the number of nonzero coefficients (selected features)
best_lr = searcher.best_estimator_
coefs = best_lr.____
print("Total number of features:", coefs.size)
print("Number of selected features:", np.count_nonzero(coefs))