Predição de Risco de Hipertensão

Machine Learning aplicado à Saúde Cardiovascular

94.2%± 0.7% ROC-AUC Capacidade discriminativa
89.3%± 2.8% Sensibilidade Detecção de casos positivos
91.3%± 3.1% Especificidade Identificação de saudáveis
87.0%± 3.1% F2-Score Métrica clínica principal

O Problema

A hipertensão arterial sistêmica representa um dos maiores desafios de saúde pública mundial. Conhecida como "assassina silenciosa", frequentemente não apresenta sintomas até causar danos significativos ao sistema cardiovascular. A detecção precoce através de modelos preditivos baseados em Machine Learning pode auxiliar profissionais de saúde na identificação de pacientes em risco, possibilitando intervenções preventivas que salvam vidas e reduzem custos com tratamentos.

1.28B

Adultos Afetados

A hipertensão afeta aproximadamente 1,28 bilhão de adultos globalmente

Fonte: WHO Global Report 2023 [6]
46%

Não Diagnosticados

Quase metade dos hipertensos desconhecem sua condição

Fonte: WHO/Lancet Study 2021 [7]
#1

Fator de Risco

Principal fator de risco prevenível para doenças cardiovasculares, causando 10,8 milhões de mortes/ano

Fonte: WHO Fact Sheet 2024 [8]

Metodologia

Pipeline completo de Machine Learning seguindo melhores práticas

1

Análise Exploratória

Estatísticas descritivas, correlações, outliers, multicolinearidade (VIF)

2

Pré-processamento

Imputação, SMOTE (apenas treino), escalonamento, split estratificado

3

Treinamento

10 modelos, validação cruzada 5-fold, ensemble methods

4

Otimização

Grid Search, Random Search, análise de threshold clínico

5

Interpretabilidade

Feature importance, SHAP values, validação clínica

Diferenciais Metodológicos

  • Sem Data Leakage: SMOTE aplicado exclusivamente no conjunto de treino
  • Métricas Clínicas: F2-Score priorizando minimização de falsos negativos
  • Validação Robusta: CV estratificada 5-fold com múltiplas seeds
  • Threshold Otimizado: Análise de diferentes limiares para contextos clínicos

Dataset

Base de dados utilizada para treinar e validar o modelo preditivo

O que é um Dataset?

Um dataset (conjunto de dados) é a base de informações utilizada para "ensinar" o modelo de Machine Learning. Neste projeto, utilizamos dados reais de 4.240 pacientes, contendo informações clínicas e demográficas. A prevalência de 31% indica que aproximadamente 1 em cada 3 pacientes no estudo possui hipertensão, o que representa um desbalanceamento que foi tratado com técnicas específicas (SMOTE) durante o treinamento.

Dataset: O conjunto de dados utilizado neste projeto está disponível publicamente no Kaggle.
Acesse o link: Kaggle - hypertension-risk-model-main

4.240 Pacientes
12 Features
31% Prevalência

Variáveis do Modelo

Variável Tipo Descrição
pressao_sistolica Contínua Pressão arterial sistólica (mmHg)
pressao_diastolica Contínua Pressão arterial diastólica (mmHg)
idade Contínua Idade em anos
imc Contínua Índice de Massa Corporal (kg/m²)
colesterol_total Contínua Colesterol total (mg/dL)
glicose Contínua Glicose sanguínea (mg/dL)
frequencia_cardiaca Contínua Frequência cardíaca (bpm)
cigarros_por_dia Contínua Quantidade de cigarros por dia
sexo Categórica 0 = Feminino, 1 = Masculino
fumante_atualmente Categórica 0 = Não, 1 = Sim
medicamento_pressao Categórica 0 = Não, 1 = Sim
diabetes Categórica 0 = Não, 1 = Sim

Resultados

Comparação de 10 modelos com validação cruzada estratificada

Como interpretar os resultados?

Testamos 10 algoritmos diferentes de Machine Learning para encontrar o mais adequado para prever hipertensão. O Random Forest foi selecionado como melhor modelo por apresentar o melhor equilíbrio entre detectar corretamente pacientes com hipertensão (alta sensibilidade) e não gerar alarmes falsos desnecessários (boa especificidade).

Em contexto médico, prioriza-se não deixar passar casos positivos (falsos negativos), por isso usamos o F2-Score como métrica principal de decisão.

Melhor Modelo

Random Forest

95.08% ROC-AUC
84.84% F2-Score
90.46% Recall
79.89% Precision
n_estimators=100, max_depth=10, min_samples_split=2

Gradient Boosting

AUC: 95.96%

F2: 84.80%

XGBoost

AUC: 95.34%

F2: 84.30%

Logistic Regression

AUC: 95.47%

F2: 82.81%

AdaBoost

