Regresión de árbol de decisión

Machine LearningMachine LearningBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a usar el algoritmo de regresión de árboles de decisión para ajustar una curva senoidal con observaciones ruidosas adicionales. Los árboles de decisión se usarán para aprender regresiones lineales locales que se aproximan a la curva senoidal. Veremos que si la profundidad máxima del árbol se establece demasiado alta, los árboles de decisión aprenden detalles demasiado finos de los datos de entrenamiento y aprenden del ruido, es decir, se sobreajustan.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/tree("Decision Trees") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/tree -.-> lab-49323{{"Regresión de árbol de decisión"}} ml/sklearn -.-> lab-49323{{"Regresión de árbol de decisión"}} end

Importar las bibliotecas necesarias

Importaremos las bibliotecas y módulos necesarios, incluyendo numpy, matplotlib y DecisionTreeRegressor.

import numpy as np
from sklearn.tree import DecisionTreeRegressor
import matplotlib.pyplot as plt

Crear un conjunto de datos aleatorio

Crearemos un conjunto de datos aleatorio utilizando NumPy y le agregaremos algo de ruido.

rng = np.random.RandomState(1)
X = np.sort(5 * rng.rand(80, 1), axis=0)
y = np.sin(X).ravel()
y[::5] += 3 * (0.5 - rng.rand(16))

Ajustar el modelo de regresión

Ajustaremos modelos de regresión con dos profundidades máximas diferentes: 2 y 5.

regr_1 = DecisionTreeRegressor(max_depth=2)
regr_2 = DecisionTreeRegressor(max_depth=5)
regr_1.fit(X, y)
regr_2.fit(X, y)

Predecir

Usaremos los modelos para hacer predicciones en un rango de valores de 0 a 5.

X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]
y_1 = regr_1.predict(X_test)
y_2 = regr_2.predict(X_test)

Graficar los resultados

Graficaremos los resultados para visualizar cómo los modelos se ajustan a los datos.

plt.figure()
plt.scatter(X, y, s=20, edgecolor="black", c="darkorange", label="data")
plt.plot(X_test, y_1, color="cornflowerblue", label="max_depth=2", linewidth=2)
plt.plot(X_test, y_2, color="yellowgreen", label="max_depth=5", linewidth=2)
plt.xlabel("data")
plt.ylabel("target")
plt.title("Decision Tree Regression")
plt.legend()
plt.show()

Resumen

En este laboratorio, aprendimos cómo usar el algoritmo de regresión de árbol de decisión para ajustar una curva senoidal con observaciones ruidosas adicionales. Vimos que si la profundidad máxima del árbol se establece demasiado alta, los árboles de decisión aprenden detalles demasiado finos de los datos de entrenamiento y aprenden del ruido, es decir, se sobreajustan. También aprendimos cómo graficar los resultados para visualizar cómo los modelos se ajustan a los datos.