Add files via upload

This commit is contained in:
2025-08-21 13:59:02 -03:00
committed by GitHub
parent 303bc7ab5a
commit 2f43a7a8ea
2 changed files with 101 additions and 15 deletions

View File

@@ -4,8 +4,11 @@
Organizações de saúde enfrentam grandes desafios para prever o risco de internação hospitalar de pacientes atendidos no pronto-socorro.
Normalmente, os médicos e equipes de triagem precisam tomar decisões rápidas com base em informações incompletas, o que pode levar a:
• Subutilização ou sobrecarga de leitos.
• Internações desnecessárias que aumentam custos.
• Altos riscos para pacientes que deveriam ser internados mas acabam sendo liberados.
Essas dificuldades impactam a eficiência hospitalar e a qualidade do atendimento ao paciente.
@@ -17,18 +20,89 @@ Ele combina preparação de dados, treinamento de modelo preditivo e implantaç
O modelo pode ser integrado a sistemas clínicos para fornecer insights em tempo real, auxiliando equipes médicas e administrativas na tomada de decisão.
### Objetivos e Benefícios
• Apoiar decisões clínicas: fornecer uma previsão sobre o risco de internação de um paciente no momento da admissão.
• Otimizar recursos hospitalares: uso mais inteligente de leitos, equipamentos e equipe médica.
• Reduzir custos: evitar internações desnecessárias.
• Aprimorar qualidade do atendimento: aumentar a precisão das decisões médicas e a segurança do paciente.
• Acelerar inovação em saúde: demonstrar como inteligência artificial pode ser aplicada a processos críticos do setor.
## Dados para Treinamento
Para que o treinamento pudesse ter validação, foram utilizados dados da **PhysioNet**, pois trata-se de um banco de dados público do **Beth Israel Deaconess Medical Center**.
Mais detalhes podem ser obtidos aqui: [MIMIC-IV-ED Demo](https://physionet.org/content/mimic-iv-ed-demo/2.2/)
Abaixo, segue a estrutura de dados utilizada para o treinamento de Machine Learning.
### Estrutura dos Dados
- **Identificação:**
- subject_id → ID do paciente
- hadm_id → ID da admissão hospitalar (pode estar ausente em não admitidos)
- stay_id → ID da estadia no pronto-socorro
- **Datas e horários:**
- intime → horário de entrada no pronto-socorro
- outtime → horário de saída
- **Demografia:**
- gender → sexo (M/F)
- race → raça/etnia
- **Chegada e saída:**
- arrival_transport → forma de chegada (ex.: ambulância, caminhada)
- disposition → destino após o atendimento (ex.: ADMITTED, HOME)
- admitted_from_ed → se foi admitido no hospital a partir do pronto-socorro (0 = não, 1 = sim)
- **Sinais vitais na entrada:**
- temperature → temperatura corporal (°F)
- heartrate → frequência cardíaca
- resprate → frequência respiratória
- o2sat → saturação de oxigênio
- sbp → pressão arterial sistólica
- dbp → pressão arterial diastólica
- **Outros:**
- n_diagnosis → número de diagnósticos registrados
- split → particionamento dos dados (train, val, possivelmente test)
## Oracle Cloud Data Science
O laboratório foi construído para ser executado no Oracle Cloud Data Science, ambiente colaborativo que oferece:
• Notebooks Jupyter integrados com bibliotecas modernas de machine learning.
• Gestão de experimentos para versionamento e rastreabilidade de modelos.
• Integração com Oracle Autonomous Database e outros serviços da Oracle Cloud.
• Model Deployment gerenciado, que disponibiliza modelos como APIs REST de alta disponibilidade.
Isso permite que o modelo de previsão de risco de internação seja colocado em produção de forma simples e segura, pronto para ser consumido por aplicações externas ou fluxos de trabalho corporativos.
@@ -36,4 +110,22 @@ Isso permite que o modelo de previsão de risco de internação seja colocado em
## Execução
O material foi desenhado para ser rodado diretamente no serviço Oracle Cloud Data Science.
Ao final da execução, o pipeline gera um deployment do modelo que pode ser utilizado de forma geral, servindo predições via API para qualquer aplicação de negócio ou sistema hospitalar.
Ao final da execução, o pipeline gera um deployment do modelo que pode ser utilizado de forma geral, servindo predições via API para qualquer aplicação de negócio ou sistema hospitalar.
Você pode baixar o material aqui: [Risk Admission Lab v1](./Risk%20Admission%20Lab%20v1.ipynb)
![img.png](img.png)
![img_1.png](img_1.png)
O material em anexo está no formato **Jupyter Lab** e o documento é auto-explicativo em sua execução.
Trata-se de um material:
- Que ajuda a buscar a informação para treinamento a partir de um **Object Storage** ou **Oracle Autonomous Database**
- Avalia as informações, ajudando na verificação e manipulação
- Executa o treinamento de Machine Learning
- Monta a estrutura do Modelo e faz o deployment, expondo um endpoint para consumo
- Executa um código de exemplo que pode ser utilizado para o consumo da API
![img_2.png](img_2.png)

View File

@@ -495,7 +495,7 @@
" return out_path\n",
"\n",
"# ---- use aqui o SEU link de compartilhamento (de pasta ou arquivo) ----\n",
"url = \"https://www.dropbox.com/scl/fi/4jbzmsixhgdm6skpt1qyg/Wallet_ORADB23ai.zip?rlkey=z0bvsfzr6m1tiizrpe2ceufla\"\n",
"url = \"https://<link para baixar o Wallet se houver>\"\n",
"zip_path = \"Wallet_ORADB23ai.zip\"\n",
"\n",
"download_dropbox_zip(url, zip_path)\n",
@@ -578,17 +578,11 @@
" \"user_name\": \"admin\",\n",
" \"password\": \"********\",\n",
" \"service_name\": \"oradb23ai_high\",\n",
" \"wallet_location\": \"Wallet_ORADB23ai.zip\",\n",
" \"wallet_location\": \"Wallet.zip\",\n",
"}\n",
"import pandas as pd\n",
"import ads\n",
"\n",
"# simple read of a SQL query into a dataframe with no bind variables\n",
"# df = pd.DataFrame.ads.read_sql(\n",
"# \"SELECT * FROM SH.SALES\",\n",
"# connection_parameters=connection_parameters,\n",
"# )\n",
"\n",
"# read of a SQL query into a dataframe with a bind variable. Use bind variables\n",
"# rather than string substitution to avoid the SQL injection attack vector.\n",
"df = pd.DataFrame.ads.read_sql(\n",
@@ -1277,10 +1271,10 @@
"import os, joblib\n",
"from ads.model.framework.sklearn_model import SklearnModel\n",
"\n",
"compartment_id = \"ocid1.compartment.oc1..aaaaaaaaexpiw4a7dio64mkfv2t273s2hgdl6mgfvvyv7tycalnjlvpvfl3q\"\n",
"compartment_id = \"ocid1.compartment.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n",
"#conda_slug = \"oci://service-conda-packs@id19sfcrra6z/service_pack/cpu/Oracle_AutoMLx_v25.1_for_CPU_on_Python_3.11/2.0/automlx251_p311_cpu_x86_64_v2\" # igual ao exemplo oficial\n",
"conda_slug = \"automlx251_p311_cpu_x86_64_v2\"\n",
"project_id = \"ocid1.datascienceproject.oc1.sa-saopaulo-1.amaaaaaafioir7iaechagym53tslgtawskevs6zsgdg77oipytxhfr5gg53a\"\n",
"project_id = \"ocid1.datascienceproject.oc1.sa-saopaulo-1.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n",
"\n",
"# (opcional) salvar artefatos locais\n",
"# os.makedirs(\"artifacts\", exist_ok=True)\n",
@@ -1482,7 +1476,7 @@
"DEPLOYMENT_ID = deployment.id\n",
"\n",
"# Caso contrário, se estiver em código avulso - habilitar\n",
"#DEPLOYMENT_ID = \"ocid1.datasciencemodeldeployment.oc1.sa-saopaulo-1.amaaaaaafioir7iassu24n2f6lwajtkhwd3j5qezitdmxjvmmw6vagylik3q\"\n",
"#DEPLOYMENT_ID = \"ocid1.datasciencemodeldeployment.oc1.sa-saopaulo.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n",
"\n",
"ads.set_auth(\n",
" auth=\"api_key\",\n",
@@ -1496,7 +1490,7 @@
"print(\"Endpoint:\", md.url)\n",
"\n",
"# Endpoint correto (não adicionar /predict manualmente se já vier com ele)\n",
"#endpoint = \"https://modeldeployment.sa-saopaulo-1.oci.customer-oci.com/ocid1.datasciencemodeldeployment.oc1.sa-saopaulo-1.amaaaaaafioir7iassu24n2f6lwajtkhwd3j5qezitdmxjvmmw6vagylik3q/predict\"\n",
"#endpoint = \"https://modeldeployment.sa-saopaulo-1.oci.customer-oci.com/ocid1.datasciencemodeldeployment.oc1.sa-saopaulo-1.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/predict\"\n",
"endpoint = md.url + \"/predict\"\n",
"\n",
"print(endpoint)\n",
@@ -4540,7 +4534,7 @@
"TARGET_COL = \"admitted_from_ed\" # seu alvo 0/1\n",
"#DEPLOYMENT_ID = deployment.id # se você já tem o objeto deployment no notebook\n",
"# Caso esteja fora do notebook de deploy, comente a linha acima e defina manualmente:\n",
"DEPLOYMENT_ID = \"ocid1.datasciencemodeldeployment.oc1.sa-saopaulo-1.amaaaaaafioir7iafffqtvgm2mj24zw7vnnyamcxzhwqelkdpg5n5qw4jgkq\"\n",
"DEPLOYMENT_ID = \"ocid1.datasciencemodeldeployment.oc1.sa-saopaulo-1.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n",
"\n",
"# Colunas de entrada exigidas pelo modelo (na ORDEM do schema)\n",
"FEATURE_COLS = [\n",
@@ -4554,7 +4548,7 @@
" \"user_name\": \"admin\",\n",
" \"password\": \"********\",\n",
" \"service_name\": \"oradb23ai_high\",\n",
" \"wallet_location\": \"Wallet_ORADB23ai.zip\",\n",
" \"wallet_location\": \"Wallet.zip\",\n",
"}\n",
"\n",
"# -----------------------------\n",