kittycatgirl / projetoMAX

Projeto feito para uma avaliação, que possui principal objetivo de prever quanto tempo uma pessoa permanecerá em determinado hospital.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

M.A.X = Xtreme Algorithmic Medicine ou Medicina Algorítmica Extrema

Seu maior objetivo é a "Sua saúde sem demora! (Your health without delay!)"

1. DESCRIÇÃO DO PRODUTO

A inteligência artificial M.A.X. foi criada com o intuito de ajudar os agentes da saúde a agilizarem atendimentos, diagnósticos e tudo o que esteja relacionado ao tempo de estadia do paciente no hospital, fazendo com que seja o mais rápido possível. Foi feito para ser usado tanto em computador quanto em tablets/smartphones (principais usuários são os funcionários do hospital).

Ele foi treinado a partir de todo tipo de dado relacionado aos pacientes, desde hora que entrou no hospital, o objetivo da consulta, sintomas, medicamentos passados pelo médico, dados sanguíneos, batimentos cardíacos, se é homem ou mulher, se foi preciso ficar internado, até o momento em que ele faz o registro de saída. A partir desses dados ele encontrou padrões que o fazem prever a quantidade de tempo que as pessoas ficam no hospital relacionando as quais sintomas ou algo fora do comum que o paciente tenha.

Quando colocado para funcionar, o M.A.X. apresenta ao funcionário do atendimento do hospital a média de tempo que o paciente vai permanecer ali e o por que disso acontecer, logo depois o atendente passa ao médico tais informações e verá formas de fazer com que ou aquele tempo permaneça o mesmo dependendo do que o M.A.X. informar, pois ele pode dizer que aquele tempo está mais rápido que a média e pode permanecer daquela forma, ou então o M.A.X. pode mostrar dados que dizem que o médico encarregado pode fazer melhor que o padrão, oferecendo soluções que agregam maiores eficiências na recuperação do paciente, entre essas soluções podem estar diagnósticos, receitas de medicamentos e exames sugeridos (OBS: O M.A.X. também sabe informar se o paciente tem chances de voltar para outra consulta).

