From 2f43a7a8ea8cbe5ddda9c274c6d7d2dcd11e8e04 Mon Sep 17 00:00:00 2001 From: Cristiano Hoshikawa Date: Thu, 21 Aug 2025 13:59:02 -0300 Subject: [PATCH] Add files via upload --- README.md | 94 ++++++++++++++++++++++++++++++++++++- Risk Admission Lab v1.ipynb | 22 ++++----- 2 files changed, 101 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 3ae7a9a..ff0e7f4 100644 --- a/README.md +++ b/README.md @@ -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. \ No newline at end of file +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) \ No newline at end of file diff --git a/Risk Admission Lab v1.ipynb b/Risk Admission Lab v1.ipynb index e5603a7..856e0d6 100644 --- a/Risk Admission Lab v1.ipynb +++ b/Risk Admission Lab v1.ipynb @@ -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://\"\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",