MODULO IV CLASIFICAREMOS ESTUDIANTES EN DOS CATEGORÍAS: "APROBADO" O "REPROBADO"

                                                                    DIPLOMA DO

                                         EN INTELIGENCIA ARTIFICIAL

                                                               MODULO IV  

              APRENDIZAJE AUTOMATICO CON PYTHON Y ASISTENTES INTELIGENTES

Ortega Irusta Mireya Elena

Interacción con chat GPT                              

https://chat.openai.com/share/0e14f7eb-6e5d-4e7a-92fc-d9e85b11dca5

CLASIFICAREMOS ESTUDIANTES EN DOS CATEGORÍAS: "APROBADO" O "REPROBADO"



Vamos a desarrollar un ejemplo práctico de clasificación utilizando un árbol de decisiones en Python. En este caso, crearemos un escenario ficticio donde clasificaremos estudiantes en dos categorías: "Aprobado" o "Reprobado" basándonos en dos características: horas de estudio y calificación previa.

Ejecutado este código tenemos los siguientes resultados.

Paso 1: Importar bibliotecas y generar datos ficticios.

 Python

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
import matplotlib.pyplot as plt
import seaborn as sns

# Generar datos ficticios
data = {
    'Horas_Estudio': [3, 6, 8, 5, 9, 2, 7, 4, 8, 5],
    'Calificacion_Previa': [60, 80, 90, 75, 95, 50, 85, 70, 88, 72],
    'Resultado': ['Reprobado', 'Aprobado', 'Aprobado', 'Aprobado', 'Aprobado', 'Reprobado', 'Aprobado', 'Reprobado', 'Aprobado', 'Reprobado']
}

df = pd.DataFrame(data)

Paso 2: Visualizar los datos

Python

# Visualizar los datos
sns.scatterplot(x='Horas_Estudio', y='Calificacion_Previa', hue='Resultado', data=df)
plt.title('Distribución de Estudiantes')
plt.xlabel('Horas de Estudio')
plt.ylabel('Calificación Previa')
plt.show()

 


Paso 3: Dividir los datos en conjuntos de entrenamiento y prueba.

Python

# Dividir los datos en conjuntos de entrenamiento y prueba
X = df[['Horas_Estudio', 'Calificacion_Previa']]
y = df['Resultado']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Paso 4: Crear y entrenar el modelo de árbol de decisiones.

 Python

# Crear y entrenar el modelo
model = DecisionTreeClassifier(random_state=42)
model.fit(X_train, y_train)

Interacción con Google colab


DecisionTreeClassifier(random_state=42)

Paso 5: Realizar predicciones y evaluar el modelo.

Python

# Realizar predicciones
y_pred = model.predict(X_test)

# Evaluar el modelo
accuracy = accuracy_score(y_test, y_pred)
conf_matrix = confusion_matrix(y_test, y_pred)
class_report = classification_report(y_test, y_pred)

print(f'Accuracy: {accuracy}')
print(f'Confusion Matrix:\n{conf_matrix}')
print(f'Classification Report:\n{class_report}')

Interacción con Google colab

 Python

Accuracy: 1.0 Confusion Matrix: [[2]] Classification Report: precision recall f1-score support Aprobado 1.00 1.00 1.00 2 accuracy 1.00 2 macro avg 1.00 1.00 1.00 2 weighted avg 1.00 1.00 1.00 2


 Paso 6: Visualizar el árbol de decisiones (opcional).

from sklearn.tree import plot_tree

plt.figure(figsize=(10, 6))
plot_tree(model, feature_names=X.columns, class_names=model.classes_, filled=True, rounded=True)
plt.show()





Este ejemplo utiliza un conjunto de datos ficticios con dos características (horas de estudio y calificación previa) para predecir si un estudiante aprueba o reprueba. La visualización del árbol de decisiones ayuda a entender cómo se toman las decisiones.

 Recuerda que este es un ejemplo simple y en situaciones reales, es importante ajustar los parámetros del árbol de decisiones y realizar una validación cruzada para obtener un modelo más robusto. También puedes explorar otros algoritmos de clasificación para comparar el rendimiento.

 Gráficas para visualizar mejor los resultados. En este caso, vamos a agregar un gráfico de dispersión para visualizar las predicciones en el conjunto de prueba y una matriz de confusión para evaluar el rendimiento del modelo.

 Paso 7: Visualizar predicciones en el conjunto de prueba.

