Skalowanie i centrowanie w klasyfikacji
Teraz połączysz skalowanie i budowanie modelu w jeden potok do walidacji krzyżowej.
Twoim zadaniem jest zbudowanie potoku, który skaluje cechy w zbiorze danych music_df i przeprowadza walidację krzyżową z przeszukiwaniem siatki, używając modelu regresji logistycznej z różnymi wartościami hiperparametru C. Zmienna docelowa to "genre" – zawiera wartości binarne: 1 dla rocka i 0 dla każdego innego gatunku.
Klasy StandardScaler, LogisticRegression i GridSearchCV są już zaimportowane.
To ćwiczenie jest częścią kursu
Nadzorowane uczenie maszynowe z scikit-learn
Instrukcje do ćwiczenia
- Zdefiniuj kroki potoku: obiekt
StandardScaler()o nazwie"scaler"oraz model regresji logistycznej o nazwie"logreg". - Utwórz słownik
parameters, przeszukując 20 równomiernie rozłożonych wartości zmiennoprzecinkowych z zakresu od0.001do1.0dla hiperparametruCmodelu regresji logistycznej w ramach potoku. - Utwórz instancję obiektu przeszukiwania siatki.
- Dopasuj obiekt przeszukiwania siatki do danych treningowych.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Build the steps
steps = [("____", ____()),
("____", ____())]
pipeline = Pipeline(steps)
# Create the parameter space
parameters = {"____": np.____(____, ____, 20)}
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,
random_state=21)
# Instantiate the grid search object
cv = ____(____, param_grid=____)
# Fit to the training data
cv.____(____, ____)
print(cv.best_score_, "\n", cv.best_params_)