Zacznij terazZacznij za darmo

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

Zobacz kurs

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 od 0.001 do 1.0 dla hiperparametru C modelu 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_)
Edytuj i uruchom kod