Kom igångKom igång gratis

Modellval

Både regularisering och korsvalidering är kraftfulla verktyg vid modellval. Regularisering kan förhindra överanpassning och korsvalidering säkerställer att dina modeller utvärderas på rätt sätt. I den här övningen använder du regularisering och korsvalidering tillsammans för att se om modellerna skiljer sig åt på ett betydande sätt. Du beräknar enbart precision, men samma övning kan enkelt göras för recall och andra utvärderingsmått.

X_train, y_train, X_test, y_test finns tillgängliga i din arbetsyta. pandas som pd, numpy som np och sklearn är också tillgängliga. Både precision_score() och recall_score() från sklearn.metrics finns tillgängliga, liksom KFold() och cross_val_score() från sklearn.model_selection.

Den här övningen är en del av kursen

Förutsäga CTR med maskininlärning i Python

Visa kurs

Övningsinstruktioner

  • Konfigurera en K-fold korsvalidering med fyra uppdelningar med hjälp av n_splits och tilldela den till k-fold.
  • Skapa en klassificerare baserad på beslutsträd.
  • Använd k_fold för att köra korsvalidering och utvärdera precision och recall för din beslutsträdsmodell för det angivna värdet på max_depth.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod