Buscar

Atividade_A3

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/

Continue navegando