Aan de slagGa gratis aan de slag

Handmatige Recursive Feature Elimination

Nu we een classifier voor diabetes hebben gemaakt, kijken we of we het aantal features kunnen verminderen zonder de modelnauwkeurigheid te veel te schaden.

Op de tweede coderegel worden de features uit de oorspronkelijke DataFrame geselecteerd. Pas deze selectie aan.

Een StandardScaler()-instantie is vooraf gedefinieerd als scaler en een LogisticRegression()-instantie als lr.

Alle benodigde functies en pakketten zijn ook al ingeladen.

Deze oefening maakt deel uit van de cursus

Dimensionality Reduction in Python

Cursus bekijken

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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))))
Code bewerken en uitvoeren