Eliminarea recursivă manuală a caracteristicilor
Acum că am creat un clasificator pentru diabet, hai să vedem dacă putem reduce numărul de caracteristici fără a afecta prea mult acuratețea modelului.
Pe a doua linie de cod, caracteristicile sunt selectate din DataFrame-ul original. Ajustează această selecție.
O instanță StandardScaler() a fost predefinită ca scaler, iar una LogisticRegression() ca lr.
Toate funcțiile și pachetele necesare au fost preîncărcate.
Acest exercițiu face parte din cursul
Reducerea dimensionalității în Python
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))))