cómo crear árboles de decisión en Python utilizando la biblioteca scikit-learn. Los árboles de decisión son una técnica de aprendizaje supervisado ampliamente utilizada en la clasificación y regresión. En este tutorial, aprenderás cómo crear, entrenar y visualizar un árbol de decisión.
Importar bibliotecas
Primero, asegúrate de tener instaladas las bibliotecas necesarias. Si aún no tienes scikit-learn, puedes instalarlo usando pip
:
pip install scikit-learn
A continuación, importa las bibliotecas que necesitarás en tu código Python:
import numpy as np import pandas as pd from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier, plot_tree from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt
Cargar y explorar los datos
En este ejemplo, usaremos el conjunto de datos Iris, que es un conjunto de datos muy conocido para la clasificación. Carguemos los datos y exploremos su estructura:
# Cargar el conjunto de datos Iris iris = load_iris() X = iris.data y = iris.target # Crear un DataFrame para explorar los datos df = pd.DataFrame(data=np.c_[iris['data'], iris['target']], columns=iris['feature_names'] + ['target']) # Visualizar las primeras filas del DataFrame print(df.head())
Dividir los datos en conjuntos de entrenamiento y prueba
Para evaluar el rendimiento del árbol de decisión, dividiremos el conjunto de datos en conjuntos de entrenamiento y prueba:
# Dividir los datos en conjuntos de entrenamiento y prueba X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Crear y entrenar el árbol de decisión
Ahora crearemos un modelo de árbol de decisión y lo entrenaremos con los datos de entrenamiento:
# Crear el modelo de árbol de decisión tree_classifier = DecisionTreeClassifier(random_state=42) # Entrenar el modelo con los datos de entrenamiento tree_classifier.fit(X_train, y_train)
Realizar predicciones y evaluar el modelo
Una vez que el modelo esté entrenado, podemos usarlo para hacer predicciones en el conjunto de prueba y evaluar su rendimiento:
# Realizar predicciones en el conjunto de prueba y_pred = tree_classifier.predict(X_test) # Calcular la precisión del modelo accuracy = accuracy_score(y_test, y_pred) print("Precisión del modelo: {accuracy * 100:.2f}%")
Visualizar el árbol de decisión
Una de las ventajas de los árboles de decisión es que son interpretables. Podemos visualizar el árbol de decisión para comprender cómo toma decisiones:
# Visualizar el árbol de decisión plt.figure(figsize=(12, 8)) plot_tree(tree_classifier, filled=True, feature_names=iris.feature_names, class_names=iris.target_names) plt.show()
Ajustar hiperparámetros (opcional)
Puedes ajustar los hiperparámetros del árbol de decisión, como la profundidad máxima del árbol, para mejorar el rendimiento o evitar el sobreajuste. Experimenta con diferentes valores y observa cómo afecta el rendimiento.
¡Eso es todo! Has creado, entrenado, evaluado y visualizado un árbol de decisión en Python utilizando scikit-learn. Puedes aplicar esta técnica a otros conjuntos de datos y problemas de clasificación.