$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Este protocolo describía un flujo de trabajo computacional reproducible para comparar modelos de aprendizaje automático en conjunto utilizando un conjunto de datos de enfermedades cardiovasculares disponible públicamente.
Selección del conjunto de datos
El estudio utilizó un conjunto de datos de enfermedades cardiovasculares disponible públicamente obtenido del repositorio Kaggle. El conjunto de datos comprendía 1190 instancias e incluía 11 características. Para el entrenamiento del modelo, se utilizó el 80% de los datos, mientras que el 20% restante se destinó a la evaluación del rendimiento. La Tabla 1 presentó una descripción detallada de las características del conjunto de datos. El conjunto de datos se cargaba en Python (versión 3.9) usando la biblioteca pandas (versión 1.5.3). La integridad del conjunto de datos se verificó examinando valores ausentes, registros duplicados y tipos de datos inconsistentes.
La Tabla 1 resume los atributos demográficos, clínicos y experimentales incluidos en el conjunto de datos de enfermedades cardiovasculares, junto con sus tipos de datos y formatos codificados. Estas características constituyeron las variables de entrada para todos los procedimientos posteriores de entrenamiento y evaluación del modelo.
| Sl. No | Nombre de la sección | Tipo de datos | Descripción |
| 1 | Edad | Numérico | Edad del paciente en años. |
| 2 | Sexo | Nominal | El masculino representado como 1 y la mujer como 0. |
| 3 | Tipo de dolor en el pecho | Categórico | 1: Típico 2: Angina típica 3: Dolor no anginal 4: Asintomático |
| 4 | Tensión en reposo | Numérico | La presión arterial en reposo se mide en milímetros de mercurio (mmHg). |
| 5 | Nivel de colesterol | Numérico | Colesterol sérico en miligramos por decilitro (mg/dL). |
| 6 | Azúcar en ayunas | Nominal | Los niveles de azúcar en sangre superiores a 120 mg/dl durante el ayuno se representan como 1 para verdadero y 0 para falso. |
| 7 | ECG en reposo | categórico | Se asignan tres valores distintos de la siguiente manera: 0 para Normal, 1 para Anomalía en la onda ST-T y 2 para Hipertrofia ventricular izquierda. |
| 8 | Frecuencia cardíaca máxima | Numérico | Frecuencia cardíaca máxima alcanzada |
| 9 | Angina de ejercicio | Nominal | Angina inducida por el ejercicio, donde 0 representa NO y 1 representa Sí. |
| 10 | Oldpeak | Numérico | ST-depresión durante el ejercicio en comparación con el estado de reposo. |
| 11 | Pendiente ST | categórico | La pendiente del segmento ST durante el ejercicio máximo se categoriza de la siguiente manera: 0: Normal 1: Pendiente ascendente 2: Llana 3: Pendiente descendente |
Tabla 1: Descripción de las características del conjunto de datos utilizadas para la predicción de enfermedades cardíacas.
Preprocesamiento de los datos
El preprocesamiento de datos se realizaba utilizando librerías Python. Las filas con valores faltantes se eliminaron usando pandas. función DataFrame.dropna(). Se identificaron y eliminaron valores atípicos en las características numéricas utilizando el método del rango intercuartílico (IQR) y la visualización basada en diagramas de caja, que ilustra la distribución y los valores atípicos detectados entre características (Figura 2). Todas las variables numéricas se escalaban usando la función StandardScaler de la biblioteca scikit-learn (versión 1.2.2). El desequilibrio de clases se abordó mediante un muestreo aleatorio insuficiente para obtener una distribución equilibrada de clases antes del entrenamiento del modelo.

Figura 2: Diagrama de caja de todos los atributos en el conjunto de datos de enfermedades cardiovasculares. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
El coeficiente de correlación (PCC) de Pearson se empleó para evaluar las relaciones entre características. La matriz de correlación resultante, visualizada como un mapa de calor, ilustra la intensidad y dirección de las correlaciones de características por pares y destaca atributos redundantes para la eliminación (Figura 3).

