Skip to content

Latest commit

 

History

History
166 lines (103 loc) · 10.1 KB

File metadata and controls

166 lines (103 loc) · 10.1 KB

Bootcamp Data Science Alura - Projeto Final

Previsão da admissão na UTI: Um modelo de Machine Learning a partir de dados dos pacientes do Hospital Sírio Libanês

Neste repositório você encontrará o meu projeto final do Bootcamp Data Science 2021-22 da Alura.

Devido a pandemia de COVID-19, os hospitais ficaram sobrecarregados faltando recursos de saúde como leitos de UTI, profissionais entre outros. Houve a necessidade de prever a quantidade necessária de recursos, principalmente de leitos de UTI.

O objetivo desse projeto foi criar um modelo de Machine Learing que pudesse conseguir otimizar a necessidade real da permissão de entrada na UTI de acordo com dados individuais dos pacientes.

🪧 Vitrine.Dev
✨ Nome Previsão da admissão na UTI
🏷️ Tecnologias python
🚀 URL
🔥 Desafio

Fonte: @gpiron

Detalhes do projeto

Elaborado por Francico Foz


Projeto

Conjunto de Dados

Foram utilizados os dados disponibilizados pelo Hospital Sírio-Libanês no Kaggle .

Os dados foram limpos e dimensionados em cada coluna de com o "Min Max Scaler" para ficar entre -1 e 1.

A quantidade de características (colunas) para cada tipo de informação agrupadas são:

Informações demográficas do paciente (03) Doenças agrupadas anteriores do paciente (09) Resultados de sangue (36) Sinais vitais (06)

Totalizando 54 características, que ainda se desdobram em sua média, mediana, max, min etc.

A coluna ICU é o resultado da informação se a pessoa foi ou não para a UTI, a partir da janela "Window" que é a escala de tempo medido de cada linha.

Como abaixo:

Janela 0-2 De 0 a 2 horas da admissão 2-4 De 2 a 4 horas da admissão 4-6 De 4 a 6 horas da admissão 6-12 Das 6 às 12 horas da admissão Acima de 12 Acima de 12 horas da admissão

Estrutura do projeto

Este projeto realizará as 4 primeiras etapas do workflow de um projeto de Machine Learning, entregando o resultado para ser realizado posteriormente o Deploy e monitoramento.

Desta forma o projeto foi dividido em 3 notebooks:

Considerações finais:

Devido as características do conjunto de dados iniciais, foi realizada diversas etapas na limpeza e modelagem dos dados:

  1. Excluiu os pacientes que já entraram nas duas primeiras horas na UTI, devido a incerteza se foi coletado os dados antes ou depois da entrada.
  2. Foi preenchido os dados faltantes do conjunto a partir do dado anterior e posterior a ele.
  3. Verifiquei se o paciente iria para a UTI ou não até a sua última janela e coloquei a informação na linha da primeira janela (0-2). Exclui as linhas com as demais janelas, para que pudesse prever com os resultados a partir das primeiras horas.
  4. Trasnformei a variável "AGE_PERCENTIL" em dados categóricos, afim de se tornar uma variável para o modelo.
  5. Exclui as variáveis com alta correlação entre elas, para que o modelo não sofra sobreajuste (overfitting).
  6. Mantive o gênero dos pacientes, pois de acordo com as literaturas citadas de Iaccarino et al (2020) e PECKHAM et al (2020) há uma diferença entre os gêneros nas complicações da doença.
  7. Exclui as colunas que possuaim valores únicos (apenas 1, no qual foram as medidas "DIFF" das variáveis) em todas as linhas, para que pudesse ter um conjunto de dados mais limpo possível para o modelo.