2. O QUE EU CONSEGUI DESENVOLVER + PROCESSO DE DESENVOLVIMENTO + O QUE EU QUERIA FAZER

  • a) Comecei pesquisando muito como funcionava o machine learning na prática, depois de assistir a vários vídeos e não encontrando o que realmente queria, parei nesse artigo aqui: https://medium.com/blog-do-zouza/seu-primeiro-projeto-de-machine-learning-em-python-passo-a-passo-78c5f7bce22d, nele a teoria começou a fazer mais sentido e dá para ver no meu código que me inspirei demais aqui, pois não sabia praticamente nada do assunto então precisava me guiar de algum lugar (mas claro, antes de passar para o que eu realmente queria fazer fiquei testando esse exemplo para conseguir entender o máximo que pude). No entanto o resultado final ficou mais com coisas que fui achando por fora, então posso dizer que encontrei meu caminho no final das contas.

  • b) Sobre o desenvolvimento, primeiro utilizei a IDE jupyter/ananconda, pois segundo vários lugares seria a mais ideal para o desenvolvimento de machine learning, mas no final acabei optando pelo console python que o google possui, por conta do ambiente mais visualmente agradável e das ferramentas melhor dispostas, além do site oferecer certo auxílio na hora que você está desenvolvendo sem te deixar mal acostumado. Baixei também claro o python e nele suas extensões, para o projeto procurei usar de bibliotecas, em especial o scikit-learn (essa que foi desenvolvida especificamente para machine learning em python, pois possui ferramentas boas para fazer análise de dados e fazer previsões) e o panda (também eficiente para fazer análise de dados e manipula-los).

  • c) Meu objetivo principal era fazer com que o vdata (data da visita) e o discharged (data de liberação) pudessem conseguir se relacionar mais diretamente com os outros dados, de sintomas específicos principalmente, para assim a inteligência quando fosse calcular os tempos de estadia enxergar que existem padrões entre cada um desses tempos, que de acordo com o que uma pessoa tem ela fica mais ou menos tempo no hospital, e assim quando novos dados de pessoas com determinados sintomas fossem inseridos, o M.A.X. soubesse exatamente quanto tempo a pessoa deve ficar. Porem, acabei percebendo que com esse conjunto de dados não daria tão certo, pois os sintomas em sua maioria não estavam preenchidos, então no final descobri que na verdade com um modelo em especifico de previsão ele mesmo faria a verificação para mim de quais seriam as colunas que mais influenciam na quantidade que uma pessoa passa em um hospital e buscaria prever a partir daí.

  • d) Na minha primeira tentativa o que eu consegui fazer foi:

  • Inserir as bibliotecas;

  • Coloca-las para serem executadas;

  • Inserir o conjunto de dados LengthOfStay.csv para a analise;

  • Imprimir os dados em forma de tabela para análise;

  • Imprimir a quantidade de dimensões do banco de dados (suas instâncias/linhas e atributos/colunas)

  • Analisar os dados mais um pouco;

  • Imprimir o resumo estatísco (que não entendi muito bem só olhando);

  • Imprimir a distribuição de classes (apenas vdate e discharged para fazer um teste, não conseguir ir além de só imprimir os dois);

  • Tentei fazer dois tipos de visualização de dados: univariados que seriam de cada variável e multivariavel para ver as relações delas entre si, e ver se as datas/tempo poderia ter relação forte com as demais variáveis (o banco era muito grande, queria ter achado uma forma de ter feito a visualização de forma mais especifica, selecionando as variáveis);

  • Comecei a avaliar os algoritmos:

    1. Separei os dados para validação, utilizei de quatro variáveis, duas para validação (guardei para) e duas para treinamento (uma para guardar os dados de treinamento e a outra para escolher um bom modelo de previsão);
    1. Estimei a precisão com uma chamada validação cruzada (foi um pouco no escuro por que entendi bem pouco o propósito, mas acredito que tenha sido se basear em qual modelo faria a melhor previsão)
    1. Fui tentar construir os modelos e é aí que meu código para de funcionar, pois achava que não tinha mais tempo para continuar desenvolvendo. Acontece que o erro ocorreu por conta de eu tentar dividir os dados como se eles fossem TODOS quantitativos e esqueci os que eram qualitativos. Agora parto para a parte que as coisas dão mais certo.
  • e) Eu refiz o código todo umas 6 vezes até entender por que estava travando toda vez no mesmo lugar: na parte de testes. Achava que era por conta de testar a precisão dos modelos mas quando eu fui preparar os dados para serem testados de fato continuava dando erro, eu fiquei convertendo string para float várias vezes nas mesmas colunas e tirando caracteres dos mesmos lugares igualmente para repetir tal conversão. Descobri que certas colunas que eu achava que eram somente de um tipo acabaram também sendo uma string e enfim, estava quase modificando coluna por coluna. Mas depois de muito vasculhar fóruns e sites no geral (muito mesmo) acabei vendo certas linhas de código que pareciam fazer sentido para a minha situação. Descobri a importância de saber como usar as colunas qualitativas, como converter elas para poder fazer testes mas sem tirar o seu real valor que é ser uma “qualidade”, separando elas de antemão dos quantitativos, e falando neles, tratei deles também e fui descobrindo alguns que precisavam ser convertidos a numeral. Sendo sincera ainda é um pouco confuso para mim, mas fiquei feliz quando meu achismo acabou dando um resultado e saindo dos erros. Logo mais fiz o famoso separamento para treino e separamento para teste com quatro variáveis cada um com 2, depois botei o modelo escolhido para funcionar usando as variáveis de treinamento e deu tal resultado que parece ter sido bom ou pelo menos aceitável:

Por ultimo mas não menos importante usei os dados que foram separados para testes, coloquei uma parte junto com o modelo em uma variável ‘prever’/’predict’, depois fui testar com as métricas de avaliação para ver o quão o modelo tinha conseguido errar e ao meu ver foram bons resultados. Ao final coloquei um código para salvar o modelo, mas na realidade só usei por recomendação e não entendi para que serve.

OBS: No código final não está o código display(hosp) para aparecer a tabela do hospital a cada vez que eu modifiquei ou pelo menos uma vez, pois eu acabei esquecendo de deixar, toda hora ficava apagando e colocando para checar os dados e simplesmente no final apaguei tudo e só me toquei disso quando já tinha vindo ao trabalho e não poderia mais mexer.

About

Projeto feito para uma avaliação, que possui principal objetivo de prever quanto tempo uma pessoa permanecerá em determinado hospital.


Languages

Language:Jupyter Notebook 100.0%