$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Adquisición de conjuntos de datos
El conjunto de datos de Enfermedades Cardíacas de UCI es un conjunto de datos ampliamente utilizado en la investigación médica y de aprendizaje automático para predecir enfermedades cardíacas. Contiene diversas características clínicas y diagnósticas de los pacientes, permitiendo a los profesionales sanitarios e investigadores desarrollar modelos de predicción basados en datos. El conjunto de datos clasifica a las personas como probablemente o menos probables de padecer enfermedad cardíaca en función de varios atributos del paciente, incluyendo la edad, el género, el tipo de dolor torácico, la presión arterial, los niveles de colesterol y los resultados de electrocardiogramas (https://archive.ics.uci.edu/dataset/45/heart+disease)29. El flujo de trabajo general del marco propuesto para la predicción de enfermedades cardíacas, incluyendo el preprocesamiento de datos, la implementación del modelo distribuido y las etapas de evaluación, se ilustra en la Figura 1.
Configuraciones de entornos experimentales
El entorno experimental se desplegó en Apache Hadoop 3.x como el marco central de computación distribuida para todas las implementaciones. El clúster utilizaba una arquitectura maestro-trabajador con un nodo maestro dedicado y varios nodos trabajadores. El nodo maestro gestionaba la planificación de trabajos, la asignación de recursos y la coordinación de clústeres usando YARN (Yet Another Resource Negotiator), mientras que los nodos de trabajo ejecutaban tareas de computación distribuida en paralelo para procesar eficientemente conjuntos de datos médicos a gran escala. Cada nodo del clúster estaba equipado con procesadores Intel Core i7 (o equivalente), 16–32 GB de RAM y aproximadamente 1 TB de almacenamiento.
Ingesta de datos en HDFS
Almacenamiento de conjuntos de datos
El conjunto de datos experimental se almacenó en HDFS en un formato distribuido por bloques, con la variable objetivo indicando la presencia o ausencia de enfermedad cardíaca, separada del conjunto de características independiente, antes de su almacenamiento entre nodos del clúster. Se aplicó preprocesamiento específico de características a todos los bloques de datos almacenados usando flujos de trabajo MapReduce. Las características numéricas, incluyendo la edad, la presión arterial, los niveles de colesterol y la frecuencia cardíaca, se normalizaron utilizando un escalador robusto basado en el rango intercuartílico, reduciendo la influencia de valores atípicos que son especialmente prevalentes en conjuntos de datos médicos donde valores extremos pueden representar condiciones clínicas raras o graves. Las variables categóricas con más de dos categorías, como cp, restecg y thal, se transformaron usando codificación one-hot, convirtiendo atributos categóricos en representaciones numéricas binarias compatibles con las entradas 30,31,32 del algoritmo de aprendizaje automático. Todas las operaciones de preprocesamiento se ejecutaban como trabajos distribuidos de MapReduce entre bloques de datos HDFS, asegurando la aplicación uniforme de toda la tubería sin centralizar los datos en bruto en ningún punto concreto.
Partición entre nodos
El conjunto de datos se particionó en conjuntos de entrenamiento y prueba mediante una división 80:20, asignando el 80% al entrenamiento y el 20% para la evaluación de datos no vistos. Esta partición se aplicó de forma consistente en todos los nodos de trabajo distribuidos para asegurar que cada nodo procesara un fragmento proporcional y representativo del conjunto de datos completo, evitando el desfase de datos y apoyando la generalización equilibrada del modelo. El escalado aseguró que todas las variables numéricas contribuyeran por igual durante el entrenamiento distribuido, evitando que características de mayor magnitud dominaran el proceso de aprendizaje entre los nodos. Esta estrategia de particionamiento estructurado mejoró la fiabilidad predictiva y ayudó a evitar el sobreajuste al mantener una clara separación entre los datos de entrenamiento y evaluación en todo el clúster distribuido.
Preprocesamiento de datos
Gestión de valores faltantes
Los conjuntos de datos médicos suelen contener registros incompletos debido a errores de entrada de datos, fallos en el dispositivo o la falta de respuesta del paciente durante la recogida de datos clínicos. Antes del entrenamiento del modelo, se examinaban todos los atributos del conjunto de datos para detectar valores ausentes o nulos. Se identificaron y gestionaron filas con valores ausentes en características clínicas críticas, como presión arterial, colesterol y frecuencia cardíaca, utilizando imputación de medias para variables numéricas y imputación de modo para variables categóricas. Este enfoque preservaba la distribución estadística del conjunto de datos asegurando que ninguna muestra de entrenamiento se descartara innecesariamente, manteniendo la máxima disponibilidad de datos para el aprendizaje de modelos entre nodos HDFS distribuidos.
Escalado de características
Las características numéricas, como la edad, la presión arterial, los niveles de colesterol y la frecuencia cardíaca máxima, presentan rangos de valores significativamente diferentes, lo que puede hacer que características de mayor magnitud influyan desproporcionadamente en el entrenamiento con modelos. Para abordar esto, se aplicó un escalador robusto basado en el rango intercuartílico a todos los atributos numéricos continuos. Esta estrategia de escalado es especialmente adecuada para conjuntos de datos médicos donde valores clínicos extremos que representan condiciones raras o graves podrían distorsionar el proceso de aprendizaje. El escalado aseguró que todas las variables numéricas contribuyeran por igual durante el entrenamiento del modelo y se aplicara de forma consistente en todos los nodos de trabajo distribuidos usando flujos de trabajo MapReduce.
Codificación
Las variables categóricas con más de dos categorías distintas, incluyendo cp (tipo de dolor torácico), restecg (resultados electrocardiográficos en reposo) y thal (tipo talasemia), se transformaron mediante codificación one-hot. Este proceso convertía cada atributo categórico en un conjunto de columnas numéricas binarias indicadoras, produciendo representaciones que los algoritmos de aprendizaje automático pueden procesar eficazmente sin imponer relaciones ordinales artificiales entre valores de categoría. Las variables categóricas binarias se mantuvieron en su forma numérica original. Todas las operaciones de codificación se ejecutaban como trabajos distribuidos de MapReduce entre bloques de datos HDFS, asegurando una transformación consistente en todos los fragmentos de conjunto de datos particionados.
División tren/prueba
El conjunto de datos preprocesado se particionó en subconjuntos de entrenamiento y prueba mediante una división 80:20, con un 80% asignado al entrenamiento del modelo y un 20% reservado para la evaluación del rendimiento sobre datos no vistos. La variable objetivo, que indica la presencia o ausencia de enfermedad cardíaca, se separó del conjunto de características independiente antes de la escissió. Esta partición se aplicó de forma uniforme en todos los nodos HDFS distribuidos para asegurar que cada nodo trabajador procesara un fragmento proporcional y representativo del conjunto de datos completo, evitando el sesgo de los datos. La estrategia de división 80:20 mejoró la fiabilidad predictiva, mejoró la generalización del modelo y mantuvo una clara separación entre los datos de entrenamiento y evaluación en el entorno distribuido del clúster, evitando así el sobreajuste.
Implementación del modelo
El modelo Cluster Visualized Hadoop Distributed Decision Tree (CViHDDT) clasifica a los pacientes en categorías de riesgo utilizando un árbol de decisión distribuido. El algoritmo del árbol de decisión divide recursivamente el conjunto de datos en función de las características más informativas, maximizando la separación entre pacientes con y sin enfermedad cardíaca. Dentro del marco distribuido Hadoop, este proceso se ejecuta en múltiples nodos de computación, permitiendo procesar grandes conjuntos de datos de forma eficiente. La arquitectura distribuida reduce el tiempo computacional mientras mejora la escalabilidad. El algoritmo Cluster Visualized Hadoop Distributed K-Nearest Neighbor (CViHDKNN) utiliza el mismo conjunto de datos pero aplica una estrategia de clasificación diferente. En lugar de construir un árbol de decisión, el modelo identifica a los pacientes vecinos más cercanos basándose en atributos médicos como la presión arterial, los niveles de colesterol y la angina inducida por el ejercicio. Utilizando computación distribuida, el algoritmo KNN agrupa eficientemente a pacientes con características médicas similares mientras gestiona la complejidad computacional.
El principio de clasificación del modelo distribuido de K-vecinos más cercanos se ilustra en la Figura 2, donde se asigna una nueva instancia a una clase basada en la clase mayoritaria entre sus vecinos más cercanos. Las técnicas de visualización de clústeres permiten a los profesionales sanitarios identificar grupos de pacientes con características clínicas similares, mejorando así la interpretabilidad y apoyando recomendaciones de tratamiento personalizadas. El marco propuesto para la predicción de enfermedades cardíacas integra preprocesamiento de datos, algoritmos de aprendizaje automático distribuido y técnicas de visualización de clústeres. Aprovechando las capacidades de computación distribuida de Hadoop, el framework procesa eficientemente grandes conjuntos de datos sanitarios manteniendo una alta precisión e interpretabilidad en las predicciones, lo que permite la detección temprana de enfermedades cardíacas y una mejor toma de decisiones clínicas.
Árbol de decisión distribuido de Hadoop visualizado por clúster (CViHDDT):
Entrenamiento con árbol de decisión distribuido
El modelo propuesto de Árbol de Decisión Distribuido Hadoop Visualizado en Clúster (CViHDDT) difiere fundamentalmente de la construcción tradicional de árboles de decisión al distribuir el proceso de construcción de árboles entre múltiples nodos del ecosistema Hadoop en lugar de construir todo el árbol en una sola máquina. Los nodos trabajadores individuales construyen árboles de decisión parciales localmente sobre su subconjunto asignado del conjunto de datos utilizando MapReduce o Apache Spark para el procesamiento paralelo. Estos árboles parciales construidos localmente se combinan posteriormente en un árbol de decisión global completo que abarca todo el conjunto de datos distribuido. Esta estrategia de entrenamiento distribuido acelera significativamente el entrenamiento de modelos, permitiendo que el marco gestione eficientemente conjuntos de datos médicos de varios terabytes a gran escala. La infraestructura de computación paralela proporcionada por Hadoop garantiza que el modelo CViHDDT sea inherentemente escalable y adecuado para soluciones sanitarias basadas en big data. Tras la construcción del árbol distribuido, se aplican técnicas de visualización de clústeres para mejorar la interpretabilidad del modelo agrupando nodos del árbol de decisión en grupos de pacientes con condiciones médicas similares mediante algoritmos como k-medias y agrupación jerárquica. Este proceso de agrupación genera categorías de riesgo clínicamente significativas—como enfermedades cardíacas leves, moderadas y graves—que permiten a los profesionales sanitarios identificar patrones en los datos de los pacientes, comprender la progresión de la enfermedad y formular planes de tratamiento personalizados.
Selección de características
Antes del entrenamiento distribuido del árbol de decisión, el modelo CViHDDT aplica una cadena estructurada de preprocesamiento y selección de características a los datos médicos en bruto ingeridos de HDFS. Los valores ausentes se abordan mediante algoritmos de imputación para gestionar historias clínicas incompletas y evitar la pérdida de datos sin descartar muestras de pacientes. La normalización Robust Scaler se aplica a características numéricas como la presión arterial y los niveles de colesterol para mitigar la influencia desproporcionada de los valores atípicos prevalentes en los conjuntos de datos médicos. Variables categóricas como el género y la historia familiar de enfermedades cardíacas se transforman usando codificación one-hot o etiqueta para producir representaciones numéricas compatibles con algoritmos de aprendizaje automático. Tras el preprocesamiento, se realiza la extracción de características para identificar los atributos clínicos clave que más predicen la enfermedad cardíaca. Esta etapa elimina características irrelevantes y redundantes del conjunto de datos, reduciendo los costes computacionales en las etapas posteriores de entrenamiento distribuido y asegurando que solo se mantengan los atributos más informativos desde el punto de vista diagnóstico —como el tipo de dolor torácico, la presión arterial en reposo, el colesterol sérico, la frecuencia cardíaca máxima y la depresión ST— como insumos para el proceso de construcción del árbol de decisión distribuido. Esta reducción sistemática de características mejora la eficiencia del modelo, reduce el tiempo de entrenamiento entre nodos distribuidos y mejora la fiabilidad predictiva general del marco CViHDDT al centrar el proceso de aprendizaje en atributos con el mayor poder discriminativo clínico.
Flujo de trabajo de MapReduce
El modelo de programación MapReduce constituye la columna vertebral computacional de la cadena de entrenamiento distribuida CViHDDT, permitiendo el procesamiento paralelo del conjunto de datos de enfermedades cardíacas en todos los nodos de trabajo del clúster Hadoop. En la fase del mapa, cada nodo trabajador procesa de forma independiente su fragmento de datos HDFS asignado, calculando estructuras parciales del árbol de decisión y estadísticas locales de división — incluyendo valores de Ganancia de Información y Índice de Gini — para cada atributo candidato, sin necesidad de acceder a datos almacenados en otros nodos. En la fase de reducción, los árboles parciales computados localmente y estadísticas suficientes se agregan en todos los nodos para construir el árbol de decisión global completo, consolidando el conocimiento distribuido aprendido en cada nodo en un único modelo predictivo unificado. Esta descomposición por reducción de mapas del proceso de construcción de árboles permite que el modelo CViHDDT escale linealmente con el número de nodos trabajadores, haciendo factible computacionalmente el análisis en tiempo real de conjuntos de datos médicos a gran escala. El flujo de trabajo MapReduce también soporta la ejecución distribuida de procedimientos de visualización de clústeres, en los que los algoritmos de agrupación se aplican en paralelo a través de bloques de datos HDFS para agrupar los registros de pacientes en categorías de riesgo según la asignación de nodos de sus árboles de decisión. La evaluación del rendimiento del modelo resultante emplea la precisión, la memoria, la puntuación F1 y la precisión de clasificación como métricas principales, con la visualización distribuida de los conglomerados que reduce aún más los falsos negativos al permitir límites de decisión más finos dentro del árbol — mejorando directamente la sensibilidad para identificar pacientes en riesgo y mejorando la fiabilidad clínica del marco de predicción de enfermedades cardíacas CViHDDT.
Vecino K Distribuido Visualizado en Clúster (CViHDKNN)
Agrupamiento
El marco CViHDKNN (Cluster Visualized Hadoop Distributed K-Nearest Neighbor) comienza aplicando técnicas de agrupamiento al conjunto de datos de enfermedades cardíacas antes de la clasificación, agrupando a pacientes con características médicas similares en grupos coherentes antes de realizar la búsqueda KNN. El conjunto de datos de enfermedades cardíacas, que contiene características clínicas como edad, nivel de colesterol, presión arterial, resultados de ECG y frecuencia cardíaca, está preprocesado y distribuido entre los nodos del grupo Hadoop mediante HDFS. A continuación, se aplican algoritmos de agrupamiento, incluyendo K-Means y Jerarchical Clustering, a través de estas particiones de datos distribuidas para dividir el conjunto de datos en grupos de pacientes que comparten perfiles médicos relacionados. Este paso de agrupamiento previo a la clasificación cumple una función computacional crítica: al restringir el espacio de búsqueda de KNN solo al clúster más relevante en lugar de todo el conjunto de datos, el algoritmo reduce drásticamente el número de cálculos de distancia requeridos por instancia de consulta. Visualizar estos grupos proporciona un beneficio clínico adicional al permitir la identificación de subgrupos de pacientes con características médicas estrechamente relacionadas y al apoyar una categorización más significativa de los perfiles de riesgo antes de la etapa de clasificación del vecino más cercano. La optimización basada en agrupamiento no solo reduce la sobrecarga computacional, sino que también mejora la precisión de la clasificación asegurando que cada instancia de consulta se compare solo con los registros de pacientes más similares en contexto, lo que hace que este enfoque sea especialmente adecuado para conjuntos de datos de enfermedades cardíacas a gran escala donde el cálculo exhaustivo de distancias a través de todo el conjunto de datos sería computacionalmente prohibitivo.
KNN distribuida
El componente KNN distribuido de CViHDKNN aborda la limitación fundamental de escalabilidad del KNN tradicional, que requiere cargar todo el conjunto de datos en memoria antes de calcular las distancias entre la instancia de consulta y todos los puntos de datos almacenados. En el marco CViHDKNN, este cálculo de distancia se paraleliza entre múltiples nodos trabajadores en el clúster Hadoop usando particiones de datos distribuidas por HDFS, asegurando que no se requiera ningún nodo individual para procesar el conjunto de datos completo. Cada nodo trabajador calcula de forma independiente la distancia entre la instancia de consulta y los registros de pacientes almacenados en su fragmento de datos HDFS asignado localmente, identificando a los vecinos más cercanos dentro de su partición. Al aprovechar las capacidades de procesamiento paralelo de Hadoop, CViHDKNN mejora drásticamente la escalabilidad y permite una gestión eficiente de grandes cantidades de datos de pacientes relacionados con la salud. Esta arquitectura distribuida también mejora la seguridad de los datos, ya que los registros sensibles de los pacientes permanecen dentro del entorno del clúster distribuido en lugar de transferirse a servidores en la nube externos o máquinas locales centralizadas. La combinación de reducción del espacio de búsqueda guiada por clústeres y cálculo de distancias distribuidas por Hadoop da lugar a un sistema que logra tanto eficiencia computacional como precisión predictiva, permitiendo la predicción en tiempo real de enfermedades cardíacas en conjuntos de datos médicos a gran escala. Los resultados experimentales confirman que la implementación distribuida alcanza una precisión de clasificación del 85,25%, lo que representa una mejora significativa en el rendimiento respecto a la línea base tradicional de KNN no distribuida, atribuible directamente a la estrategia de procesamiento distribuida y mejorada por clúster.
Clasificación
La etapa de clasificación de CViHDKNN asigna cada instancia de paciente consultado a una clase de enfermedad cardíaca basada en el voto mayoritario entre sus K vecinos más cercanos identificados mediante el proceso de búsqueda distribuida. La elección del valor K influye directamente en los resultados de clasificación y en la precisión predictiva. Cuando K = 1, la instancia de consulta se asigna a la etiqueta de clase de su vecino más cercano, lo que resulta en un límite de decisión altamente localizado que puede ser sensible al ruido en los datos de entrenamiento. Cuando K = 3, la clasificación se determina por la clase mayoritaria entre los tres vecinos más cercanos — por ejemplo, si dos vecinos pertenecen a la Clase 1 (sin enfermedad cardíaca) y uno pertenece a la Clase 2 (enfermedad cardíaca presente), la instancia de consulta se clasifica como Clase 1, proporcionando una decisión más robusta y tolerante al ruido. La fase de reducción de MapReduce agrega los vecinos más cercanos identificados localmente de todos los nodos trabajadores en una lista clasificada globalmente, de la cual se seleccionan los K vecinos más cercanos, y luego calcula el voto mayoritario para producir la predicción final de clase. El rendimiento del marco de clasificación CViHDKNN se evalúa utilizando la precisión, la memoria, la puntuación F1 y la precisión general de la clasificación como métricas principales. La integración de la búsqueda restringida por conglomerados con la votación mayoritaria distribuida produce límites de decisión más finos y precisos que los KNN estándar, reduciendo los falsos negativos en la identificación de pacientes en riesgo y mejorando la sensibilidad, ambos requisitos críticos para la predicción clínicamente fiable de enfermedades cardíacas en entornos distribuidos de análisis sanitario a gran escala.