Ir al contenido principal

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

                                                                     DIPLOMA DO

                                       EN INTELIGENCIA ARTIFICIAL

                                                               MODULO IV  

              APRENDIZAJE AUTOMATICO CON PYTHON Y ASISTENTES INTELIGENTES

Ortega Irusta Mireya Elena

https://chat.openai.com/share/fc9007f2-4d96-4a22-a929-75e75157c352

EJEMPLO DE REGRESIÓN LOGÍSTICA PARA PREDECIR EL ESTADO DE SALUD BASADO EN EL ÍNDICE DE MASA CORPORAL (IMC).



Vamos a desglosar el proceso utilizando los componentes del pensamiento computacional y aplicándolos a un ejemplo de regresión logística para predecir el estado de salud basado en el índice de masa corporal (IMC).

Componentes del Pensamiento Computacional:

 1. Descomposición:

   - Definición del Problema: Predicción del estado de salud (sano/en riesgo) basado en el IMC.

   - Identificación de Variables: IMC como entrada, estado de salud como salida.

2. Reconocimiento de Patrones:

  - Análisis Exploratorio de Datos (EDA): Explorar datos del IMC y el estado de salud, identificar distribuciones, outliers, etc.

3. Abstracción:

   - Conceptos Clave de la Regresión Logística:

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

     - Coeficientes: Ponderaciones de las variables de entrada.

     - Entrenamiento del Modelo: Ajuste de los coeficientes para minimizar el error.

   4. Algoritmos:

   - Implementación de Regresión Logística utilizando bibliotecas como scikit-learn en Python.

   5. Automatización

   - Entrenamiento del Modelo Automatización del proceso de ajuste de coeficientes.

   - Predicción de Nuevos Datos: Uso del modelo para predecir el estado de salud con nuevos valores           de  IMC.

Proceso de Desarrollo:

1. Programación Tradicional (entrada + reglas → salida):

   - Para el índice de masa corporal, se podrían definir reglas como "si IMC > 25, entonces estado de salud es 'en riesgo.

2. Aprendizaje Automático(entradas + salidas → reglas):

   - Entrenar un modelo de regresión logística con datos históricos de IMC y estados de salud conocidos.

 Implementación Práctica:

 

1. Preparación de Datos:

   - Conjunto de datos con IMC y etiquetas de estado de salud (sano/en riesgo).

2. División de Datos:

   - Separar datos en conjunto de entrenamiento y prueba (por ejemplo, 70-30).

3. Entrenamiento del Modelo:

   - Usar la biblioteca scikit-learn en Python para ajustar el modelo de regresión logística con el conjunto de entrenamiento.

4. Evaluación del Modelo:

   - Utilizar el conjunto de prueba para evaluar la precisión, la sensibilidad, la especificidad u otras métricas relevantes.

5. Interpretación de Coeficientes:

   - Analizar los coeficientes asignados a las variables (IMC) para entender su impacto en la predicción del estado de salud.

6. Predicción:

   - Utilizar el modelo entrenado para predecir el estado de salud basado en nuevos valores de IMC.

Interpretación de Resultados:

- Coeficientes: Valores positivos o negativos indican la dirección y magnitud de la influencia de las variables predictoras (IMC) en la probabilidad de pertenecer a una categoría de salud.

- Evaluación del Modelo: Precisión, sensibilidad y especificidad ayudan a entender qué tan bien el modelo predice el estado de salud basado en el IMC.

Esta implementación muestra cómo el pensamiento computacional se aplica en el contexto de la regresión logística para predecir el estado de salud a partir del índice de masa corporal, desde la preparación de datos hasta la interpretación de resultados.

Ejecutado este código tenemos los siguientes resultados.

Python

# Importar librerías necesarias
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report

# Datos de ejemplo (sustituye estos datos con tu conjunto de datos)
# Supongamos que 'X' es el IMC y 'y' son las etiquetas de estado de salud (0: sano, 1: en riesgo)
X = np.array([20, 21, 24, 25, 26, 30, 31, 32, 35, 36]).reshape(-1, 1)
y = np.array([0, 0, 0, 0, 1, 1, 1, 1, 1, 1])

# División de datos en entrenamiento y prueba (70-30)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Crear modelo de regresión logística
model = LogisticRegression()

# Entrenar el modelo con los datos de entrenamiento
model.fit(X_train, y_train)

# Predicción en el conjunto de prueba
predictions = model.predict(X_test)

# Evaluación del modelo
accuracy = accuracy_score(y_test, predictions)
report = classification_report(y_test, predictions)

# Coeficientes y término independiente (intercept)
coeficientes = model.coef_
intercept = model.intercept_

