Výběr modelu
Regularizace i křížová validace jsou výkonné nástroje při výběru modelu. Regularizace pomáhá předcházet přetrénování a křížová validace zajišťuje, že jsou modely správně vyhodnoceny. V tomto cvičení použiješ regularizaci a křížovou validaci dohromady a zjistíš, zda se modely od sebe výrazně liší. Budeš počítat pouze přesnost (precision), i když stejné cvičení snadno zopakuješ i pro recall a další vyhodnocovací metriky.
X_train, y_train, X_test, y_test jsou dostupné v tvém pracovním prostoru. K dispozici jsou také pandas jako pd, numpy jako np a sklearn. Z sklearn.metrics jsou dostupné funkce precision_score() a recall_score(), z sklearn.model_selection pak KFold() a cross_val_score().
Toto cvičení je součástí kurzu
Předpovídání CTR pomocí Machine Learning v Pythonu
Pokyny k cvičení
- Nastav K-fold křížovou validaci se čtyřmi rozděleními pomocí parametru
n_splitsa přiřaď ji do proměnnék-fold. - Vytvoř klasifikátor rozhodovacího stromu.
- Pomocí
k_foldspusť křížovou validaci a vyhodnoť přesnost (precision) a recall svého modelu rozhodovacího stromu pro zadanou hodnotumax_depth.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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))