Se você está envolvido ou tem interesse na área de ciência de dados, é provável que já tenha ouvido falar das Random Forests. Esses algoritmos de machine studying são extremamente poderosos e utilizam as Resolution Bushes (Árvores de Decisão) para realizar previsões. Vamos explorar com mais detalhes os conceitos das Resolution Bushes e Random Forests, incluindo sua aplicação em tarefas de classificação e regressão, bem como a matemática por trás desses algoritmos.
Como Resolution Bushes fazem previsões?
De uma maneira simplificada as árvores de decisão são como uma espécie de jogo de perguntas e respostas. Elas têm três partes importantes: o ponto de partida chamado nó raiz, as perguntas ao longo do caminho chamadas nós internos e as respostas finais chamadas nós folha.
No começo, a árvore olha para todas as informações disponíveis e faz uma pergunta sobre uma característica do dado. Com base na resposta, ela divide os dados em grupos menores. Em seguida, ela faz mais perguntas sobre outras características, dividindo os grupos ainda mais. Ela continua fazendo isso até chegar aos nós folha, onde não há mais perguntas a serem feitas.
Para decidir quais perguntas fazer, a árvore usa uma medida de “impureza”, por exemplo, entropia. Ela procura fazer as perguntas que reduzem mais a desordem nos grupos. No remaining, nos nós folha, a árvore dá a resposta remaining com base nos exemplos que caíram naquele grupo.
Essas árvores de decisão nos ajudam a entender como tomar decisões com base em informações e a fazer previsões sobre coisas que ainda não sabemos.
Vamos considerar um exemplo em que queremos prever ataques cardíacos usando várias variáveis relacionadas à saúde do coração. Começamos com uma variável e fazemos uma pergunta, por exemplo: “Quantas pessoas que apresentaram dor no peito sofreram um ataque cardíaco?” Com base nessa pergunta, dividimos os dados. Nesse exemplo, podemos considerar a variável “dor no peito” como informativa se ela nos diz se um paciente com dor no peito é mais provável de sofrer um ataque cardíaco ou não.
O fluxograma nos mostra que pacientes que relataram dor no peito parecem ter uma frequência maior de ataques cardíacos em comparação àqueles que não relataram. No entanto, é importante ressaltar que esse é apenas um exemplo simplificado e que na prática lidamos com mais variáveis e um número maior de observações. Em situações reais, as divisões entre os nós podem não ser tão evidentes. Os dados costumam ser mais complexos e desordenados, o que aumenta a incerteza ao determinar se uma variável realmente contribui para o risco de ataque cardíaco ou não.
Para lidar com essa incerteza, utilizamos medidas de impureza, como a entropia, para avaliar a incerteza presente no nó. Todas as variáveis podem ser candidatas para fazer a divisão no nó. Por isso, a cada divisão, testamos várias variáveis e selecionamos aquelas que apresentam menor impureza ou incerteza, buscando aumentar a confiabilidade da decisão em cada nó.
No entanto, sabemos que uma única variável não é suficiente para capturar todas as nuances da doença. Portanto, repetimos o processo de forma recursiva, permitindo que a árvore cresça à medida que seleciona as variáveis que maximizam o ganho de informação e minimizam a entropia, resultando em divisões mais informativas.
O que é entropia e ganho de informação?
A entropia nos dá uma ideia da quantidade whole de informação aleatória ou desordenada em uma amostra de dados. Sua fórmula matemática é dada por:
Entropia = — ∑ (p * log2(p))
onde p representa a probabilidade de ocorrência de cada classe na amostra de dados.
Quanto maior a entropia, maior é a incerteza e a falta de padrões claros nos dados. No entanto, a entropia por si só não nos diz qual atributo é mais relevante para fazer uma divisão.
Para isso usamos o ganho de informação, para calculá-lo levamos em consideração a entropia inicial da amostra de dados e a redução de entropia após a divisão com base em um atributo (variável/coluna) específico. O ganho de informação nos permite identificar os atributos que têm um impacto significativo na redução da incerteza dos dados.
GI(Nó, Atributo) = Entropia(Nó) — Entropia_Atributo(Nó)
A entropia do atributo é calculada como uma média ponderada dos nós resultantes da divisão com base nesse atributo. Essa ponderação considera a distribuição das courses (sim e não) nos nós resultantes.
Por que a entropia do atributo nó é calculada como a média ponderada dos nós derivados?
Porque, embora um nó com alta pureza possa indicar que uma classe é dominante, a pureza por si só não reflete o poder informativo de uma variável. É importante levar em consideração o número whole de observações contidas no nó. Isso se torna evidente, especialmente quando um nó representa uma pequena amostra em relação ao whole de observações do conjunto de dados. Nesse caso, mesmo que o nó seja altamente puro, sua contribuição para a informação como um todo pode ser pequena.
No exemplo acima, o nó da direita apresenta baixa entropia, mas também possui um número de observações muito pequeno quando comparado com o número whole de observações da amostra. Isso levanta a possibilidade de que a baixa entropia tenha ocorrido puramente por acaso e possa não ser representativa da realidade dentro do contexto.
A média ponderada é uma forma de levar em consideração tanto a entropia quanto o tamanho das amostras ao calcular a entropia do nó pai. Ao realizar a média ponderada, os nós derivados têm mais influência na entropia do nó pai se tiverem um número maior de observações. Isso ajuda a equilibrar a contribuição dos nós filhos com base em sua representatividade nos dados. Dessa forma, a média ponderada permite mitigar o problema de baixa representatividade em nós com um número muito pequeno de observações, garantindo uma avaliação mais precisa da entropia do nó.
Examplo do cálculo de ganho de informação:
Considerando o exemplo para previsão de doença cardíaca. Vamos ver o quanto de incerteza a árvore de decisão pode reduzir usando a variável “dor no peito” para dividir os dados.
Entropia nó pai:
E(Nó) = — 6/11 log2(6/11) — 5/11 log2(5/11) ≈ 0.994
Entropia nós folha:
E(dor no peito = SIM) = — 5/6 log2(5/6) — 1/6 log2(1/6) ≈ 0.650
E(dor no peito = NÃO) = — 1/5 log2(1/5) — 4/5 log2(4/5) ≈ 0.721
Média ponderada dos nós folha:
E(dor no peito) = 6/11 * 0.650 + 5/11 * 0.721 ≈ 0.682
Ganho de informação:
GI(Nó, dor no peito) = 0.994–0.682 ≈ 0.312
Portanto, o ganho de informação ao dividir o nó com base na variável “Dor no peito” é aproximadamente 0.312. Agora, vamos fazer o mesmo cálculo para a váriavel “Boa Circulação”.
Entropia nós folha:
E(Boa Circulação = SIM) = — 4/7 log2(4/7) — 3/7 log2(3/7) ≈ 0.985
E(Boa Circulação = NÃO) = — 2/4 log2(2/4) — 2/4 log2(2/4) = 1
Média ponderada dos nós folha:
E(Boa Circulação) = 7/11 * 0.985 + 4/11 * 1 ≈ 0.990
Ganho de informação:
GI(Nó, Boa Circulação) = 0.994–0.990 = 0.004
Ao comparar os ganhos de informação, observamos que o ganho de informação para a variável “Dor no Peito” é 0.312, enquanto o ganho de informação para a variável “Boa Circulação” é 0.004. Isso indica que a variável “Dor no Peito” proporciona uma redução maior na entropia do nó, tornando-a uma escolha mais informativa para fazer a divisão.
Nesse exemplo, calculamos o ganho de informação para um único nó. Na realidade o algoritmo continua o processo. A árvore de decisão continua a crescer em profundidade até que um critério seja atendido, como a profundidade máxima (max_depth), ou quando o ganho de informação com a seleção de variáveis não pode mais ser melhorado além de um limite específico definido pelo hiperparâmetro correspondente.
Além disso, é importante mencionar que o exemplo utilizou a entropia como medida de impureza para calcular o ganho de informação. No entanto, existem outras medidas comumente usadas, como o índice de Gini, que também podem ser aplicadas dependendo do contexto e das características do problema em questão.
Árvores de Regressão:
As árvores de decisão também podem ser aplicadas a tarefas de regressão, onde o objetivo é prever valores numéricos contínuos, em vez de courses discretas. Nas árvores de regressão, o processo é semelhante ao das árvores de classificação, mas em vez de calcular a frequência das courses, calculamos o valor médio das instâncias dentro de cada nó folha.
Para construir uma árvore de regressão, seguimos um processo semelhante ao das árvores de classificação. No entanto, em vez de buscar o ganho de informação ou a redução na entropia para selecionar a variável de divisão, utilizamos medidas como o Erro Quadrático Médio (MSE, Imply Squared Error) ou o Erro Absoluto Médio (MAE, Imply Absolute Error). Essas medidas avaliam a diferença entre o valor actual e o valor previsto pela árvore de regressão.
Ao dividir recursivamente os dados com base nos valores das características e minimizar a variância (ou o MSE) dentro de cada nó, as árvores de regressão possibilitam previsões precisas para resultados numéricos. Cada nó interno da árvore de regressão é dividido com base em uma regra que busca minimizar o erro de previsão dos valores numéricos. À medida que percorremos a árvore, os valores previstos se aproximam mais dos valores reais, e a estrutura da árvore nos fornece um modelo que pode ser usado para prever valores numéricos em dados não vistos.
Portanto, ao contrário das árvores de classificação que usam ganho de informação ou outras medidas de impureza, as árvores de regressão empregam medidas de erro, como o MSE, para selecionar as melhores variáveis para divisão e realizar previsões precisas em tarefas de regressão.
O problema do Overfitting:
As árvores de decisão têm um problema: elas tendem a sofrer de overfitting, o que significa que elas se ajustam excessivamente aos dados de treinamento, capturando até mesmo nuances insignificantes. Isso faz com que elas não sejam muito boas em prever coisas novas que não foram vistas durante o treino. Mas aí entra em cena o algoritmo Random Forest, que ajuda a melhorar a capacidade de previsão das árvores de decisão.
De uma forma simplificada, Random Forests são como instances de árvores de decisão. Elas trabalham juntas para criar uma abordagem mais poderosa na tomada de decisões. Em vez de confiar apenas em uma árvore, elas formam uma equipe de várias árvores de decisão, cada uma com sua própria opinião. Essas árvores colaboram e combinam suas respostas para chegar a uma decisão remaining mais confiável e robusta. É como ter um grupo de especialistas discutindo e chegando a um consenso em vez de confiar em uma única opinião.
Como elas fazem previsões?
Para responder essa pergunta vamos dividir o processo da seguinte forma:
Passo 1 — Criar um conjunto de dados “bootstrapped”
Criar um conjunto de dados bootstrapped envolve selecionar amostras aleatórias do conjunto de dados authentic até obter um conjunto com o mesmo tamanho. O detalhe importante aqui é que é permitido selecionar a mesma amostra mais de uma vez. Esse processo ajuda a diminuir a variância dos dados. Lembra do tradeoff entre variância e viés? Ao diminuir a variância, estamos reduzindo an opportunity de overfitting, ou seja, estamos tornando o modelo mais geral e menos propenso a se ajustar em excesso aos dados de treinamento específicos.
Passo 2 — Criar uma árvore de decisão usando o conjunto de dados bootstrapped, mas usando somente um subconjunto de variáveis (colunas) a cada passo doprocesso.
Passo 3 — Repitir os passos 1 e 2 centenas de vezes.
E Voilà… Temos uma Random Forest!
Ponto chave: Usando uma amostra bootstrapped e considerando apenas um subconjunto de variáveis a cada passo resulta em uma grande variedade de árvores. Essa variedade é o que faz Random Forests mais efetivas do que árvores de decisões individuais.
Simples, certo?
Mas a história não termina aí. Você se lembra que no primeiro passo, quando criamos um conjunto de dados bootstrapped? Bem, nem todas as observações são incluídas nele. Estima-se que cerca de 1/3 delas não sejam selecionadas. Essas observações são chamadas de amostras out-of-bag (OOB).
Podemos usar essas amostras OOB para avaliar a precisão de uma Random Forest, uma vez que elas não foram usadas como dados de treinamento. Calculamos a taxa de acerto das amostras OOB corretamente classificadas pela Random Forest para ter uma medida da sua eficácia.
A proporção de amostras OOB classificadas incorretamente é chamada de erro out-of-bag (OOB).
Então revendo os passos descritos acima, podemos adicionar mais um passo. Agora o processo pode ser descrito da seguinte forma:
- Construa uma Random Forest (Passos 1 a 3)
- Estime a precisão dela usando o erro out-of-bag
- Repita esse processo centenas de vezes e escolha a Random Forest que demontrou previsoes mais precisas.
Notice que cada vez que voce construir uma random forest ela será diferente das anteriores, uma vez que o conjunto de variaveis usadas para construir as arvores que a compoem mudam a cada passo.
Agora que temos uma Random Forest que faz previsões mais precisas como a usamos?
4. Percorra os novos dados de cima para baixo em todas as árvores construídas nas etapas anteriores.
5. Verifique qual classe recebeu mais “votos” baseado no passo 4 e use isso para tomar uma decisão.
Chegamos ao remaining! Agora você sabe o que é entropia e ganho de informação e como eles são calculados. Você entende como uma árvore de decisão, seja por si só ou em um conjunto de árvores, resolve a melhor ordem de variáveis para dividir os dados e quando parar de dividí-los, dado um conjunto de treinamento.
Eu espero que o submit tenha te ajudado. Se tiver alguma coisa que eu tenha esquecido ou alguma informação incorreta, por favor me avise nos comentários. Agradeço muito por sua atenção. Obrigada e até o próximo submit!