MODULO IV APLICACIÓN PRÁCTICA: ÁRBOLES DE DECISIÓN (APRENDIZAJE SUPERVISADO) EJEMPLO PARA CLASIFICAR FLORES EN TRES ESPECIES DIFERENTES

                                                                DIPLOMA DO

                                       EN INTELIGENCIA ARTIFICIAL

                                                               MODULO IV  

              APRENDIZAJE AUTOMATICO CON PYTHON Y ASISTENTES INTELIGENTES

Ortega Irusta Mireya Elena

Interaccion con chat GPT

https://chat.openai.com/share/c99f1bfe-b3ca-4b64-9c6e-cfe55be0a1e6

Para aplicar los componentes del pensamiento computacional en un ejemplo de árboles de decisión (aprendizaje supervisado) y discutir conceptos clave de regresión logística, aquí tienes:

Paso a paso utilizando el Pensamiento Computacional:

1. Descomposición:

 - Problema: Clasificar clientes bancarios como riesgosos o no para préstamos.

 - Objetivo: Utilizar un modelo de árbol de decisión para predecir la clasificación.

- Entradas: Datos de clientes (ingresos, historial crediticio, etc.).

 - Salidas: Clasificación de riesgo (riesgoso/no riesgoso).

2. Reconocimiento de Patrones:

 - Regresión Logística: Un modelo estadístico para problemas de clasificación binaria.

 - Árboles de Decisión: Estructuras de árbol que toman decisiones basadas en características.

3. Abstracción:

 - Regresión Logística: Usa una función logística para modelar la probabilidad de una clase.

 - Árboles de Decisión: Dividen el conjunto de datos basándose en las características para hacer predicciones.

4. Algoritmos:

 - Regresión Logística: Usa el algoritmo de optimización (gradiente descendente, por ejemplo) para ajustar los parámetros.

 - Árboles de Decisión: Algoritmo que busca dividir los datos en nodos para maximizar la homogeneidad de las clases.

 5. Automatización:

 - Regresión Logística: Automatiza la predicción de la clase basada en parámetros aprendidos.

    - Árboles de Decisión: Automatiza la clasificación utilizando la estructura del árbol.

Conceptos Clave de Regresión Logística:

- Función Logística: Transforma la salida a una probabilidad entre 0 y 1.

- Clasificación Binaria: Predecir entre dos clases (Sí/No, 0/1).

- Entrenamiento: Ajuste de parámetros para minimizar el error de predicción.

Fundamentos de Árboles de Decisión:

- Nodos: Puntos de decisión basados en características.

- Ramificaciones: Divisiones en el árbol basadas en valores de características.

- Hoja: Nodo terminal que representa una clase o valor final.

Análisis de Importancia de Características y Poda del Árbol:

- Importancia de Características: Evalúa qué características tienen más peso en las decisiones del árbol.

- Poda del Árbol: Proceso de eliminar nodos poco importantes para evitar el sobreajuste y mejorar la generalización del modelo.

Al implementar regresión logística y árboles de decisión, se puede realizar un análisis comparativo para determinar cuál modelo se ajusta mejor a los datos y a los objetivos específicos del problema. ¿Te gustaría profundizar más en algún aspecto en particular?


Los árboles de decisión son un algoritmo de aprendizaje supervisado utilizado tan

to para clasificación como para regresión. Aquí tienes un ejemplo simple utilizando Python y la biblioteca scikit-learn:

Interaccion con chat GPT

https://chat.openai.com/share/c134c2a0-e8e7-4286-9d19-a1e100f1959f

EJEMPLO PARA CLASIFICAR FLORES EN TRES ESPECIES DIFERENTES 

Supongamos que queremos construir un árbol de decisión para clasificar flores en tres especies diferentes (setosa, versicolor y virginica) basándonos en las características de longitud y ancho del sépalo y pétalo.

Primero, necesitarás instalar scikit-learn si aún no lo has hecho:

 