Python

 # Visualizar predicciones en el conjunto de prueba

plt.figure(figsize=(8, 5))
sns.scatterplot(x='Horas_Estudio', y='Calificacion_Previa', hue=y_test, style=y_pred, palette='Set2', s=100)
plt.title('Predicciones en el Conjunto de Prueba')
plt.xlabel('Horas de Estudio')
plt.ylabel('Calificación Previa')
plt.legend(title='Resultado')
plt.show()

 Python

Paso 8: Visualizar la matriz de confusión

# Visualizar la matriz de confusión
plt.figure(figsize=(8, 5))
sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues', xticklabels=model.classes_, yticklabels=model.classes_)
plt.title('Matriz de Confusión')
plt.xlabel('Predicciones')
plt.ylabel('Valores Reales')
plt.show()

 


Estos pasos adicionales te ayudarán a visualizar mejor cómo se están clasificando las instancias y entender las fortalezas y debilidades del modelo.

 Por último, si deseas visualizar las características más importantes del árbol de decisiones, puedes agregar un gráfico de barras.

 Paso 9: Visualizar características más importantes.

 Python

# Visualizar características más importantes
feature_importance = model.feature_importances_
features = X.columns

plt.figure(figsize=(8, 5))
sns.barplot(x=feature_importance, y=features, palette='viridis')
plt.title('Importancia de las Características')
plt.xlabel('Importancia')
plt.ylabel('Características')
plt.show()

 


Este gráfico te proporcionará información sobre qué características son más importantes para el modelo en términos de tomar decisiones.

 Recuerda ajustar los detalles según tus necesidades específicas y el conjunto de datos con el que estés trabajando.

 Conclusiones:

1. Desempeño del Modelo:

   - El modelo de árbol de decisiones ha demostrado un buen desempeño en la clasificación de estudiantes en las categorías de "Aprobado" y "Reprobado" utilizando las características de horas de estudio y calificación previa.

2. Interpretación del Árbol:

   - La visualización del árbol de decisiones permite entender cómo se toman las decisiones en función de las características. Esto puede ser útil para interpretar el proceso de clasificación del modelo.

3. Importancia de Características:

   - La visualización de la importancia de las características indica que, en nuestro modelo, la calificación previa tiene un mayor peso en la toma de decisiones en comparación con las horas de estudio.

Reflexiones:

1. Interpretación de Gráficas:

   - La visualización de las predicciones en el conjunto de prueba proporciona una comprensión más intuitiva de cómo se están clasificando las instancias. La matriz de confusión también destaca las áreas donde el modelo puede tener dificultades.

2. Toma de Decisiones Basada en Datos:

   - Este ejemplo refuerza la idea de que la toma de decisiones basada en datos puede ser poderosa. Utilizar modelos como los árboles de decisiones puede automatizar procesos de clasificación y proporcionar insights valiosos.

3. Optimización del Modelo:

   - El ajuste de parámetros y la exploración de otros algoritmos podrían mejorar aún más el rendimiento del modelo. La optimización es un proceso continuo y puede ser crucial para implementaciones en entornos del mundo real.

4. Importancia del Aprendizaje Previo:

   - La importancia asignada a la calificación previa resalta la influencia de la experiencia académica pasada en la predicción del rendimiento futuro. Esto podría tener implicaciones en la identificación temprana de estudiantes en riesgo.

5. Comunicación de Resultados:

   - La comunicación clara de los resultados es esencial. Las métricas de evaluación, como la precisión y la matriz de confusión, son herramientas valiosas para comunicar la efectividad del modelo a partes interesadas no técnicas.

En resumen, este ejemplo proporciona una introducción práctica al uso de árboles de decisiones para la clasificación. La interpretación de los resultados y la reflexión sobre las implicaciones del modelo son pasos cruciales para asegurar un enfoque informado y eficaz en la resolución de problemas basada en datos.

Este código generará un histograma que muestra la distribución de las puntuaciones obtenidas en el examen. 

Conclusiones y reflexiones:  Es de gran importancia poder conocer estas herramientas de árbol de decisiones  en clasificacion de estudiates e dos categorias de aprobados y reprobados (aprendizaje supervisado),  esto nos ayuda para mejorar nuestra práctica docente empleado es tas nuevas herramientasen el proceso de eseñanza aprendizaje.


 


Comentarios

Entradas populares de este blog

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).

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