Aan de slagGa gratis aan de slag

Modelselectie

Zowel regularisatie als cross-validatie zijn krachtige tools voor modelselectie. Regularisatie helpt overfitting voorkomen en cross-validatie zorgt ervoor dat je modellen op de juiste manier worden geëvalueerd. In deze oefening gebruik je regularisatie en cross-validatie samen en kijk je of modellen significant van elkaar verschillen. Je berekent alleen de precision, al kun je dezelfde aanpak net zo goed toepassen op recall en andere evaluatiematen.

X_train, y_train, X_test, y_test zijn beschikbaar in je werkruimte. pandas als pd, numpy als np en sklearn zijn ook beschikbaar in je werkruimte. Zowel precision_score() en recall_score() uit sklearn.metrics als KFold() en cross_val_score() uit sklearn.model_selection zijn beschikbaar.

Deze oefening maakt deel uit van de cursus

CTR voorspellen met Machine Learning in Python

Cursus bekijken

Oefeninstructies

  • Stel een K-Fold cross-validatie met vier splits in via n_splits en ken deze toe aan k-fold.
  • Maak een decision tree-classifier.
  • Gebruik k_fold om cross-validatie uit te voeren en evalueer de precision en recall van je decision tree-model voor de gegeven max_depth-waarde.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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))
Code bewerken en uitvoeren