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_selection – KFold() i cross_val_score().
To ćwiczenie jest częścią kursu
Przewidywanie CTR z użyciem uczenia maszynowego w Pythonie
Instrukcje do ćwiczenia
- Skonfiguruj walidację krzyżową K-fold z czterema podziałami, używając parametru
n_splits, i przypisz wynik dok-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ścimax_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))