Los árboles hacen preguntas
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 27 de 58.
Este capítulo termina con un árbol que explica un préstamo agrícola. Un árbol de decisión juega a las veinte preguntas: una pregunta de sí o no sobre una característica cada vez, hasta llegar a una respuesta:
El entrenamiento elige cada pregunta para que sus respuestas separen las clases de la forma más clara posible:
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train) # longitud y anchura del pétalo, cm
print(tree.predict([[4.5, 1.4]]))Esto imprime [1], versicolor. max_depth=2 permite dos preguntas por ruta. No se necesita escalar: cada pregunta lee una característica.
Desafío
IntermedioUna tienda de alquiler de cámaras envía un recordatorio por mensaje de texto cuando es posible que el equipo se devuelva tarde. El código inicial divide los alquileres anteriores y lee un nuevo alquiler en la tabla de una fila new_rental.
- Entrena un árbol de decisión con como máximo 2 preguntas por ruta (
random_state=0). - Imprime su precisión de prueba (3 decimales) y su respuesta para el nuevo alquiler:
likely latepara 1,likely on timepara 0.
Para otra tienda:
Test accuracy: 0.792
This rental: likely on timePruébalo tú mismo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# Alquileres anteriores: 1 en late significa que el equipo se devolvió con retraso
rentals = pd.read_csv("rentals.csv")
features = ["rental_weeks", "gear_value_usd", "customer_age", "late_before"]
X_train, X_test, y_train, y_test = train_test_split(rentals[features], rentals["late"], test_size=0.25, random_state=0)
# Un nuevo alquiler: semanas reservadas, valor del equipo, edad del cliente y sus devoluciones con retraso hasta ahora
weeks = int(input())
value = int(input())
age = int(input())
late_before = int(input())
new_rental = pd.DataFrame([[weeks, value, age, late_before]], columns=features)
# Escribe tu código a continuación
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje supervisado
1Tu primer modelo
Aprender de ejemplosConjuntos de entrenamiento y pruebaAjustar y predecirEvaluar un modeloRepaso: clasificador de semillas4Regresión logística
Predicciones de sí o noEl umbral de decisiónLos pesos como evidenciaVarias clasesRepaso: filtro de spam2Vecinos más cercanos
Cómo decide k-NNCómo elegir kFronteras de decisiónEscalado para los vecinosRepaso: vecinos del vino5Medición de clasificadores
La matriz de confusiónPrecisión y exhaustividadLa puntuación F1Clases desequilibradasCurvas ROCRepaso: prueba de detección8Validación cruzada
Validación K-FoldComparación justa de modelosBúsqueda en cuadrículaRepaso: reparaciones de monopatines11Proyecto: especies de pingüinos
Conoce a los pingüinosPrepara los datosElige un modeloAjusta el modelo ganadorPublica el modelo3Regresión lineal
Predicción de númerosVarias característicasMedición de erroresGráficos de residuosRepaso: alquiler de bicicletas6Árboles de decisión
Los árboles hacen preguntasLeer un árbolProfundidad del árbolImportancia de las característicasRepaso: decisiones de préstamosPractica por tu cuenta: Compilador de Python online