Árvores de decisão · Regressão

Como árvores de decisão aprendem a prever números

Uma árvore de classificação prevê um rótulo. Uma árvore de regressão prevê um número. O surpreendente é como uma parte tão pequena do procedimento precisa mudar.

Recapitulação

O procedimento que já temos

No Capítulo 1, inventamos um procedimento capaz de encontrar repetidamente perguntas úteis e separar dados em regiões significativas. Essas regiões podiam então prever uma classe para uma linha nova que ainda não tínhamos visto.

A criação da árvore envolvia três passos simples:

  1. Propor uma divisão.
  2. Avaliar os dois grupos que ela cria.
  3. Repetir dentro dos novos grupos.

Essa ideia é poderosa, mas nossa primeira árvore era pequena de propósito. Algoritmos reais baseados em árvores também precisam lidar com dados ausentes, diferentes tipos de características de entrada, conjuntos de dados muito grandes e o risco de crescer demais. Abordaremos esses problemas um de cada vez nos próximos capítulos.

Por enquanto, vamos mudar o tipo de previsão que a árvore faz: em vez de uma classe, queremos um número.

Uma nova previsão

Da classificação à regressão

No aprendizado de máquina supervisionado, duas tarefas comuns de previsão são classificação e regressão.

A classificação escolhe entre um conjunto de rótulos. Prever se uma semente terá dificuldade ou crescerá bem a partir da água e da luz solar que recebe é uma classificação: a resposta é uma de duas classes nomeadas.

Prever a temperatura média de amanhã é diferente. A resposta pode ser 18,2 °C, 18,3 °C ou outro número entre esses valores. Isso é regressão.

Uma forma compacta de lembrar a diferença é:

Na lição anterior, usamos a impureza de Gini para avaliar uma divisão. Gini foi feita para classes: mede quanto os rótulos de classe estão misturados dentro de um grupo. Quando nosso alvo é um número contínuo, não há classes para Gini contar.

A boa notícia é que não precisamos inventar a árvore novamente. Podemos trocar a forma de avaliar uma divisão e manter o mesmo loop central: propor, avaliar, repetir.

A nova pontuação

Como avaliar uma divisão de regressão?

Em um pequeno exemplo de classificação, muitas vezes conseguimos enxergar uma separação útil. Coloque duas características em dois eixos, desenhe uma classe como círculos e outra como quadrados, e uma linha divisória clara pode aparecer.

Para regressão, vamos usar um exemplo simples também. Imagine que queremos prever a produtividade de uma plantação a partir da quantidade de fertilizante usada em um hectare.

Isso produz um padrão em forma de colina, embora os dois lados não precisem ser perfeitamente simétricos.

LinhaFertilizante (kg/hectare)Produtividade (toneladas/hectare)
A01,5
B202,4
C403,8
D605,1
E805,7
F1005,4
G1204,8
H1404,2
I1603,7

Uma característica de entrada, fertilizante, e um alvo numérico, produtividade da plantação. A árvore só pode dividir entre valores vizinhos de fertilizante.

Alice e Bob estão tentando construir um modelo com esses dados. Alice se lembra do primeiro artigo e começa a explorar limiares. Bob toma um atalho: usa a produtividade média como todas as previsões.

A previsão de Bob é de aproximadamente 4,07 toneladas por hectare. Ela não é absurda. Fica perto do centro das produtividades observadas, então oferece uma referência útil: antes de acrescentar uma divisão, Alice consegue superar uma única previsão para todo mundo?

Para responder, Bob mede a distância de cada produtividade observada até 4,07. Algumas distâncias são positivas e outras negativas; somá-las diretamente faria com que se anulassem. Ele eleva cada distância ao quadrado e depois soma os resultados.

Uma previsão para todas as linhasȳ = 4,07Erro quadrático totalΣ(yᵢ − ȳ)² = 15,64

Divida 15,64 pelas nove linhas e obtemos uma variância de aproximadamente 1,738. O total e a variância contam a mesma história aqui; o total é nove vezes maior.

Como Bob prevê a média, essa distância quadrática média também é a variância dos valores-alvo. Uma variância menor significa que os valores ficam mais próximos da média, portanto a média é uma previsão melhor para esse grupo.

