Nauwkeurigheid na dimensionaliteitsreductie
Je gaat de overfitting verminderen met behulp van dimensionaliteitsreductie. In dit geval pas je een vrij drastische vorm toe door slechts één kolom te selecteren die goede informatie bevat om tussen geslachten te onderscheiden. Je herhaalt de stappen voor de train-test-split, het fitten van het model en het maken van voorspellingen om de nauwkeurigheid op de test- versus trainingsdata te vergelijken.
Alle relevante pakketten en y zijn al ingeladen.
Deze oefening maakt deel uit van de cursus
Dimensionality Reduction in Python
Oefeninstructies
- Selecteer alleen de nekomtrek-kolom (
'neckcircumferencebase') uitansur_df. - Splits de data, maak een classifier aan en fit de data. Dit is al voor je gedaan.
- Bereken opnieuw de nauwkeurigheidsscores op zowel de trainings- als de testset.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Assign just the 'neckcircumferencebase' column from ansur_df to X
X = ansur_df[[____]]
# Split the data, instantiate a classifier and fit the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
svc = SVC()
svc.fit(X_train, y_train)
# Calculate accuracy scores on both train and test data
accuracy_train = accuracy_score(____, svc.predict(____))
accuracy_test = accuracy_score(____, svc.predict(____))
print(f"{accuracy_test:.1%} accuracy on test set vs. {accuracy_train:.1%} on training set")