Giter Site home page Giter Site logo

avc-predictor's Introduction

AVC Predictor

O código principal do projeto se encontra no arquivo main.ipynb

Descrição do projeto

Neste projeto, vamos usar classificadores para identificar quais são os fatores de risco para o acidente vascular cerebral (AVC).

Temos à nossa disposição um conjunto de dados para predição de AVCs. O que faremos é:

  1. Treinar dois classificadores para predizer se houve ou não houve AVCs.
  2. Verificar a acurácia dos classificadores.
  3. Identificar quais são os fatores que mais provavelmente estão ligados a ter AVCs, dados pelos modelos. E conferir se de fato são reconhecidos no meio acadêmico.

Resumo do projeto

Metodologia utilizada

Pré-processamento dos dados: o conjunto de dados é tratado para garantir que esteja em um formato adequado para a análise. Isso inclui:

  • Remoção de valores nulos (NaNs)
  • Remoção de colunas que poderiam causar viés no modelo
  • Conversão de variáveis categóricas em variáveis numéricas

Definição da função de perda: é definida uma função de perda que mede a diferença entre a previsão do modelo e o valor real da variável de resposta. A função de perda é uma função de quatro parâmetros: os pesos (w), o viés (b), os pontos (ou dados) e os valores reais da variável de resposta e retorna o erro quadrático médio (EQM).


def loss( parametros ):
    w, b, pontos, real_value = parametros
    prediction = w.T @ pontos + b
    eqm = np_.mean( (prediction - real_value)**2)
    return eqm

Treinamento do modelo: o modelo é treinado usando o algoritmo de gradiente descendente para minimizar a função de perda. A cada iteração, o gradiente da função de perda em relação aos parâmetros é calculado e os pesos w e o viés b são atualizados na direção oposta do gradiente, para que assim eles sejam ajustados para minimizar a função de perda.


Teste do modelo: o conjunto de dados é dividido em um conjunto de treinamento e um conjunto de teste. O modelo treinado é testado no conjunto de teste para avaliar sua precisão na previsão da variável de resposta e a acurácia do modelo é medida.


Métodos de classificação utilizados

  • Classificador linear: método que funciona através da atribuição de pesos (ou coeficientes) às features do conjunto de dados:

$$ f(x,y) = Ax + By + C $$


Sendo que x e y são as features do conjunto de dados, A e B são os pesos e C é o viés.


  • Classificador de árvore de decisão: método que funciona através da criação de uma árvore de decisão, onde cada nó representa uma feature do conjunto de dados e cada ramo representa um valor dessa feature.

Principais resultados obtidos

De acordo com os resultados obtidos, os 3 fatores que mais influenciam na probabilidade de uma pessoa ter um AVC são:

  • Doença cardíaca
  • Hipertensão
  • Ser do gênero masculino

De acordo com o site da Sociedade Brasileira de AVC (link no final do arquivo), dentre os fatores que são listados como potenciais causadores de AVC, se encontram os mesmos fatores que foram identificados pelo modelo:

  • Doença cardíaca:

    • "As doenças do coração, especialmente as arritmias (batimentos cardíacos desregulados), aumentam o risco de AVC. A arritmia mais comum é a fibrilação atrial, que provoca batimentos irregulares no coração e facilita a formação de coágulos sanguíneos, que podem migrar para os vasos do cérebro, causando um AVC."
  • Hipertensão:

    • "Conhecida como “pressão alta”, é um dos principais, senão o principal fator de risco facilmente modificável para se evitar o AVC."
  • Ser do gênero masculino:

    • "Pessoas do sexo masculino e a raça negra exibem maior tendência ao desenvolvimento de AVC."

Desta maneira, pode-se concluir que o modelo foi capaz de identificar os fatores de risco para AVCs de maneira satisfatória, já que os fatores identificados pelo modelo como sendo os mais influenciam a probabilidade de uma pessoa ter um AVC são os mesmos que são listados como potenciais causadores de AVCs no site da Sociedade Brasileira de AVC.


Referências

Autores

avc-predictor's People

Contributors

leoscarlato avatar alessitomas avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.