Aumento de gradiente
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 43 de 58.
Un bosque hace crecer sus árboles uno al lado del otro. El impulso de gradiente los hace crecer uno tras otro: cada árbol nuevo aprende lo que los árboles anteriores siguen haciendo mal.
Aquí se ajusta a las ventas de un puesto de batidos, árbol por árbol:
Para la clasificación, el modelo es GradientBoostingClassifier:
from sklearn.ensemble import GradientBoostingClassifier
boost = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, random_state=0)
boost.fit(X_train, y_train)learning_rate establece qué proporción de cada corrección se conserva. Los pasos pequeños son cautelosos, por lo que necesitan más árboles.
Desafío
IntermedioUn cultivador de orquídeas quiere saber qué plantas florecerán. El código inicial divide orchids.csv, evalúa un bosque y lee un número de árboles.
- Para cada tasa de
rates, entrena el boosting con esa cantidad de árboles (random_state=0) e imprime su precisión de prueba. - Imprime la mejor tasa. En caso de empate, conserva la anterior.
Para otro cultivador y 20:
Forest: 0.860
Boosting at rate 0.01: 0.600
Boosting at rate 0.1: 0.860
Boosting at rate 1.0: 0.900
Best rate for 20 trees: 1.0Después prueba algunas cantidades de árboles: ¿cuándo supera el boosting al bosque?
Pruébalo tú mismo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
# Orquídeas en los estantes de un cultivador: florecieron este año (1) o no (0)
orchids = pd.read_csv("orchids.csv")
X = orchids.drop(columns="bloomed")
y = orchids["bloomed"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
trees = int(input())
rates = [0.01, 0.1, 1.0]
# No cambies las líneas siguientes: el bosque con el que comparar
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(f"Forest: {forest.score(X_test, y_test):.3f}")
# 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éstamos9Métodos de conjunto
Bosques aleatoriosPor qué funcionan los bosquesAumento de gradienteRepaso: guardabosquesPractica por tu cuenta: Compilador de Python online