APLICACIÓN PRÁCTICA: ÁRBOLES DE DECISIÓN (APRENDIZAJE SUPERVISADO) EN LA CLASIFICACIÓN DE PLANTAS NATIVAS DE LOS ANDES DE BOLIVIA
Introducción:
Los árboles de decisión son
una herramienta poderosa y popular en el aprendizaje supervisado, una rama del
Machine Learning. Esta técnica es ampliamente utilizada para tareas de
clasificación y regresión, proporcionando modelos intuitivos y fáciles de interpretar.
En este artículo, nos enfocaremos en la aplicación de los árboles de decisión
para clasificar plantas nativas de los Andes de Bolivia.
1. Fundamentos de los Árboles de Decisión:
2. Creación de un Árbol de Decisión:
Para ilustrar, vamos a generar
un ejemplo práctico con un conjunto de datos ficticio sobre plantas nativas de
los Andes de Bolivia.
2.1 Generación de Datos
Ficticios:
Crearemos un dataset que
incluye características como Altura, Tipo de Hoja, Época de Floración, entre
otras. Este dataset estará disponible en un archivo CSV para su descarga.
2.2 Generación de Código
Python:
Utilizaremos Python y
bibliotecas como Pandas, Scikit-Learn y Matplotlib para desarrollar el árbol de
decisión. El código incluirá pasos para cargar los datos, entrenar el modelo y
ajustar los parámetros.
2.3 Visualización del Árbol:
Se proveerá el código para
visualizar gráficamente la estructura del árbol, lo que facilita la comprensión
de cómo el modelo toma decisiones basadas en las características de las
plantas.
3. Análisis de la Importancia de las Características y la Poda del
Árbol:
Este apartado se centrará en
dos aspectos clave para
mejorar el rendimiento del
árbol de decisión:
3.1 Importancia de las
Características:
Analizaremos cuáles
características son más influyentes en la clasificación. Esto se hace evaluando
cómo cada característica reduce la impureza en los nodos del árbol. Esta
información es crucial para entender qué aspectos de las plantas son más
determinantes para su clasificación.
3.2 Poda del Árbol:
La poda es esencial para
evitar el sobreajuste, un problema común en los árboles de decisión.
Discutiremos técnicas como la poda basada en costos y la validación cruzada
para optimizar la complejidad del árbol, buscando el equilibrio entre la
precisión y la generalización del modelo.
Los árboles de decisión
ofrecen un enfoque robusto y transparente para la clasificación de datos
complejos. Al aplicarlos en el contexto de las plantas nativas de los Andes de
Bolivia, podemos no solo predecir categorías específicas, sino también entender
las características que más influyen en estas predicciones. Esto no solo
beneficia la investigación botánica, sino que también proporciona una
herramienta educativa valiosa para la enseñanza de conceptos de Machine
Learning.
Para llevar a cabo el ejemplo
práctico de la aplicación de un árbol de decisión en la clasificación de
plantas nativas de los Andes de Bolivia, seguiremos estos pasos:
Generación de Datos Ficticios:
Crearemos un conjunto de datos que contenga
características típicas de plantas, como Altura, Tipo de Hoja, Época de
Floración, entre otras, y una columna de clasificación con tipos de plantas.
Generación de Código Python:
Desarrollaremos un script en Python que
utilice estos datos para entrenar un árbol de decisión. Usaremos bibliotecas
como Pandas para la manipulación de datos, Scikit-learn para el modelo de árbol
de decisión, y Matplotlib para la visualización.
Visualización del Árbol de Decisión:
Mostraremos cómo visualizar el árbol de
decisión generado para entender cómo se realizan las clasificaciones.
Paso 1: Generación de Datos Ficticios
Primero, generemos un conjunto
de datos ficticio. Vamos a simular un archivo CSV con datos de ejemplo.
Aquí tenemos un ejemplo de las
primeras filas del conjunto de datos ficticio generado. Cada fila representa
una planta, con características como su altura, tipo de hoja, época de
floración y el tipo de planta (Herbácea, Arbusto, Árbol). Ahora, guardaremos
estos datos en un archivo CSV.
Paso 2: Guardar los Datos en un Archivo CSV
Voy a guardar estos datos en
un archivo CSV que se podrá descargar.
El conjunto de datos ha sido
guardado como un archivo CSV y puede ser descargado desde el siguiente enlace:
[Descargar Dataset Plantas
Andinas](sandbox:/mnt/data/dataset_plantas_andinas.csv).
Paso 3: Generación del Código Python para el Árbol de Decisión
Ahora, procederé a escribir el
código en Python para cargar estos datos, entrenar un árbol de decisión y
visualizarlo. Explicaré cada paso a medida que avancemos.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, plot_tree
import matplotlib.pyplot as plt
# Cargar datos
df = pd.read_csv('dataset_plantas_andinas.csv')
# Preprocesamiento de datos
df['Tipo_Hoja'] = df['Tipo_Hoja'].astype('category').cat.codes
df['Epoca_Floracion'] = df['Epoca_Floracion'].astype('category').cat.codes
df['Tipo_Planta'] = df['Tipo_Planta'].astype('category').cat.codes
# Separar las características y la etiqueta
X = df.drop('Tipo_Planta', axis=1)
y = df['Tipo_Planta']
# Dividir el dataset en conjunto de entrenamiento y
prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Crear y entrenar el modelo de árbol de decisión
modelo_arbol = DecisionTreeClassifier(random_state=42)
modelo_arbol.fit(X_train, y_train)
# Visualización del árbol de decisión
plt.figure(figsize=(20,10))
plot_tree(modelo_arbol, filled=True, feature_names=X.columns, class_names=['Herbácea', 'Arbusto', 'Árbol'])
plt.show()
Nota:** Para ejecutar este
código, asegúrate de tener instaladas las bibliotecas `pandas`, `scikit-learn`
y `matplotlib`. Puedes instalarlas usando `pip install pandas scikit-learn
matplotlib`.
Crear y entrenar el modelo de árbol de decisión
modelo_arbol = DecisionTreeClassifier(random_state=42)
modelo_arbol.fit(X_train,
y_train)
Visualización del árbol de decisión
plt.figure(figsize=(20,10))
plot_tree(modelo_arbol,
filled=True, feature_names=X.columns, class_names=['Herbácea', 'Arbusto',
'Árbol'])
plt.show()
Este código realiza las siguientes operaciones:
1. **Carga los Datos:** El
archivo CSV es cargado en un DataFrame de Pandas.
2. **Preprocesamiento de
Datos:** Las columnas categóricas (`Tipo_Hoja` y `Epoca_Floracion`) son
convertidas a códigos numéricos para facilitar el análisis.
3. **Separación de
Características y Etiqueta:** Separamos las características (features) de la
etiqueta que queremos predecir (`Tipo_Planta`).
4. **División en Conjuntos de
Entrenamiento y Prueba:** Los datos se dividen en un conjunto de entrenamiento
y otro de prueba.
5. **Creación y Entrenamiento
del Modelo:** Se crea un árbol de decisión y se entrena con el conjunto de
entrenamiento.
6. **Visualización del
Árbol:** Finalmente, visualizamos el árbol de decisión entrenado.
Cuando se ejecute este código,
se generará una gráfica que muestra cómo el árbol de decisión toma decisiones
basadas en las características de las plantas.
Grafica del árbol de Decisiones
·
Nodo Raíz (Nodo Superior): El árbol comienza evaluando la
característica que mejor divide las muestras. En este caso, parece ser una de
las características numéricas (probablemente Altura), aunque no puedo
especificar cuál debido a las limitaciones de visualización.
·
Ramas y Nodos Intermedios: Cada ramificación del nodo representa una
decisión basada en la característica correspondiente. Por ejemplo, un nodo
puede dividir las plantas según si su altura es mayor o menor a un cierto
valor. Los nodos intermedios siguen dividiendo las muestras basándose en las
características.
·
Hojas (Nodos Finales): Los nodos finales (hojas) del árbol
representan las decisiones de clasificación. Cada hoja indica la clase asignada
basada en las condiciones de los nodos superiores. La clase asignada en cada
hoja es la que tiene mayor número de muestras de esa categoría que llegaron a
ese nodo.
·
Profundidad y Complejidad: La profundidad del árbol y el número de
nodos muestran la complejidad del modelo. Un árbol muy profundo puede indicar
un modelo más complejo, que podría estar sobreajustado a los datos de
entrenamiento.
Conclusión
Los árbol de decisión ofrece un modelo paso a paso de cómo las
características de las plantas, como la altura, tipo de hoja y época de
floración, pueden ser utilizadas para clasificarlas en diferentes categorías.
Reflexión.
Cada camino desde la raíz hasta una hoja representa una serie de
decisiones basadas en estas características, conduciendo a una clasificación
final.



Comentarios
Publicar un comentario