Seleção de modelo
Tanto a regularização quanto a validação cruzada são ferramentas poderosas na seleção de modelos. A regularização ajuda a evitar overfitting, e a validação cruzada garante que seus modelos sejam avaliados corretamente. Neste exercício, você vai usar regularização e validação cruzada juntas e verificar se os modelos diferem significativamente ou não. Você vai calcular apenas a precisão (precision), embora o mesmo exercício possa ser feito facilmente para recall e outras métricas de avaliação.
X_train, y_train, X_test, y_test estão disponíveis no seu ambiente. pandas como pd, numpy como np e sklearn também estão disponíveis. Tanto precision_score() quanto recall_score() de sklearn.metrics estão disponíveis, assim como KFold() e cross_val_score() de sklearn.model_selection.
Este exercício faz parte do curso
Prevendo CTR com Machine Learning em Python
Instruções do exercício
- Configure uma validação cruzada K-Fold com quatro divisões usando
n_splitse atribua ak-fold. - Crie um classificador de árvore de decisão.
- Use
k_foldpara executar a validação cruzada e avaliar a precisão (precision) e o recall do seu modelo de árvore de decisão para o valor demax_depthfornecido.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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))