Selección de modelos
La regularización y la validación cruzada son herramientas muy potentes para la selección de modelos. La regularización ayuda a evitar el sobreajuste y la validación cruzada garantiza que tus modelos se evalúen correctamente. En este ejercicio, usarás regularización y validación cruzada conjuntamente y verás si los modelos difieren de forma significativa o no. Calcularás solo la precisión, aunque el mismo ejercicio puede hacerse fácilmente para el recall y otras métricas de evaluación.
X_train, y_train, X_test, y_test están disponibles en tu espacio de trabajo. pandas como pd, numpy como np y sklearn también están disponibles. Tanto precision_score() como recall_score() de sklearn.metrics están disponibles, así como KFold() y cross_val_score() de sklearn.model_selection.
Este ejercicio forma parte del curso
Predicción del CTR con Machine Learning en Python
Instrucciones del ejercicio
- Configura una validación cruzada K-Fold con cuatro particiones usando
n_splitsy asígnala ak-fold. - Crea un clasificador de árbol de decisión.
- Usa
k_foldpara ejecutar la validación cruzada y evalúa la precisión y el recall de tu modelo de árbol de decisión para el valor demax_depthdado.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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))