# Imprimir resultados
print("Coeficientes:", coeficientes)
print("Término independiente (Intercept):", intercept)
print("Precisión del modelo:", accuracy)
print("Reporte de clasificación:\n", report)

Interacción con Google colab:

Coeficientes: [[0.82566568]]
Término independiente (Intercept): [-21.38730273]
Precisión del modelo: 1.0
Reporte de clasificación:
               precision    recall  f1-score   support

           0       1.00      1.00      1.00         1
           1       1.00      1.00      1.00         2

    accuracy                           1.00         3
   macro avg       1.00      1.00      1.00         3
weighted avg       1.00      1.00      1.00         3

CódigoTexto

Python

Gráficos para Visualizar la Regresión Logística:

import matplotlib.pyplot as plt
import seaborn as sns

# Crear un rango de valores para el IMC
X_values = np.linspace(18, 40, 100).reshape(-1, 1)

# Predecir probabilidades usando el modelo entrenado
probabilities = model.predict_proba(X_values)[:, 1]

# Graficar los datos y la regresión logística
plt.figure(figsize=(8, 6))
plt.scatter(X, y, color='blue', label='Datos')
plt.plot(X_values, probabilities, color='red', label='Regresión Logística')
plt.xlabel('IMC')
plt.ylabel('Probabilidad de estar en riesgo')
plt.title('Regresión Logística para Estado de Salud basado en IMC')
plt.legend()
plt.show()

Interacción con Google colab:



Ejemplos de Otros Algoritmos:

Puedes probar otros algoritmos de clasificación además de la regresión logística. Por ejemplo, Support Vector Machines (SVM) y Árboles de Decisión:

Python

SVM (Support Vector Machine):

Árboles de Decisión:

from sklearn.svm import SVC

# Crear modelo de SVM
svm_model = SVC(kernel='linear', probability=True)

# Entrenar el modelo con los datos de entrenamiento
svm_model.fit(X_train, y_train)

# Predicción en el conjunto de prueba
svm_predictions = svm_model.predict(X_test)

# Evaluación del modelo SVM
svm_accuracy = accuracy_score(y_test, svm_predictions)
svm_report = classification_report(y_test, svm_predictions)

# Imprimir resultados del modelo SVM
print("Precisión del modelo SVM:", svm_accuracy)
print("Reporte de clasificación SVM:\n", svm_report)

Interacción con Google colab:

Precisión del modelo de Árbol de Decisión: 1.0 Reporte de clasificación del Árbol de Decisión: precision recall f1-score support 0 1.00 1.00 1.00 1 1 1.00 1.00 1.00 2 accuracy 1.00 3 macro avg 1.00 1.00 1.00 3 weighted avg 1.00 1.00 1.00 3

Python
# Importar las librerías necesarias
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# Datos de ejemplo (altura, peso)
data = {
    'Altura': [1.65, 1.80, 1.75, 1.60, 1.70, 1.90, 1.55, 1.68],
    'Peso': [55, 70, 68, 50, 65, 85, 45, 52]
}

# Crear un DataFrame
df = pd.DataFrame(data)

# Dividir los datos en características (X) y variable objetivo (y)
X = df[['Altura']]
y = df['Peso']

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

# Inicializar el modelo de regresión lineal
model = LinearRegression()

# Entrenar el modelo
model.fit(X_train, y_train)

# Predecir con el conjunto de prueba
predictions = model.predict(X_test)

# Calcular el error cuadrático medio (MSE)
mse = mean_squared_error(y_test, predictions)
print(f"Error cuadrático medio: {mse}")

# Visualizar la regresión lineal
plt.scatter(X_test, y_test, color='black')
plt.plot(X_test, predictions, color='blue', linewidth=3)
plt.xlabel('Altura')
plt.ylabel('Peso')
plt.title('Regresión Lineal: Altura vs Peso')
plt.show()

Interaccióncon Google colab:





Conclusiones y reflexiones:  Es de gran importancia poder conocer estas herramientas de 

regresiónlogística (aprendizaje supervisado),  para predecir el estado de salud basado en el índice

de masa corporal (IMC). para mejorar nuestra practica docente empleado estas nuevas herramientas.

La regresión logística puede ayudar a establecer una relación probabilística entre el IMC y

ciertos estados de salud. Por ejemplo, podría predecir la probabilidad de tenerciertas condiciones

médicas en función del IMC, como la diabetes, enfermedades cardíacas.

Los coeficientes en la regresión logística representan la contribución relativa de cada unidad de cambio en el IMC

sobre la probabilidad de un estado de salud particular. Una interpretación cuidadosa de estos coeficientes puede

proporcionar información sobre cómo el IMC afecta la salud.


 


Comentarios

Entradas populares de este blog

MODULO IV DATASET SOBRE EL RENDIMIENTO DE ESTUDIANTES EN UN EXAMEN

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