Manuell rekursiv särdragseliminering
Nu när vi har skapat en diabetesklassificerare ska vi undersöka om vi kan minska antalet särdrag utan att modellens noggrannhet försämras alltför mycket.
På den andra kodraden väljs särdragen ut från den ursprungliga dataramen. Justera det urvalet.
En instans av StandardScaler() har fördefragments som scaler och en av LogisticRegression() som lr.
Alla nödvändiga funktioner och paket har också förinslästs.
Den här övningen är en del av kursen
Dimensionsreduktion i Python
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))))