Zacznij terazZacznij za darmo

Wybór modelu

Regularyzacja i walidacja krzyżowa to potężne narzędzia przy wyborze modelu. Regularyzacja pomaga zapobiegać przeuczeniu, a walidacja krzyżowa zapewnia rzetelną ocenę modeli. W tym ćwiczeniu połączysz obie techniki i sprawdzisz, czy modele różnią się od siebie w istotny sposób. Obliczysz wyłącznie precyzję, choć to samo ćwiczenie można równie łatwo wykonać dla czułości i innych metryk ewaluacyjnych.

X_train, y_train, X_test, y_test są dostępne w twoim środowisku pracy. Dostępne są również pandas jako pd, numpy jako np oraz sklearn. Z modułu sklearn.metrics dostępne są funkcje precision_score() i recall_score(), a z modułu sklearn.model_selectionKFold() i cross_val_score().

To ćwiczenie jest częścią kursu

Przewidywanie CTR z użyciem uczenia maszynowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Skonfiguruj walidację krzyżową K-fold z czterema podziałami, używając parametru n_splits, i przypisz wynik do k-fold.
  • Utwórz klasyfikator drzewa decyzyjnego.
  • Użyj k_fold, aby przeprowadzić walidację krzyżową i ocenić precyzję oraz czułość modelu drzewa decyzyjnego dla podanej wartości max_depth.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Iterate over different levels of max depth and set up k-fold
for max_depth_val in [3, 5, 10]:
  k_fold = ____(____ = 4, random_state = 0, shuffle = True)
  clf = ____(____ = max_depth_val)
  print("Evaluating Decision Tree for max_depth = %s" %(max_depth_val))
  y_pred = clf.fit(____, ____).predict(____) 
  
  # Calculate precision for cross validation and test
  cv_precision = ____(
    ____, X_train, y_train, cv = k_fold, scoring = 'precision_weighted')
  precision = ____(y_test, y_pred, average = 'weighted')
  print("Cross validation Precision: %s" %(cv_precision))
  print("Test Precision: %s" %(precision))
Edytuj i uruchom kod