Élimination récursive manuelle des variables
Maintenant que nous avons créé un classificateur pour le diabète, voyons si nous pouvons réduire le nombre de variables sans trop dégrader la précision du modèle.
À la deuxième ligne de code, les variables sont sélectionnées à partir du DataFrame d’origine. Ajustez cette sélection.
Une instance de StandardScaler() a été prédéfinie sous le nom scaler et une de LogisticRegression() sous le nom lr.
Toutes les fonctions et tous les packages nécessaires ont également été préchargés.
Cet exercice fait partie du cours
<cours>Réduction de dimension en Python</cours>Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Remove the feature with the lowest model coefficient
X = diabetes_df[['pregnant', 'glucose', 'diastolic', 'triceps', 'insulin', 'bmi', 'family', 'age']]
# Performs a 25-75% train test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Scales features and fits the logistic regression model
lr.fit(scaler.fit_transform(X_train), y_train)
# Calculates the accuracy on the test set and prints coefficients
acc = accuracy_score(y_test, lr.predict(scaler.transform(X_test)))
print(f"{acc:.1%} accuracy on test set.")
print(dict(zip(X.columns, abs(lr.coef_[0]).round(2))))