Na análise exploratória foi possível entender melhor as variáveis e o quadro geral:

  1. O total de pacientes do conjunto foi de 353.

  1. Desses 190 (54%) não tiveram entrada e 163 (46%) tiveram.

  1. Pacientes acima de 65 anos de idade tem uma maior frequência de entrada na UTI.

  1. Ao visualizar todas as faixas etárias, foi possível confirmar que a partir da faixa de 61-70 anos frequência se iguala e a partir dos 70 anos a entrada na UTI é maior.

  1. Também pude confirmar a questão da entrada na UTI através do gênero, no qual os homens tem maior incidência de complicações na doença.

  1. Analisei em conjunto todas as doenças anteriores dos pacientes, para pudesse entender ao todo como cada pessoa com estas características se comportaria na entrada ou não na UTI. A maior frequência está em pacientes que não tiveram nenhuma outra doença mas se concentrou em outras doenças. Talvez se esta variável estivesse mais detalhada em outras classificações, poderíamos ter um modelo mais assertivo do ponto de vista das doenças anteriores.

  2. Dentre os indicadores sanguíneos, observei os que tiveram maior diferença (positiva e negativa), entre as pessoas que entraram ou não na UTI foram:

  • Negativa:
    • Sódio
    • Hematócritos
    • Linfóciotos
    • BIC Venoso
    • PH Venoso

  • Positiva:
    • Lactato
    • PCR
    • SAT02 Venoso
    • Cálcio
    • Potássio

  1. Já nos sinais vitais os dois indicadores que tiveram maior diferença foram o de temperatura (-35%) e D-Dímero (22%) dos pacientes que não entraram na UTI.

Durante o desenvolvimento do modelo, escolhi algumas etapas para definir o melhor:

  1. Baseado no artigo científico de Subudhi et al(2021), escolhi 3 modelos que tiveram maior índice de F1 para realizar os testes do conjunto de dados:
  • Bagging Classifier
  • Gradient Boosting Classifier
  • Ramdom Florest
  1. Realizei os testes com cada um deles, visualizando as métricas de AUC, a tabela de precision, recall e f1-score, a matriz de confusão do teste e o AUC médio do intervalo de AUC coletado, ao rodar ele 50 vezes.
  2. A partir desse etapa, escolhi os dois modelos que tiveram melhor desempenho de AUC médio e Reccal no caso de entrada na UTI (pois é uma medida muito importante para que o modelo não errasse em pessoas que deveriam entrar na UTI e o modelo indicasse que ela não precisaria).
  3. Otimizei os hiperparâmetros do modelo com uma abordagem Bayesiana, procurando os melhores parâmetros.
  4. Realizei os testes das métricas novamente.
  5. Os resultados mostraram o Gradient Boosting otimizado com um melhor resultado de AUC médio (0.794) dentre o intervalo, além dele ter tido um reccal em pessoas que deveriam entrar na UTI de 0.79.

Foi um modelo definido com uma métrica média não muito alta, mas ele poderá ser uma importante ferramenta para os profissionais da saúde poderem já se alertarem aos primeiros sinais dos pacientes ao entrarem no hospital.

Como próximos passos seria interessante que ele estivesse fazendo parte de um sistema integrado as ferramentas dos profissionais da saúde, mostrando a previsão do modelo para que o profissional pudesse tomar a decisão.

Referências

IACCARINO, G. et al. Gender differences in predictors of intensive care units admission among COVID-19 patients: The results of the SARS-RAS study of the Italian Society of Hypertension. PloS one, v. 15(10), oct. 2020. DOI https://doi.org/10.1371/journal.pone.0237297 . Disponível em: https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0237297 . Acesso em: 25 jan. 2022.

PECKHAM, H. et al. Male sex identified by global COVID-19 meta-analysis as a risk factor for death and ITU admission. Nature Communications, v. 11(6317), dec. 2020. DOI: https://doi.org/10.1038/s41467-020-19741-6 . Disponível em: https://www.nature.com/articles/s41467-020-19741-6#citeas . Acesso em: 25 jan. 2022.

SUBUDHI, S. et al. Comparing machine learning algorithms for predicting ICU admission and mortality in COVID-19. NPJ Digit. Med. 4, v. 87, may 2021. DOI: https://doi.org/10.1038/s41746-021-00456-x . Disponível em: https://www.nature.com/articles/s41746-021-00456-x#citeas . Acesso em: 29 jan. 2022