pip install scikit-learn

Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (1.2.2) Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.23.5) Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.11.4) Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.3.2) Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/pytho
n3.10/dist-packages (from scikit-learn) (3.2.0)
A continuación, puedes utilizar el siguiente código:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text

# Cargar el conjunto de datos Iris
iris = load_iris()
X = iris.data
y = iris.target

# Dividir el conjunto de datos en entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Crear un árbol de decisión
tree_classifier = DecisionTreeClassifier(random_state=42)
tree_classifier.fit(X_train, y_train)

# Mostrar reglas de decisión
tree_rules = export_text(tree_classifier, feature_names=iris.feature_names)
print("Reglas de decisión:\n", tree_rules)

# Evaluar el rendimiento del modelo en el conjunto de prueba
accuracy = tree_classifier.score(X_test, y_test)
print("Precisión del modelo en el conjunto de prueba:", accuracy)

Interacción con Google colab:

Reglas de decisión: |--- petal length (cm) <= 2.45 | |--- class: 0 |--- petal length (cm) > 2.45 | |--- petal length (cm) <= 4.75 | | |--- petal width (cm) <= 1.65 | | | |--- class: 1 | | |--- petal width (cm) > 1.65 | | | |--- class: 2 | |--- petal length (cm) > 4.75 | | |--- petal width (cm) <= 1.75 | | | |--- petal length (cm) <= 4.95 | | | | |--- class: 1 | | | |--- petal length (cm) > 4.95 | | | | |--- petal width (cm) <= 1.55 | | | | | |--- class: 2 | | | | |--- petal width (cm) > 1.55 | | | | | |--- petal length (cm) <= 5.45 | | | | | | |--- class: 1 | | | | | |--- petal length (cm) > 5.45 | | | | | | |--- class: 2 | | |--- petal width (cm) > 1.75 | | | |--- petal length (cm) <= 4.85 | | | | |--- sepal width (cm) <= 3.10 | | | | | |--- class: 2 | | | | |--- sepal width (cm) > 3.10 | | | | | |--- class: 1 | | | |--- petal length (cm) > 4.85 | | | | |--- class: 2 Precisión del modelo en el conjunto de prueba: 1.0

Este código utiliza el conjunto de datos Iris, que es comúnmente utilizado para ejemplos de clasificación. El árbol de decisión se entrena en el conjunto de entrenamiento y luego se evalúa en el conjunto de prueba. La función `export_text` se utiliza para mostrar las reglas de decisión aprendidas por el árbol.

Ten en cuenta que este es un ejemplo básico, y en la práctica, debes ajustar los parámetros del árbol de decisión y realizar una validación cruzada para obtener una evaluación más robusta del modelo.

Puedes utilizar la biblioteca matplotlib para visualizar el árbol de decisión y sus decisiones. Aquí hay una versión modificada del código anterior para incluir gráficos:






Este código utiliza la función `train_and_visualize_tree` para entrenar un árbol de
decisión en diferentes conjuntos de datos y visualizar el árbol resultante.
Puedes observar cómo el árbol toma decisiones basadas en diferentes conjuntos
de características para cada conjunto de datos. Recuerda que estos son solo
ejemplos básicos, y en la práctica, deberías ajustar parámetros y realizar una
validación cruzada para obtener modelos más robustos.

 Conclusiones y reflexiones:  es de gran importancia poder conocer estas herramientas de árbol de  decisiones (aprendizaje supervisado), para mejorar nuestra practica docente empleado es las nuevas herramientas.






Comentarios

Entradas populares de este blog

MODULO IV CLASIFICACIÓN DE CARIES DENTAL SEGÚN LA METODOLOGÍA DE BLACK.

MODULO IV DATASET SOBRE EL RENDIMIENTO DE ESTUDIANTES EN UN EXAMEN

MODULO IV APLICACIÓN PRÁCTICA: REGRESIÓN LOGÍSTICA (APRENDIZAJE SUPERVISADO) EJEMPLO DE REGRESIÓN LOGÍSTICA PARA PREDECIR EL ESTADO DE SALUD BASADO EN EL ÍNDICE DE MASA CORPORAL (IMC).