AUC: 95.02%

F2: 84.73%

Comparação de Métricas

O que mostra: Compara o desempenho de todos os modelos testados usando diferentes métricas.

Use o dropdown para alternar entre métricas. Quanto maior a barra, melhor o desempenho do modelo naquela métrica específica.

Curvas ROC

O que mostra: A curva ROC ilustra a capacidade do modelo em distinguir entre pacientes com e sem hipertensão.

Quanto mais a curva se aproxima do canto superior esquerdo, melhor o modelo. A área sob a curva (AUC) resume essa capacidade: valores próximos a 100% indicam excelente discriminação.

Matriz de Confusão

O que mostra: Resume os acertos e erros do modelo. Verdadeiros Positivos (VP): pacientes com hipertensão corretamente identificados. Verdadeiros Negativos (VN): pacientes saudáveis corretamente identificados.

Falsos Negativos (FN): pacientes com hipertensão não detectados (mais crítico em saúde). Falsos Positivos (FP): alarmes falsos em pacientes saudáveis.

Radar Multi-Métrica

O que mostra: Visualização comparativa de múltiplas métricas simultaneamente para os principais modelos.

Cada eixo representa uma métrica diferente. Um modelo ideal teria todas as métricas próximas de 100%, formando um polígono grande. Útil para identificar pontos fortes e fracos de cada modelo.

Glossário de Métricas

ROC-AUC Mede a capacidade geral do modelo distinguir entre classes. Valores acima de 90% são considerados excelentes.
Sensibilidade (Recall) Percentual de pacientes com hipertensão que o modelo detecta corretamente. Alta sensibilidade = poucos casos perdidos.
Especificidade Percentual de pacientes saudáveis corretamente identificados. Alta especificidade = poucos alarmes falsos.
Precisão Dos pacientes que o modelo classifica como hipertensos, quantos realmente são. Mede a confiabilidade dos alertas positivos.
F2-Score Média ponderada que prioriza a sensibilidade (2x mais peso). Ideal para contextos médicos onde perder um caso positivo é mais grave que um alarme falso.
Acurácia Percentual total de predições corretas. Métrica simples, mas pode ser enganosa em datasets desbalanceados.

Interpretabilidade

Entendendo as decisões do modelo para validação clínica

Por que a Interpretabilidade é importante?

Em aplicações médicas, não basta o modelo fazer predições precisas — é fundamental entender por que ele chegou àquela conclusão. A interpretabilidade permite que médicos validem se o modelo está usando critérios clinicamente relevantes, aumentando a confiança no sistema e facilitando a tomada de decisão compartilhada com o paciente.

Modelos "caixa-preta" que não explicam suas decisões são menos aceitos na prática clínica.

Importância das Features

O que mostra: Quanto cada variável contribui para a decisão do modelo. Barras maiores indicam maior influência na predição. As cores identificam a categoria clínica de cada variável. Passe o mouse sobre cada barra para ver detalhes adicionais.

Pressão Arterial Demografia Antropométricas Biomarcadores Medicamentos Estilo de Vida
Pressão Sistólica
45.8% Pressão Arterial
Pressão Diastólica
26.3% Pressão Arterial
Idade
7.0% Demografia
IMC
5.8% Antropométricas
Colesterol Total
3.3% Biomarcadores

Importância por Categoria Clínica

O que mostra: Agrupamento das variáveis por categoria médica. O tamanho de cada círculo representa a contribuição total daquela categoria para as predições do modelo. Note como a Pressão Arterial domina, o que está alinhado com o conhecimento médico estabelecido sobre hipertensão.

36.1%
Pressão Arterial
5.8%
Antropométricas
3.8%
Demografia
3.1%
Biomarcadores

Importância das Features (Gráfico Interativo)

O que mostra: Versão interativa do ranking de importância das variáveis.

Passe o mouse sobre as barras para ver detalhes de cada variável, incluindo sua categoria clínica e descrição. As variáveis de pressão arterial dominam, validando o conhecimento médico estabelecido.

Análise de Threshold

O que mostra: Como sensibilidade e especificidade variam conforme o threshold.

As linhas verticais pontilhadas indicam os três cenários clínicos recomendados. Note o trade-off: aumentar a sensibilidade reduz a especificidade e vice-versa. O ponto de cruzamento representa o threshold "ótimo" para equilíbrio entre ambas.

Interpretação prática dos thresholds

Thresholds Clínicos Recomendados

O que mostra: O threshold (limiar de decisão) determina a partir de qual probabilidade o modelo classifica um paciente como "em risco". Um threshold mais baixo (ex: 0.30) detecta mais casos, mas gera mais alarmes falsos.

Um threshold mais alto (ex: 0.80) é mais preciso, mas pode deixar passar alguns casos. A escolha depende do contexto clínico: triagem populacional vs. confirmação diagnóstica.