Alice percebe algo interessante. Se posicionar um limiar em 50 kg/ha, no ponto médio entre 40 e 60, as linhas de cada lado podem usar sua própria média. Juntos, os dois grupos têm erro quadrático total de 5,515, muito menor que os 15,64 de Bob. Isso oferece a nova regra de avaliação:

O conjunto de fertilizante dividido em 50 quilogramas por hectare
LinhaFertilizanteProdutividade
A0 kg/ha1.5 t/ha
B20 kg/ha2.4 t/ha
C40 kg/ha3.8 t/ha
D60 kg/ha5.1 t/ha
E80 kg/ha5.7 t/ha
F100 kg/ha5.4 t/ha
G120 kg/ha4.8 t/ha
H140 kg/ha4.2 t/ha
I160 kg/ha3.7 t/ha
Variância
Antes · todas as linhas
1.738
Depois · divisão em 50 kg/ha
Linhas A–C
0.896
Linhas D–I
0.471
Os dois novos grupos variam menos em torno da própria média do que as nove linhas variavam em torno da única média de Bob.

Teste todos os limiares de ponto médio e mantenha aquele cujos dois grupos deixam o menor erro quadrático total.

Para uma divisão candidata, o cálculo é:

erro da divisão = Σi∈E(yᵢ − ȳE)² + Σi∈D(yᵢ − ȳD

A primeira soma mede os erros em torno da média do grupo esquerdo. A segunda faz o mesmo para o grupo direito. Nós as somamos porque os dois grupos fazem parte do modelo. De forma equivalente, podemos multiplicar a variância de cada grupo por seu número de linhas e somar os dois resultados.

Antes de executar o experimento, preveja onde aparecerá o ponto mais baixo do gráfico de erro da divisão. O limiar 50 já é melhor do que nenhuma divisão, mas será o melhor entre as oito opções?

Experimento 1 · avalie cada divisão

Percorra os limiares de fertilizante

1 de 8 limiares testados

Limiar atual: fertilizante menor ou igual a 10 quilogramas por hectare. Erro da divisão 8.229.

Dados e previsões dos dois grupos
Produtividade da plantação por quantidade de fertilizanteNove observações formam um padrão curvo. Linhas verticais de resíduo conectam cada observação à previsão média do grupo atual.12345602040608010012014016010ABCDEFGHIFertilizante (kg/hectare)Produtividade (t/hectare)
Esquerda · 1 linhamédia 1.5 t/havariância 0
Direita · 8 linhasmédia 4.39 t/havariância 1.029
erro da divisão1 × 0+8 × 1.029=8.229
Erro da divisão nos limiares testados
Erro da divisãomenor é melhor
1030507090110130150atual: 8.229
Menor erro até agorafertilizante10 kg/haerro da divisão 8.229 · melhoria 7.411

Ao executar a varredura completa, o melhor primeiro limiar é 30 kg/ha. O grupo esquerdo prevê 1,95 tonelada/ha, o direito prevê aproximadamente 4,67 toneladas/ha, e o erro quadrático combinado é de aproximadamente 4,119.

Essa é a mesma busca que usamos na classificação. Ainda testamos os pontos médios um a um e guardamos o melhor resultado. Só a pontuação mudou: em vez de procurar menos mistura de classes, procuramos menos erro quadrático de previsão.

O valor da folha

Mas qual é a previsão?

Agora sabemos escolher uma divisão de regressão, mas ainda precisamos de uma previsão para cada grupo resultante.

O ajuste é pequeno: calcule a média dentro de cada folha.

uma pergunta aprendidafertilizante ≤ 30 kg/ha?
sim · folha esquerda
A1.5B2.4

(1.5 + 2.4) ÷ 2

previsão 1,95 t/ha
não · folha direita
C3.8D5.1E5.7F5.4G4.8H4.2I3.7

(3.8 + 5.1 + 5.7 + 5.4 + 4.8 + 4.2 + 3.7) ÷ 7

previsão 4,67 t/ha
Uma folha de regressão armazena uma previsão: o valor-alvo médio das linhas de treino que chegam até ela.

Se pararmos o modelo de Alice após a primeira divisão, quantidades de fertilizante menores ou iguais a 30 kg/ha recebem a média esquerda, 1,95 tonelada/ha. Quantidades maiores recebem a média direita, cerca de 4,67 toneladas/ha. Essas estimativas são melhores para os dados de treino do que o único valor 4,07 de Bob, pois a divisão reduziu o erro quadrático total.

A média não é uma escolha arbitrária. Entre todas as previsões de um único número para um grupo, a média é a que produz o menor erro quadrático. Como escolhemos o erro quadrático como pontuação, a média e a pontuação pertencem uma à outra.

Tamanho da árvore

Mas quando a árvore deve parar?

Em nosso primeiro exemplo de classificação, paramos quando cada folha ficou pura: todas as linhas de uma folha tinham a mesma classe.

A regressão não tem classes para tornar puras. Com um conjunto de dados finito, a árvore não crescerá literalmente para sempre, mas pode continuar dividindo até quase toda folha conter uma única linha de treino. Suas previsões então copiam os dados de treino de perto e podem funcionar mal em dados novos.

Por isso, damos uma regra de parada à árvore. Algumas escolhas comuns são:

  1. Profundidade máxima: pare depois de um número fixo de perguntas aninhadas.
  2. Mínimo de linhas por folha: rejeite divisões que criem grupos pequenos demais.
  3. Variância suficientemente pequena: pare quando os valores-alvo de um grupo já estiverem próximos.
  4. Melhoria mínima: divida somente quando o erro cair por uma quantidade relevante.

Todas essas regras fazem a mesma troca. Uma árvore menor oferece previsões mais aproximadas e estáveis. Uma árvore maior acompanha os dados de treino mais de perto. No próximo experimento, mude uma regra de parada por vez e preveja quantas folhas de previsão a árvore criará.

Experimento 2 · escolha quando parar

Veja a mesma busca formar uma árvore de regressão

0 de 5 decisões tomadas

Profundidade máxima da árvore. Pare depois que a árvore fizer um número fixo de perguntas aninhadas.

  1. Propor uma divisãoteste cada limiar do grupo
  2. Avaliar os dois gruposmantenha a divisão somente se ela reduzir o erro
  3. Repetir dentro de cada grupouse recursão até uma regra de parada ser atendida
Passo 1 de 5Propor e avaliar — a melhor divisão vence.

Neste grupo (9 linhas, média 4.07 t/ha), a busca testou todos os limiares. O melhor é fertilizante ≤ 30, que reduz o erro quadrático em 11.521. Aceitamos a divisão e repetimos a mesma busca nos dois grupos menores.

Regiões se tornam previsões fixas
Produtividade da plantação por quantidade de fertilizanteNove observações formam um padrão curvo. Linhas verticais de resíduo conectam cada observação à previsão média do grupo atual.123456020406080100120140160ABCDEFGHIFertilizante (kg/hectare)Produtividade (t/hectare)
0160 kg/ha · 9 linhasprevisão 4.07 t/ha
Cada vencedora local se torna uma pergunta
avaliando este grupo9 linhasA B C D E F G H I · variância 1.738

Além de uma coluna

Mais características, os mesmos dois loops

Nosso exemplo de fertilizante usou uma característica para que pudéssemos enxergar a nova pontuação de regressão sem mudar mais nada. Uma tabela real normalmente dá à árvore mais de uma coluna possível para perguntar.

Volte à estufa, agora com doze canteiros. Para cada um, sabemos a temperatura, a água fornecida por semana, a luz solar por dia e a produtividade que queremos prever. O alvo continua sendo um número. Só cresceu o número de perguntas possíveis.

A busca precisa de dois loops:

  1. Para cada característica, escolha uma coluna.
  2. Para cada ponto médio entre valores distintos dessa coluna, meça o erro da divisão.

A árvore guarda a candidata com menor erro nos dois loops. Depois, a recursão envia cada novo grupo pela mesma busca outra vez.

A temperatura tem 11 intervalos distintos, a água tem 9 e a luz solar tem 7; assim, a raiz compara 27 candidatas no total. Valores repetidos não criam um limiar extra porque não podem ser separados por um ponto médio.

Antes de selecionar uma característica abaixo, faça uma previsão: qual coluna pode criar a primeira divisão com menor erro? Os pontos mantêm o mesmo eixo vertical do alvo enquanto você troca de característica. Só a característica horizontal e seu limiar mudam.

Experimento 3 · loop pelas características

Compare a melhor divisão de cada característica

11 + 9 + 7 = 27 candidatas na raiz
Dados de treino · característica selecionada em destaque
Greenhouse measurements and crop yield for twelve training rows
LinhaTemperatura (°C)Água por semana (L)Luz solar por dia (h)Produtividade (t/ha)
A1636.51.7
B171.531.9
C18452
D201.263.8
E231.63.54
F26274.1
G2132.55
H243.535.1
I2743.55.2
J223.25.55.6
K253.765.8
L284.26.55.9

Busque cada ponto médio distinto de uma característica e mantenha sua divisão de menor erro. A raiz então escolhe o menor erro entre as três vencedoras.

Dados e previsões dos dois grupos
Produtividade prevista a partir de temperaturaDoze linhas da estufa são representadas por temperatura e produtividade. Um limiar vertical cria dois grupos e uma média horizontal prevê cada grupo.2345616182022242628previsão 1.7previsão 4.416.5ABCDEFGHIJKLTemperatura (°C)Produtividade (t/hectare)
Erro da divisão por limiar
Erro da divisão · menor é melhor16.517.51920.521.522.523.524.525.526.527.5melhor · 5.129atual · 19.76temperatura · limiar (°C)
Melhor divisão para temperaturatemperatura19 °Cerro da divisão 5.129

A árvore de decisão final

A vencedora muda dentro de cada grupo

parar quando a melhoria < 0.25
perguntaTemperatura19 °C?
sim · ≤
folha · 3 linhasprevisão 1.87 t/haA B C
não · >
perguntaÁgua por semana2.5 L?
sim · ≤
folha · 3 linhasprevisão 3.97 t/haD E F
não · >
perguntaLuz solar por dia4.5 h?
sim · ≤
folha · 3 linhasprevisão 5.1 t/haG H I
não · >
folha · 3 linhasprevisão 5.77 t/haJ K L

Na raiz, a melhor pergunta de temperatura deixa erro de divisão de aproximadamente 5,129. A melhor pergunta sobre água deixa 19,542 e a melhor sobre luz solar, 25,302. Portanto, a temperatura vence a primeira busca local com o limiar 19 °C.

O processo não deixa de usar as outras colunas. Dentro do grupo mais quente, água em 2,5 L por semana se torna a próxima vencedora local. Dentro do grupo quente e bem irrigado, luz solar em 4,5 horas por dia vence a terceira busca. Com uma melhoria mínima de 0,25, a pequena árvore final usa as três características e deixa quatro previsões médias.

Essa é a mesma generalização que fizemos para classificação. Mais colunas criam mais candidatas, não um novo algoritmo de treino. A classificação mantém a divisão com a maior redução na mistura de classes. A regressão mantém a divisão com o menor erro quadrático restante. Os dois loops e a recursão permanecem.

Todo o procedimento da árvore de regressão agora cabe em uma imagem compacta:

  1. Para cada característica, proponha pontos médios entre seus valores distintos.
  2. Avalie cada limiar pelo erro quadrático restante em torno das médias dos dois grupos.
  3. Mantenha a divisão de menor erro entre todas as características e limiares.
  4. Repita dentro dos novos grupos até uma regra de parada dizer que um grupo é uma folha.
  5. Preveja a média dos alvos de treino dentro dessa folha.

Mantenha o menor modelo mental útil

Uma árvore de regressão é a mesma busca, avaliada pelo erro quadrático.

Em cada nó, teste todas as divisões candidatas. Mantenha aquela que deixa o menor erro quadrático em torno das médias dos dois grupos. Depois, repita nos grupos ainda dispersos e deixe cada folha prever sua média.

Não substituímos o algoritmo da árvore. Mudamos a pergunta usada para avaliar uma divisão e o valor armazenado em uma folha — e esse era o ponto. Elevar ao quadrado a distância até a média de um grupo transformou “estes números estão próximos” em uma quantidade que o mesmo loop podia minimizar, assim como o ganho de Gini fazia com a mistura de classes. A estrutura propor–avaliar–repetir fez o restante.

Você entende o mecanismo se agora consegue…

  • explicar por que a média é a previsão de folha favorecida pelo erro quadrático;
  • pontuar um limiar candidato pelo erro quadrático de seus dois grupos;
  • enunciar o algoritmo de treino da regressão como dois loops mais recursão;
  • citar uma regra de parada e prever como ela altera o tamanho da árvore;
  • explicar como a mesma busca de limiares compara várias características;
  • dizer o que mudou em relação à árvore de classificação — e o que não mudou.