Machine Learning aplicado à Saúde Cardiovascular
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.
A hipertensão afeta aproximadamente 1,28 bilhão de adultos globalmente
Fonte: WHO Global Report 2023 [6]Quase metade dos hipertensos desconhecem sua condição
Fonte: WHO/Lancet Study 2021 [7]Principal fator de risco prevenível para doenças cardiovasculares, causando 10,8 milhões de mortes/ano
Fonte: WHO Fact Sheet 2024 [8]Pipeline completo de Machine Learning seguindo melhores práticas
Estatísticas descritivas, correlações, outliers, multicolinearidade (VIF)
Imputação, SMOTE (apenas treino), escalonamento, split estratificado
10 modelos, validação cruzada 5-fold, ensemble methods
Grid Search, Random Search, análise de threshold clínico
Feature importance, SHAP values, validação clínica
Base de dados utilizada para treinar e validar o modelo preditivo
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
| 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 |
Comparação de 10 modelos com validação cruzada estratificada
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.
n_estimators=100, max_depth=10, min_samples_split=2
AUC: 95.96%
F2: 84.80%
AUC: 95.34%
F2: 84.30%
AUC: 95.47%
F2: 82.81%
AUC: 95.02%
F2: 84.73%
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.
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.
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.
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.
Entendendo as decisões do modelo para validação clínica
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.
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.
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.
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.
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.
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.
Sensibilidade: 95.5%
Especificidade: 86.5%
Minimizar falsos negativos
Sensibilidade: 91.5%
Especificidade: 91.0%
Uso geral
Sensibilidade: 79.7%
Especificidade: 95.7%
Minimizar falsos positivos
Pipeline de produção na AWS com alta disponibilidade
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.
Prof. Dr. Anderson Henrique Rodrigues Ferreira
Orientador e Desenvolvedor
CEUNSP - Centro Universitário Nossa Senhora do Patrocínio
Artigos científicos que fundamentam a metodologia utilizada
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
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
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
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
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
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
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
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