Figura 3: Matriz de correlación para el conjunto de datos de enfermedades cardíacas. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
El modelo da como resultado un mapa de calor de la matriz de correlación que es estéticamente atractivo y permite una comprensión más rápida de las correlaciones entre diferentes características en los datos. Este mapa de calor utiliza colores para mostrar cuánto y en qué dirección están correlacionados, lo que lo convierte en una herramienta importante en el Análisis Exploratorio de Datos. Los colores más claros muestran mayores correlaciones positivas, los colores oscuros muestran mayores correlaciones negativas y más verdes muestran correlaciones cercanas a cero.
Extracción de características
La selección de características se realizó utilizando la importancia de características en Random Forest implementada mediante el RandomForestClassifier en bibliotecas de aprendizaje automático de código abierto. Las puntuaciones de importancia de las características se calcularon en función de la disminución media de la impureza, y las características se clasificaron en consecuencia. Las características clasificadas con el primer número de N se mantuvieron para análisis posteriores. La selección de características se aplicó tras completar todos los pasos de preprocesamiento y antes de la división tren–prueba, asegurando que se usara un conjunto de características fijo y consistente en todos los modelos de clasificación y configuraciones de conjunto (Figura 4).

Figura 4: Puntuaciones de importancia de las características calculadas usando la importancia de las características en el Bosque Aleatorio. Las características se clasifican según el valor de importancia normalizado. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
Las características se clasificaron según la disminución media de impurezas usando la importancia de las características en el Bosque Aleatorio con random_state = 42; sin embargo, todas las características disponibles (N = 11) se conservaron para el entrenamiento posterior del modelo. La selección de características se aplicaba después del preprocesamiento y antes de la división tren–prueba, asegurando un conjunto de características fijo en todos los modelos.
Formación de modelos y construcción de conjuntos
El conjunto de datos se particionó en subconjuntos de entrenamiento y prueba usando una proporción de división 80:20 con la función train_test_split(). Los datos de entrenamiento se usaron exclusivamente para el desarrollo de modelos y la construcción de conjuntos, mientras que los datos de pruebas se reservaron para la evaluación del rendimiento. Los clasificadores base, incluyendo Decision Tree, Random Forest, AdaBoost y XGBoost, se entrenaban en el conjunto de datos de entrenamiento usando la configuración predeterminada de hiperparámetros, salvo que se especifique lo contrario.
Los modelos de votación dura y conjunto de votación blanda se construyeron usando el VotingClassifier, asignando pesos iguales a todos los clasificadores base para asegurar una comparación objetiva. Se implementó un modelo de ensamble apilado utilizando la Regresión Logística como metaclasificador. El meta-clasificador se entrenó con predicciones fuera de pliegue generadas mediante la validación cruzada de 5 veces de los clasificadores base, lo que redujo el sobreajuste y permitió una estimación imparcial del rendimiento del conjunto.
Modelo propuesto
El marco propuesto para ensambles se implementó para construir un clasificador compuesto utilizando múltiples estrategias de aprendizaje en conjunto. Todos los datos de entrenamiento fueron estandarizados y se aplicaron pasos de preprocesamiento idénticos a los datos de prueba para asegurar la consistencia entre las fases de entrenamiento y evaluación. Los clasificadores base se integraron usando votación dura, votación suave y mecanismos de apilamiento, y el meta-clasificador de apilamiento se entrenó usando Regresión Logística en predicciones validadas cruzadamente. La arquitectura general y el flujo de datos del marco de conjunto (Figura 5).

Figura 5: Arquitectura del modelo propuesto. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
Nivel I:
En el Nivel I del marco de conjunto, se entrenaron cuatro clasificadores base —Random Forest, Decision Tree, XGBoost y AdaBoost— utilizando el conjunto de datos de entrenamiento escalado. Estos clasificadores base se combinaron para construir tanto modelos de votación dura como de conjunto de votación blanda. Se asignaron pesos iguales a todos los clasificadores base para mantener la objetividad y evitar sesgos derivados de la afinación diferencial de pesos durante la construcción del conjunto.
Nivel II:
En el Nivel II, se implementó un clasificador de conjunto de apilamientos combinando predicciones generadas por los clasificadores base. Los clasificadores base se entrenaron usando la validación cruzada de 5 veces y se generaron predicciones fuera de pliegue para cada pliegue. Estas predicciones fuera de pliegue se utilizaron luego como características de entrada para entrenar un meta-clasificador de Regresión Logística, reduciendo así el sobreajuste y permitiendo una estimación imparcial del rendimiento del conjunto.