Regularização e aumento na modelagem preditiva

Muitas pessoas que usam o Tableau podem não usar modelagem preditiva, muito menos procurar maneiras de melhorar a qualidade de ajuste e previsão de um modelo preditivo. Este artigo é para usuários avançados que estejam interessados nesta área de ciência de dados.

Além dos argumentos padrão, como expressão de destino (a medida para prever) e expressão preditiva (a medida e/ou dimensões usadas para fazer a previsão), você pode adicionar mais dois argumentos para ajustar suas previsões: lambda, um parâmetro de regularização e aumento. Isso envolve adicionar os novos argumentos à sintaxe do seu cálculo.

Quais modelos funcionam com regularização e aumento?

Como um lembrete, as funções de modelagem preditiva no Tableau aceitam três modelos: regressão linear (também conhecida como regressão de quadrados mínimos comuns, ou OLS), regressão linear regularizada (regressão de Ridge) e regressão do processo gaussiano. Se você estiver usando regressão linear ou de Ridge, o aumento permite ampliar a capacidade de seus modelos de captar padrões não lineares. Se você estiver usando a regressão de Ridge, o parâmetro de regularização é uma escala que você pode usar para ajustar o efeito de regularização em seu modelo.

A regularização e o aumento não se aplicam à regressão do processo gaussiano.

Antes de discutir mais sobre a regularização e o aumento, vamos rever esses dois modelos:

A regressão linear é melhor utilizada quando há um ou mais preditores que têm uma relação linear entre a previsão e o alvo de previsão, eles não são afetados pelas mesmas condições subjacentes, e não representam duas instâncias dos mesmos dados (por exemplo, vendas expressas em dólares e euros).

A regularização linear regularizada é usada para melhorar a estabilidade, reduzir o impacto da colinearidade e melhorar a eficiência computacional e a generalização. No Tableau, a regularização L2 é utilizada. Para obter mais informações sobre a regularização L2, consulte esta lição sobre a Regressão de Ridge.

O que é regularização?

A regressão de Ridge é um tipo específico de regressão linear regularizada. A regularização impõe uma penalidade sobre o tamanho dos coeficientes do modelo. A força da regularização é controlada pela lambda, uma escala usada para ajustar o impacto global da regularização. Quanto maior o valor, maior a pena (ou seja, maior a regularização).

A regressão de Ridge aborda alguns dos problemas de regressão linear:

  • Remove patologias introduzidas pela multicolinearidade entre os preditores.

  • Se o problema de menor quadrado estiver mal condicionado, como se o número de pontos de dados fosse menor do que o número de recursos, então a lambda selecionará uma solução única.

  • Ela fornece uma maneira de melhorar a generalização do modelo linear.

Por padrão, a regressão de Ridge no Tableau tem lambda=0,5 porque esse valor funciona bem em muitos casos. Para alterar o valor de lambda, basta editar o cálculo da tabela (exemplos abaixo).

O que é aumento?

O aumento em MODEL_QUANTILE e MODEL_PERCENTILE é um exemplo simples de aumento de dados: os preditores são expandidos para polinômios de ordem mais alta. No Tableau, existem alguns tipos de aumentos polinomiais incorporados às funções de modelagem preditiva.

  • Para as dimensões ordenadas, os polinômios de Legendre até a ordem 3 permitem que o modelo linear capture relações quadráticas e cúbicas entre o preditor aumentado e a resposta.

  • Para medidas, polinômicos hermitas de 2º grau permitem que o modelo linear pegue relações quadráticas entre o preditor aumentado e a resposta.

Na regressão linear, apenas as dimensões ordenadas são aumentadas por padrão com augmentation=on; na regressão de Ridge em que model=rl, apenas as medidas são aumentadas por padrão. Para substituir a configuração e desativar o aumento de cada preditor em seu cálculo, use augmentation=off; não serão adicionados polinômios de ordem superior.

Desligar os aumentos é vantajoso quando o conjunto de dados é muito pequeno, porque os aumentos podem sobreajustar qualquer ruído presente nos dados originais, e também porque a relação resultante é mais simples e intuitiva.

