Extraer conocimiento de un conjunto de datos (dataset) consiste en buscar relaciones o patrones entre ellos que subyacen como el concepto del dataset y que se puedan generalizar, es decir, aplicar a otros datos. Por ejemplo, relaciones o patrones entre las características (columnas) del dataset. Para determinar qué características son relevantes para una determinada enfermedad (es decir, qué columnas del dataset están relacionadas con el resultado médico, representado en la última columna o outcome), tradicionalmente se efectúa un experimento de clasificación de los pacientes (representado cada uno en una fila del repositorio de datos) respecto del resultado; es decir, a un algoritmo de inteligencia artificial se le introduce un subconjunto de las características a estudiar y este decide si el paciente sufre o no la enfermedad, contándose los aciertos.
En la figura 1, se muestra un ejemplo de un fragmento de un dataset extraído del repositorio de la UCI (Universidad de California en Irvine) en el que las filas son pacientes y las columnas algunas de las características registradas en él (edad – AGE, anemia – ANA, creatinina fosfokinasa – CPH, diabetes – DIA, fracción de eyección – EJF, hipertensión – HBP, hepatitis C – HPC), siendo la última si el paciente sufre o no hepatitis C, el outcome. La idea es encontrar el subconjunto de características que mejor clasifica a los pacientes, lo que supondría que habríamos encontrado una relación entre las características y el outcome o, lo que es lo mismo, conocimiento médico útil.
Normalmente, los experimentos de Aprendizaje Máquina (o ML, por sus iniciales en inglés, Machine Learning) consisten en la construcción de un modelo basado en un tipo de algoritmo y se suelen realizar sobre un conjunto de datos existente: una matriz de datos en la que cada fila representa a un paciente y las columnas diferentes características del mismo, siendo la última la que representa, de forma veraz, si el paciente sufre o no la enfermedad (outcome). Para construir el modelo, se divide el dataset en dos partes (dos grupos de pacientes), entrenándose el algoritmo con una de ellas (se le suministran las características, posiblemente divididas en diferentes subconjuntos, y el algoritmo realiza la clasificación comprobando si su predicción coincide con el outcome, adaptándose de forma automática e iterativa para maximizar el resultado) y, posteriormente, se evalúa su capacidad de predicción utilizando la otra parte del dataset. De esta forma, se puede deducir qué subconjunto de características está relacionado con el outcome.

Para evaluar estas relaciones se utilizan diferentes medidas relacionadas con el número de errores que se producen. La medida normalmente utilizada, o medida F, está directamente relacionada con el número de errores tipo1 y tipo 2, más conocidos como falsos positivos y falsos negativos. Como su nombre indica, un falso positivo es un error en el que se afirma que un paciente (fila del dataset) se clasifica como padeciendo la enfermedad (o outcome médica) cuando en realidad no la padece. Es decir, el modelo que se ha construido a partir del dataset utilizando un determinado algoritmo ML se ha equivocado en este sentido de la clasificación. Por el contrario, un falso negativo es un paciente que se ha clasificado como no padeciendo la outcome cuando en realidad sí la padece. Nótese que, si la outcome es una enfermedad grave, los falsos positivos son relativamente tolerables, mientras que los falsos negativos son absolutamente intolerables. De esta forma, la fórmula de la medida F, también llamada F1, es la siguiente:

donde P es el número total de verdaderos positivos.
Normalmente, el número de errores tipo 1 y tipo 2 es contradictorio y complementario: esto quiere decir que, si modificamos el modelo que construye el algoritmo ML para disminuir los errores tipo 1, estos pueden disminuir, pero como contrapartida aumentan los errores tipo 2 y viceversa. Solo un nuevo sistema que disminuya los dos tipos de error simultáneamente se considera una mejora significativa.
La medida F es una medida global que incluye los dos tipos de error y es un número entre 0 y 1. Cuanto más cerca del 1, menor número de errores de los dos tipos; y si la medida F sube, es que se han disminuido simultáneamente los dos tipos de error. Si disminuye uno de los dos tipos de error y aumenta el otro, la medida F debería continuar siendo la misma o muy parecida.
Problemas con el enfoque tradicional
Sin embargo, este enfoque aplicado para extraer conocimiento científico médico a partir de los datasets presenta varios problemas.
Primer problema: el espacio de búsqueda es inmenso e intratable computacionalmente. Si tenemos n características en el dataset, es decir, (n+1) columnas, incluyendo la columna outcome, el número total de posibles subconjuntos de características asciende a 2n. Este número es absolutamente intratable en cuanto n sube por encima de un valor de aproximadamente 20. Si intentáramos hacer, aunque solo fuera un solo experimento de ML para todos los subconjuntos posibles, nuestro programa tardaría años en ejecutarse.
Segundo problema, y aún más grave, es que cada algoritmo de ML da un resultado distinto y no hay algoritmos mejores que otros a priori. Además, el que clasifique mejor puede estar cometiendo sobreajuste o overfitting (el overfitting se produce cuando el dataset utilizado es demasiado específico y poco generalizable; el algoritmo se adapta muy bien a ese dataset, pero su eficacia es muy baja en datasets diferentes). Si queremos evitar el overfitting , podemos utilizar estrategias como 10-fold cross-validation (CV, en la que el dataset se divide en 10 partes) agravamos el problema de la intratabilidad computacional ya que multiplicaríamos por 10 aproximadamente el tiempo de cómputo necesario para cada algoritmo/experimento de ML.

