• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

4 – Árboles de clasificación en Scikit-Learn

Lección 4 del curso Árboles de Decisión.

En la lección anterior vimos cómo generar predicciones con un árbol de clasificación previamente entrenado.

Así que en este punto ya hemos visto todos los conceptos necesarios que nos permiten entender qué es un árbol de clasificación, cómo se entrena y cómo se pueden obtener predicciones. La idea ahora es poner en práctica todas estas ideas.

Entonces, en esta lección veremos cómo crear, entrenar, validar y poner a prueba un árbol de clasificación haciendo uso de la librería Scikit-Learn de Python.

En particular, esta lección esta dividida en tres partes:

  • En la primera parte veremos en detalle el problema a resolver y realizaremos la lectura y el pre-procesamiento del set de datos para esta práctica
  • En la segunda parte veremos cómo realizar el entrenamiento y validación del árbol de clasificación
  • Y en la tercera y última parte veremos cómo poner a prueba el árbol entrenado

Así que comencemos hablando del problema que resolveremos en esta práctica y viendo cómo leer, explorar y realizar el pre-procesamiento del set de datos:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

El objetivo de esta práctica es entrenar, validar y poner a prueba un árbol de clasificación capaz de determinar si un vehículo sería una buena adquisición para un posible cliente dadas características como su precio, su costo de mantenimiento y el número de puertas, entre otras.

Y para esto usaremos el set de datos «vehiculos.csv» que contiene información acerca de las características de diferentes vehículos (precio, costo del mantenimiento, número de puertas, número de pasajeros, tamaño del baúl y nivel de seguridad que ofrece) y por cada uno indica si se trata de un vehículo con categoría «inaceptable», «aceptable», «bueno» o «muy bueno».

Después de realizada la exploración de este set de datos vimos cómo realizar algunas fases de pre-procesamiento necesarias para poder alimentar el modelo que entrenaremos más adelante con estos datos.

Estas fases incluyen la creación de un arreglo con las variables predictoras y de otro arreglo con la variable a predecir, así como la creación de dos subsets de datos (entrenamiento/validación y prueba) que mantengan la proporción de las categorías en este set de datos desbalanceado. Por último vimos cómo realizar la codificación numérica de las características así como de la variable a predecir.

Así que este punto ya estamos listos para crear, entrenar y validar nuestro árbol de clasificación. Veamos cómo hacerlo:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

En el video anterior vimos cómo construir inicialmente nuestro árbol de clasificación usando la función «DecisionTreeClassifier» de Scikit-Learn. Además vimos cómo controlar diferentes parámetros que en últimas determinarán la complejidad del árbol obtenido tras el entrenamiento, como la profundidad del árbol, el mínimo número de datos por hoja o el mínimo número de datos requerido para generar una nueva partición.

Además, vimos cómo usar la validación cruzada (o k-fold cross-validation) que resulta útil en este caso para evaluar el desempeño del modelo (es decir su exactitud promedio) teniendo en cuenta que tenemos relativamente pocos datos para construir este árbol.

Así que con el modelo ya entrenado y validado sólo nos resta ponerlo a prueba con el set de datos que hasta el momento no hemos utilizado: el set de prueba. Veamos cómo hacer esto:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, es posible generar predicciones con el árbol entrenado usando el método «predict» o incluso es posible predecir las probabilidades asociadas a cada categoría usando el método «predict_proba». Y vimos cómo generar predicciones con estos dos métodos usando el set de datos de prueba.

Además, vimos cómo evaluar el desempeño (es decir la exactitud del modelo) con este set de datos usando la matriz de confusión, que nos permite determinar de manera detallada este desempeño para cada una de las cuatro categorías a predecir. En este último caso vimos que el modelo genera mejores predicciones para las categorías «muy_bueno» e «inaceptable» (con exactitudes cercanas al 100%) mientras que para las categorías «bueno» y «aceptable» el desempeño es menor (con exactitudes del 57% y del 86% respectivamente).

En particular, el bajo desempeño alcanzado para la categoría «bueno» se debe a que estamos usando un set de datos desbalanceado y para esta categoría en particular tenemos muy pocos datos de entrenamiento (en comparación con las otras categorías).

Y con esto ya hemos visto de forma práctica todos los elementos que usualmente debemos tener en cuenta para construir un árbol de clasificación haciendo uso de la librería Scikit-Learn. Así que con esto hemos culminado este primer módulo del curso.

En el segundo módulo veremos todo lo relacionado con los árboles de regresión. Y en particular, en la próxima lección comenzaremos con lo esencial: entendiendo qué es un árbol de regresión.

Todas las lecciones del curso Árboles de Decisión

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }