Régression logistique et sélection des caractéristiques
Dans cet exercice, vous ferez une sélection de caractéristiques sur l'ensemble de données d'analyse de sentiment de critiques de films en utilisant la régularisation L1. Les caractéristiques et les cibles sont déjà chargées pour vous dans X_train et y_train.
Nous chercherons la meilleure valeur de C à l'aide de GridSearchCV() de scikit-learn, vu dans le cours préalable.
Cette activité fait partie du cours
Classificateurs linéaires en Python
Instructions de l’exercice
- Instanciez un objet de régression logistique qui utilise la régularisation L1.
- Trouvez la valeur de
Cqui minimise l'erreur de validation croisée. - Affichez le nombre de caractéristiques sélectionnées pour cette valeur de
C.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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))