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
Övningsinstruktioner
- Konfigurera en K-fold korsvalidering med fyra uppdelningar med hjälp av
n_splitsoch tilldela den tillk-fold. - Skapa en klassificerare baserad på beslutsträd.
- Använd
k_foldfö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))