Triagem

0.30

Sensibilidade: 95.5%

Especificidade: 86.5%

Minimizar falsos negativos

Balanceado

0.50

Sensibilidade: 91.5%

Especificidade: 91.0%

Uso geral

Confirmação

0.80

Sensibilidade: 79.7%

Especificidade: 95.7%

Minimizar falsos positivos

Arquitetura de Deploy

Pipeline de produção na AWS com alta disponibilidade

Por que Deploy em Nuvem?

Um modelo de Machine Learning só gera valor quando está disponível para uso real. O deploy na AWS permite que o sistema seja acessado de qualquer lugar, 24 horas por dia, com alta disponibilidade e baixa latência.

A arquitetura serverless (sem servidores dedicados) reduz custos e escala automaticamente conforme a demanda, tornando o sistema viável mesmo para instituições com recursos limitados.

Usuário
CloudFront CDN + HTTPS
S3 Bucket UI Estática
API Gateway HTTP API
Lambda Python 3.11
ML Layer Scikit-learn

Lambda Function

  • Python 3.11 Runtime
  • 1024 MB de memória
  • Random Forest Model
  • Resposta em <100ms

ML Dependencies

  • NumPy 2.2.6
  • Pandas 2.3.3
  • Scikit-learn 1.7.2
  • Imbalanced-learn 0.14

API Gateway

  • HTTP API (REST)
  • CORS habilitado
  • Endpoint: /predict
  • Health check: /health

CloudFront + S3

  • CDN Global
  • HTTPS automático
  • Cache otimizado
  • UI responsiva

Equipe

Orientador

Prof. Dr. Anderson Henrique Rodrigues Ferreira

Orientador e Desenvolvedor

CEUNSP - Centro Universitário Nossa Senhora do Patrocínio

Alunos Desenvolvedores

  • Marcelo V Duarte Colpani
  • Nicolas Souza
  • Rubens Jose Collin
  • Tiago Dias Borges

Referências

Artigos científicos que fundamentam a metodologia utilizada

[1]

M. Kivrak, U. Avci, H. Uzun, and C. Ardic, "The impact of the SMOTE method on machine learning and ensemble learning performance results in addressing class imbalance in data used for predicting total testosterone deficiency in type 2 diabetes patients," Diagnostics, vol. 14, no. 23, Art. no. 2634, Nov. 2024.
Link de Acesso: https://doi.org/10.3390/diagnostics14232634

[2]

A. Fernández, S. García, F. Herrera, and N. V. Chawla, "SMOTE for learning from imbalanced data: Progress and challenges, marking the 15-year anniversary," J. Artif. Intell. Res., vol. 61, pp. 863–905, 2018.
Link de Acesso: https://doi.org/10.1613/jair.1.11192

[3]

M. Talebi Moghaddam, Y. Jahani, Z. Arefzadeh, A. Dehghan, M. Khaleghi, M. Sharafi, and G. Nikfar, "Predicting diabetes in adults: Identifying important features in unbalanced data over a 5-year cohort study using machine learning algorithm," BMC Med. Res. Methodol., vol. 24, Art. no. 220, Sep. 2024.
Link de Acesso: https://doi.org/10.1186/s12874-024-02341-z

[4]

Y. Li, Y. Yang, P. Song, L. Duan, and R. Ren, "An improved SMOTE algorithm for enhanced imbalanced data classification by expanding sample generation space," Sci. Rep., vol. 15, Art. no. 23521, Jul. 2025.
Link de Acesso: https://doi.org/10.1038/s41598-025-09506-w

[5]

J. Zhu, S. Pu, J. He, D. Su, W. Cai, X. Xu, and H. Liu, "Processing imbalanced medical data at the data level with assisted-reproduction data as an example," BioData Mining, vol. 17, Art. no. 29, Sep. 2024.
Link de Acesso: https://doi.org/10.1186/s13040-024-00384-y

[6]

World Health Organization, "Global report on hypertension: The race against a silent killer," Geneva: WHO, Sep. 2023.
Link de Acesso: https://www.who.int/teams/noncommunicable-diseases/hypertension-report

[7]

NCD Risk Factor Collaboration (NCD-RisC), "Worldwide trends in hypertension prevalence and progress in treatment and control from 1990 to 2019: a pooled analysis of 1201 population-representative studies with 104 million participants," The Lancet, vol. 398, no. 10304, pp. 957–980, Sep. 2021.
Link de Acesso: https://doi.org/10.1016/S0140-6736(21)01330-1

[8]

World Health Organization, "Hypertension: Key facts," WHO Fact Sheets, Mar. 2023. [Online].
Link de Acesso: https://www.who.int/news-room/fact-sheets/detail/hypertension