Observação: o aumento é ligado/desligado em uma base por preditor (ou seja, dentro do argumento preditor do seu cálculo). Lambda (e modelo) são aplicados no nível mais alto (fora quaisquer expressões preditoras).

Configuração de lambda e aumento em seu cálculo

Agora que você sabe sobre o parâmetro de regularização (ou lambda) e o aumento de dados, vamos vê-los no contexto de um cálculo de previsão:

MODEL_QUANTILE("model=rl, lambda=0.05", 0.5, SUM([Profit]), "augmentation=off", SUM([Sales]))

Abaixo está uma tabela que resume rapidamente se a alteração do aumento e da lambda em relação ao padrão afeta os modelos lineares:

 AumentoLambda
Regressão de RidgeSimSim
Regressão linearSimNão aplicável

Considerações para regularização e aumento

  • Se você tiver o modelo errado para seus dados, então mudar o parâmetro de regularização ou aumento provavelmente não produzirá resultados significativamente melhores. Considere revisar se os tipos de dados estão corretos (medidas versus dimensões). Se os dados subjacentes forem uma série temporal, por exemplo, considere usar a Regressão do processo gaussiano, alterando o modelo no cálculo da tabela com model=gp.

  • Como o OLS não está regularizado, não há valor de lambda que possa ser alterado.

  • Se o seu conjunto de dados for extremamente pequeno e você tiver dimensões (especialmente dimensões de alta cardinalidade), então considere usar a regressão de Ridge adicionando model=rl ao seu cálculo de tabela.

  • Se tudo for igual (para o mesmo conjunto de dados, dado que o aumento está ativado ou desativado), uma lambda baixa pode melhorar o ajuste, mas prejudicar a generalização (causar superajuste).

  • Por outro lado, uma lambda alta pode fazer com o ajuste seja um modelo constante, sem dependência de nenhum dos preditores. Isso reduzirá a capacidade do modelo (causa subajuste).

Exemplo 1

Este exemplo mostra a relação entre colesterol médio e doenças cardíacas em homens e mulheres, onde os homens são representados por marcas quadradas e as mulheres por círculos.

Na primeira visualização, as marcas azuis indicam o alvo da previsão, e as marcas laranjas são os valores modelados. Você pode ver que os dados são muito polêmicos, e que com o aumento ativado e um pequeno valor lambda de 0,01, vemos taxas irrealistas de doenças cardíacas maiores que 1. Há uma dependência muito acentuada, provavelmente devido a todas as exceções nos dados polêmicos.

Doença cardíaca por sexo com meta de previsão e um modelo mal ajustado

MODEL_QUANTILE("model=rl, lambda=0.01", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=on", AVG([Chol]))

Na próxima visualização, comparamos o alvo de previsão com um modelo diferente, com aumento desativado e um valor lambda fora de 10. Observe que este modelo é mais realista, e nenhuma marca excede uma taxa de doença de 1.

Doença cardíaca por sexo com meta de previsão e um modelo melhor

MODEL_QUANTILE("model=rl, lambda=10", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=off", AVG([Chol]))

Exemplo 2

Em seguida, vamos analisar outro exemplo do mundo real usando dados de pilotagem para o sistema de compartilhamento de bicicletas Bluebikes (anteriormente Hubway) de Boston. Nesse caso, a regressão linear funciona bem. Compare as seguintes visualizações, agregadas a trimestres de 2017:

Gráfico de dados de viagens do Hubway sem ajuste excessivo

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, sum([Trip.Duration]), AVG([Temp]))

Gráfico de dados de viagens do Hubway sem ajuste excessivo

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, AVG([Speed]), AVG([Temp]))

Nenhuma é propensa a muito sobreajuste, então a dependência da lambda é fraca para uma lambda pequena.

Agora analise esta última visualização:

Gráfico de dados de viagens do Hubway sem ajuste excessivo

MODEL_QUANTILE('model=rl, lambda=2', 0,5, soma Trip.Duration]), AVG([Temp]))

Observe que à medida que lambda aumenta, o ajuste se torna sem inclinação (ou seja, torna-se superregularizado ou “subajustado”).

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!