Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arvores aleatórias e Arvores de Decisão Apresentação O exemplo que tomei a liberdade de realizar é a tentativa de um estudo de predição na área medicinal. O exemplo se propõe a predizer a possibilidade de ataque de coração em um individudo com base em dados de anaminese obtidos. Esses dados foream disponibilizados em um dataset no site Kaggle. Estes dados são disponibilizados gratuitamente e não possuem informações sensivesis acerca dos pacientes. Meu objetivo além de identificar a predição da possibilidade de casos de attaque do coração é também realizar a comparação entre 2 modelos de classificação utilizando arvores decisão. Não pretendo me aprofundar em conceitos técnicos mas sim responder mesmo que minimamente algumas das questões propostas no exercicio. Para nos auxiliar nessa tarefa utilizaremos uma poderosa e intuitiva ferramenta de mineração de dados chamada Rapid Miner. Composição do Datast As variaveis abaixo compõem o dataset. Ao lado de cada variável esta a tradução em portugûes 1) age → Idade 2) sex → Sexo 3) chest pain type (4 values) → Tipo de dor no peito 4) resting blood pressure → Pressão sanguínea em repouso 5) serum cholestoral in mg/dl → Soro colesteról em ml /dl 6)fasting blood sugar > 120 mg/dl --> Açucar no sangue em jejun 7) resting electrocardiographic results (values 0,1,2) – >resultados eletrocardiográficos de repouso 8) maximum heart rate achieved – >requência cardíaca máxima alcançada 9) exercise induced angina – > angina induzida por exercício 10) oldpeak = ST depression induced by exercise relative to rest – >pico antigo = depressão de ST induzida por exercício em relação ao repouso 11)the slope of the peak exercise ST segment → inclinação do segmento ST de pico de exercício 12) number of major vessels (0-3) colored by flourosopy → número de vasos principais (0-3) coloridos por fluorosopia 13) thal: 0 = normal; 1 = fixed defect; 2 = reversable defect → thal: 0 = normal; 1 = defeito corrigido; 2 = defeito reversível 14) target: 0= less chance of heart attack 1= more chance of heart attack → alvo: 0 = menos chance de ataque cardíaco 1 = mais chance de ataque cardíaco Aplicando os modelos Apresentarei por meio das telas a seguir todo o fluxo e a aplicação dos modelos A medida que eu for apresentando as telas irei explcar a funcionalidade das etapas contidas nos objetos carregados na área onde criamos os processos. Primeiro importaremos os dados e os adicionamos dentro do processo. O mesmo recebe o nome de Retrieve heart. Logo abaixo de Retrieve Heart há o objeto Select Atributes. Nesse objeto mos podemos selecionar as variaveis que mais fazem sentido para o o modelo. Para isso escolhemos o parâmetro subset e selecionamos as variaveis. Passando-as para a direita como mostra a tela abaixo. Escolhi as variaveis a seguir : Idade = age nível de colesteról, chol tipo de dor no peito = cp fbs = açúcar no sangue sex = gênero sexual Tarqget = Possibilidade de Ataque do coração Após escolhermos as variavies independentes nós utilizamos o campo set value para definir a variável dependente que no caso é uma variável do tipo booleano ou binominial. Escolhemos a variável target como o label ,conforme evidanciado na tela abaixo. Após isso inserimos o objeto cross validation que nos auxiliará na analise da performance dos modelos. Clicando duas vezes no objeto ele abre uma tela especifica para amontagem do modelo e a parametrização do treinamento. Nessa escolhemos o modelo que é uma um Ramdon Forest ou em por tuguês Floresta Aleatória e o aplicamos unindo ao objeto performance de classificação. Em performance de classificação escolhemos os parãmetros acuracia e Kappa que é o nível de concordancia e confiabilidade do modelo. Executamos o processo por clicar na ceta azul e após o término podemos analisar o resultado. Conforme podemos ver na figura abaixna aba performance é possível ver o nível de accuracia do modelo em poder classificar corretamente os targets como Sim e Não. Infelizmente o modelo não possui uma accuracia aceitael e seu happa está muito próximo de 0 o que também não é bom, mas é um Na aba Random Forest é possível verificar visualmente cada arvore das 100 que foram construidas. Aliás o numero de arvores é um parâmetro que pode ser escolhido no objeto Random forest, assim também como o parâmetro Max depth que é a profundidade das arvores. No caso eu escolhi uma profundidado de até 5 ramificações de subarvores. Abaixo representamos outro modelo , dessa vez apenas com uma arvore de decisão , também com o objetivo de classificar. Vejamos a accuraria desse modelo em comparação ao Ramdom Forest; Dessa vez como parãmetro escolhemos o gain ratio que é ….. e o maximal depth de 5. Exexutamos o processo e temos o resultado da acuracia conforme abaixo Olhando para a arvore de decisão é poossivel identificar as perguntas que foram feitas para se chegar a conclusão se o indivíduo tem a probabilidade de sofrer um aataque do coração ou não. Por exemplo a primeira pergunta é se o indivíduo possui dor no peito ou não i.e CP. depois a esquerda caso ele tenha é perguntado a idade, caso a idade seja menor ou igual a 56 anos há uma grande possibilidade de ele sofre um ataque, a barra do sim fica quase 90$ cheia. Já do outro lado caso ele seja mais velho que 56 aanos, ai o fluxo segue com outras perguntas. Ou seja podemos entender facilmente uma tendencia e a probabilidade. A grande questão é se o modelo de fato representa uma reealidade, Por isso é tão importante medir a eficacia do modelo. Esse foi um exemplo simples de como podemos utilizar arvores de decisão para classificar ou identificar variaveis a fim de gerar predições. Considereações finais Os algoritmos de aprendizagem baseados em árvores de decisão são considerados um dos melhores e mais utilizados métodos de aprendizagem supervisionada. Os métodos baseados em árvores nos dão modelos preditivos de alta precisão, estabilidade e facilidade de interpretação. Ao contrário dos modelos lineares, eles mapeiam muito bem relações não-lineares. E podem ser adaptados para resolver vários tipos de problema (classificação ou regressão). Métodos como árvores de decisão, floresta aleatória (“random forest”) e “gradient boosting” estão sendo muito usados em todos os tipos de problemas de data science. Assim, para os interessados no assunto, é útil aprender esses algoritmos e usá-los em suas modelagens. Vantagens Fácil de entender: A visualização de uma árvore de decisão torna o problema fácil de compreender, mesmo para pessoas que não tenham perfil analítico. Não requer nenhum conhecimento estatístico para ler e interpretar. Sua representação gráfica é muito intuitiva e permite relacionar as hipóteses também facilmente. Útil em exploração de dados: A árvore de decisão é uma das formas mais rápidas de identificar as variáveis mais significativas e a relação entre duas ou mais variáveis. Com a ajuda de árvores de decisão, podemos criar novas variáveis/características que tenham melhores condições de predizer a variável alvo. Menor necessidade de limpar dados: Requer menos limpeza de dados em comparação com outras técnicas de modelagem. Até um certo nível, não é influenciado por pontos fora da curva “outliers” nem por valores faltantes (“missing values”). Não é restrito por tipos de dados: Pode manipular variáveis numéricas e categóricas. Método não paramétrico: A árvore de decisão é considerada um método não-paramétrico. Isto significa que as árvores de decisão não pressupõe a distribuição do espaço nem a estrutura do classificador. Desvantagens Sobreajuste (“Over fitting”): Sobreajuste é uma das maiores dificuldades para os modelos de árvores de decisão. Este problema é resolvido através da definição de restrições sobre os parâmetros do modelo e da poda (discutido em mais detalhes abaixo). Não adequado para variáveis contínuas: ao trabalhar com variáveis numéricas contínuas, a árvore de decisão perde informações quando categoriza variáveisem diferentes categorias. Fontes biíbliograficas : https://minerandodados.com.br/arvores-de-decisao-conceitos-e-aplicacoes/ https://www.vooo.pro/insights/um-tutorial-completo-sobre-a-modelagem-baseada-em-tree-arvore-do-zero-em-r-python/
Compartilhar