/ Proyectos / Salud / Clasificación de severidad de ansiedad

Clasificación de severidad de ansiedad: comparar métodos de selección de características, no elegir uno a priori

Cómo comparar de forma sistemática varios métodos de selección de variables contra 6 familias de clasificadores, con clases desbalanceadas, para apoyar investigación en salud mental sin fingir que es una herramienta diagnóstica.

13 min de lectura Python · scikit-learn · XGBoost · LightGBM Datos: escalas psicométricas autorreportadas y variables demográficas Aplicable a tesis y proyectos aplicados de investigación en salud
Escalas psicométricas y variables demográficas analizadas con machine learning para clasificar niveles de severidad de ansiedad

Antes de cualquier otra cosa: este proyecto no es una herramienta de diagnóstico. Es un ejercicio de clasificación sobre datos autorreportados, pensado para investigación y aprendizaje. Ningún modelo de este tipo reemplaza una evaluación clínica, y si te preocupa tu ansiedad o la de alguien más, la conversación correcta es con un profesional de salud mental, no con un modelo.

El objetivo técnico era clasificar el nivel de severidad de ansiedad, según la escala GAD-7, en cuatro categorías: mínima, leve, moderada y grave, a partir de escalas psicométricas autorreportadas (fobia social, narcisismo, satisfacción con la vida) y variables demográficas. El reto real no fue solo entrenar un clasificador, fue decidir con qué variables entrenarlo: había varias formas razonables de rankear qué características importaban más, y ninguna era obviamente mejor que las demás sin probarlas.


Mapa del casoContenido


Estructura de alto nivelDiagrama de la solución

Fuente Escalas psicométricas Objetivo Severidad GAD-7 (4 niveles) Limpieza y codificación Balance SMOTE + submuestreo Métodos de selección de features Familias de clasificadores Barrido sistemático selección × clasificador × núm. features Modelo campeón Mejor combinación del barrido Afinación de hiperparámetros RandomizedSearch + GridSearch Severidad estimada (apoyo, no diagnóstico)

Pasa el cursor sobre cada bloque para ver qué hace ese paso.

El bloque de "barrido sistemático" es el corazón del proyecto: en vez de fijar un método de selección de características antes de ver resultados, se deja que la comparación entre docenas de combinaciones decida.


Cómo se construyóConstrucción de la solución

Condiciones del proyecto

RestricciónDato
Naturaleza del proyectoInvestigación y aprendizaje, nunca una herramienta de diagnóstico clínico
Variable objetivoSeveridad de ansiedad en 4 categorías (GAD-7), derivada de un puntaje que debía excluirse de las features para no filtrar información
Balance de clasesLa severidad grave es mucho menos frecuente que la mínima o leve en la población general
Variables disponiblesEscalas psicométricas autorreportadas y datos demográficos, sin una jerarquía de importancia obvia entre ellas
OpciónPor qué se descartó
Elegir un solo método de selección de características por intuiciónDistintos métodos rankean la importancia de forma distinta, y esa diferencia interactúa con el clasificador final; elegir uno sin comparar es apostar
Entrenar sobre las clases desbalanceadas tal cualUn modelo puede lograr accuracy alto prediciendo casi siempre la clase mayoritaria, sin aprender nada útil sobre la severidad grave
Reportar solo accuracy general del mejor modeloEsconde si el modelo realmente distingue bien las clases minoritarias, que son las más relevantes para investigación
Barrido sistemático de método de selección × clasificador × número de features, sobre datos balanceados, con afinación final del campeónDeja que la evidencia, no la intuición, decida qué combinación funciona mejor para este problema específico

Pasos

1

Excluir el puntaje crudo de la variable objetivo

Agente: propuso mantener todas las columnas numéricas disponibles como posibles features.
Criterio aplicado: eliminar explícitamente el puntaje GAD-7 crudo, del que se deriva la categoría de severidad, porque dejarlo como feature sería una fuga de información que hace que el modelo parezca funcionar mucho mejor de lo que realmente puede.

2

Balancear las clases antes de comparar cualquier modelo

Agente: sugería entrenar directamente sobre la distribución original de clases y ajustar después si el desempeño era malo.
Criterio aplicado: aplicar sobremuestreo de las clases minoritarias combinado con submuestreo de la mayoritaria antes de cualquier comparación, para que las métricas de los distintos modelos fueran comparables entre sí desde el principio.

3

Comparar métodos de selección de características de forma sistemática

Agente: proponía usar la importancia de un solo modelo, por ejemplo Random Forest, como criterio único para elegir las variables más relevantes.
Criterio aplicado: probar varios métodos distintos de ranking de importancia contra las 6 familias de clasificadores, barriendo también el número de características, y registrar el accuracy de cada combinación para decidir con evidencia, no con la primera opción razonable.

4

Afinar solo al final, sobre el modelo campeón

Agente: sugería afinar hiperparámetros de cada uno de los modelos probados en el barrido, para no dejar ninguno en desventaja.
Criterio aplicado: afinar hiperparámetros solo sobre la combinación ganadora del barrido, primero con una búsqueda aleatoria amplia y después con una búsqueda en grilla más fina, porque afinar los 36+ combinaciones del barrido completo no era un uso razonable del tiempo de cómputo.

Proceso de iteración

Ajuste documentado, no forzado

El barrido sistemático confirmó que no había un método de selección de características universalmente mejor: la combinación ganadora cambiaba según el clasificador base, y el número óptimo de features tampoco era el mismo para todos. Eso hubiera sido invisible si se hubiera fijado un solo método desde el inicio. Al mismo tiempo, hay que ser honestos con las limitaciones: los datos son autorreportados, la muestra no es clínicamente representativa, y balancear las clases con técnicas sintéticas no sustituye tener más datos reales de severidad grave. Este proyecto demuestra el método, no valida un instrumento de screening listo para producción.


CierreLecciones importantes

Cuando no hay una razón fuerte para preferir un método de selección de características sobre otro, la respuesta correcta no es elegir el que suena más sofisticado, es comparar varios con la misma evidencia y dejar que el resultado decida. Ese barrido sistemático, método de selección por clasificador por número de features, fue el trabajo real de este proyecto, mucho más que el ajuste fino del modelo final.

La segunda lección es de límites, no de técnica. Un modelo entrenado sobre datos autorreportados, con clases balanceadas de forma sintética, es una herramienta de investigación, no un instrumento clínico. Ser explícito sobre eso, en el artículo y en el notebook, es tan parte del trabajo como cualquier línea de código.

Si quieres ver un enfoque publicado con una idea similar, clasificación de severidad de ansiedad con machine learning sobre escalas estandarizadas, este paper es una buena referencia del nivel de la contribución: Severity Classification of Anxiety and Depression Using GAD-7 and PHQ-9: Applying Classification and Regression Tree Models.

Termina ya tu proyecto

¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.

El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.

53
proyectos
8
sectores
100%
aplicado

Sin registro. Acceso inmediato