Élimination récursive des caractéristiques à la main
Maintenant que nous avons créé un classificateur pour le diabète, voyons si nous pouvons réduire le nombre de caractéristiques sans trop nuire à la précision du modèle.
À la deuxième ligne de code, les caractéristiques 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 modules nécessaires ont également été préchargés.
Cette activité fait partie du cours
Réduction de dimensionnalité en Python
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))))