Solucionando los problemas del enfoque tradicional
Vamos a aplicar una doble metodología para solucionar estos problemas. Por una parte, para combatir el overfitting, vamos a prescindir de valores absolutos de la medida F, construyendo listas ordenadas de todas las combinaciones posibles de subconjuntos de características de unas pocas cardinalidades importantes. De esta forma, reduciendo considerablemente el espacio de búsqueda, también podemos introducir 10-fold CV y reducir el overfitting todavía más.
Por otro lado, vamos a aprovechar el hecho de que diferentes algoritmos ML produzcan diferentes resultados para identificar qué algoritmos se adaptan mejor a cada distribución de probabilidad, es decir, a cada dataset.
Existen multitud de diferentes algoritmos de ML, pero todos están clasificados en unas seis o siete familias diferentes según sus fundamentos científicos. Estas familias son básicamente: (1) estadística bayesiana (ej.: Naïve Bayes); (2) estadística clásica (Logistic Regression); (3) redes neuronales (Multilayer Perceptron); (4) modelos lineales extendidos (Support Vector Machine); (5) ganancia de información (Decision trees); (6) aprendizaje de ejemplos (K-nearest neighbour); (7) modelos agregados (Random Forest).
Para liberarnos de clasificaciones absolutas, que están sujetas a overfitting, nuestro grupo de investigación ha diseñado la metodología OLA (Ordered List Averaging – Promediado de Listas Ordenadas). Esta metodología está basada en construir cuatro listas ordenadas de todos los subconjuntos de 3, 4, 5 y 6 características. Cada lista está ordenada según la medida F producida por la clasificación, según cada algoritmo, de cada subconjunto de características (nodo de la lista).
La Figura 2 muestra un ejemplo del frente (primeros nodos) de las listas ordenadas de subconjuntos de tres características para cuatro de los siete algoritmos de ML utilizados. Se puede ver que el subconjunto de las características [3 (CPH), 4 (DIA), 6 (HBP)] es el que mejor clasifica la outcome usando el algoritmo LR (Logistic Regression), pero usando el algoritmo NB (Naïve Bayes) solo queda en sexta posición; usando MP (Multilayer Perceptron) queda tercero y cuarto con SVM (Support Vector Machine).
![Figura 2. Frente de las listas ordenadas de subconjuntos de tres características para varios algoritmos de ML. El conjunto [3 (CPH), 4 (DIA), 6 (HBP)] destaca como mejor clasificador con LR, pero su posición varía notablemente con NB, MP y SVM.](https://www.fundacionmuyinteresante.org/wp-content/uploads/2025/12/figura-2-Extraccion-de-conocimiento-medico-a-partir-de-repositorios-de-datos-usando-Aprendizaje-Maquina-1024x505.jpg)
De esta forma podemos comparar la ‘bondad’ de un subconjunto de características en términos relativos, evitando el overfitting y teniendo en cuenta la ‘opinión’ de todos los algoritmos. Si queremos una medida objetiva, podemos hacer la media de las posiciones obtenidas por todos los algoritmos.
Además, al usar subconjuntos de cuatro tamaños limitados, se alivia el problema de la intratabilidad computacional, aunque no se soluciona completamente.
A partir de las cuatro listas ordenadas construidas usando OLA, nuestro grupo ha desarrollado una segunda metodología llamada BFA (Best-fitting Algorithm) para extraer conocimiento de datasets sin cometer overfitting y aliviando el problema de la intratabilidad computacional.
La nueva metodología BFA
El objetivo de BFA es saber si las diferencias en las clasificaciones de distintos algoritmos están directamente relacionadas con el conocimiento médico contenido en el dataset, en otras palabras, si hay algoritmos ML que funcionen mejor para clasificar un dataset basándonos en el conocimiento médico ya disponible.
Para ello, BFA codifica el conocimiento médico ya existente en parejas de características presentes en el dataset. Esto quiere decir que, dada una pareja de características, tenemos que codificar (decidir) si esta pareja tiene una relación sinérgica con la outcome del dataset. Por ejemplo, si la outcome es una enfermedad médica, tenemos que averiguar y codificar si las dos características de la pareja mantienen una relación sinérgica, es decir se refuerzan mutuamente, para padecer la enfermedad.
Esto se puede hacer de diferentes formas: por ejemplo, se puede consultar a un médico especialista en la enfermedad. También se pueden consultar artículos médicos sobre esa enfermedad en Pubmed o cualquier otra base de datos médica que se encuentre disponible en la Web. Una alternativa aceptable y validada, que permite acelerar este proceso, es preguntar directamente a ChatGPT u otro LLM. En este caso, hay que saber interpretar bien las respuestas del LLM para decidir si hay relación sinérgica entre la pareja de características o no.
Usamos parejas porque utilizar combinaciones de más características (tres o más) tiene serios inconvenientes. Uno de ellos es que el número de tales combinaciones crece exponencialmente con el número de características, pero, sobre todo, es muy difícil distinguir para los médicos, o para el conocimiento científico médico en general, entre combinaciones de tres o más características con respecto a la outcome. De hecho, es el objetivo de esta investigación. Además, usando combinaciones de solo dos características es suficiente para disparar las diferencias entre algoritmos, ya que buscamos solo diferencias relativas entre estos.

Una vez que tenemos el conocimiento médico codificado en las parejas de características, lo único que tenemos que hacer es ver cómo de bien situadas están esas parejas en las listas ordenadas de subconjuntos de características. Esto equivale a comprobar cómo de bien clasifican las parejas los diferentes algoritmos de ML, ya que las listas están hechas para cada algoritmo.
De esta forma tenemos un número real que nos dice lo bien que cada algoritmo clasifica las parejas relevantes (lo alto que aparecen estas parejas en las listas ordenadas). Pero todavía no sabemos si estos números son producto de la casualidad o, por el contrario, son estadísticamente significativos. Para este tipo de problemas está el llamado test estadístico de Friedman. Con este test se obtiene un valor (p-value) para cada conjunto de listas de subconjuntos de tamaño 3, 4, 5 y 6 características. Este p-value indica la probabilidad de que un resultado sea producto de la casualidad o no; cuanto más bajo es el número, más lejos estamos de que el resultado sea casual. En nuestro ejemplo hemos obtenido p-values de aproximadamente 10-14, lo cual está muy por debajo del límite de 0.05 para ser estadísticamente significativos.
Por último, para conocer qué algoritmo clasifica mejor los subconjuntos de características relevantes, aplicamos el test post-hoc de Nemenyi. Este test utiliza los datos de números reales que hemos suministrado al test de Friedman y calcula un orden entre los algoritmos y un umbral llamado Critical Difference (CD) para decidir los algoritmos estadísticamente significativos.
La Figura 3 muestra el resultado del test de Nemenyi aplicado en un dataset concreto. En este caso, se puede ver que el mejor es RF (Random Forest) y los que quedan dentro del rango de la Critical Difference (CD) también son significativos. Son DT (Decission Tree), SVM (Support Vector Machine) y KN (K-nearest Neighbour).

Esto puede ser muy interesante para identificar con una pequeña cantidad de conocimiento médico disponible (codificado en las parejas sinérgicas) el mejor algoritmo ML para un determinado dataset. Así se puede usar este algoritmo ML de forma masiva para analizar el dataset y extraer de él nuevo conocimiento médico codificado en forma de subconjuntos de características relevantes respecto de la outcome médica. De esta forma, identificando el algoritmo adecuado, podemos obtener conocimiento médico masivamente a partir de un dataset médico determinado.
Referencias
- [1] Sánchez-de-Madariaga R, Pascual Carrasco M, Muñoz Carrero A. A Methodology to Extract Knowledge from Datasets Using ML. Mathematics. 2025; 13(11):1807. doi: https://doi.org/10.3390/math13111807
- [2] UC Irvine Machine Learning Repository. https://archive.ics.uci.edu/
- [3] Witten, I. H., Frank, E., Hall, M. A., Pal, C. J. Data Mining: Practical Machine Learning Tools and Techniques. Morgan Kaufmann; 2016.





