Viés, Variância e Regularização
Tags: machinelearning, statistics
Published: 2019-10-31 00:48:26


Regularização é um tema importante quando o assunto é uma boa modelagem mas antes de entrarmos no assunto precisamos entender o conceito de viés e variância. Eles são o propósito do uso das regularizações.

### Viés e Variância

A incapacidade de um modelo de capturar a verdadeira relação entre variáveis e o objeto a ser predito é o que chamamos de VIÉS (Bias em inglês).

Então, quando o erro de viés é alto significa que o modelo não está aprendendo nada.

![](https://cdn-images-1.medium.com/max/800/1*q_hdLouaSQwUkshCe5rY4Q.png)

Nessa imagem temos a linha azul como sendo o nosso modelo onde queremos separar esse dataset em duas categoriais. Veja que há muitos X vermelhos juntos com as bolinhas, as categorias não foram muito bem separadas, isso significa que o modelo ainda não entendeu a “curva” que ele deveria fazer para categorizar esses dados corretamente. Chamamos isso de Underfitting.

Por outro lado, se há um viés muito pequeno o modelo fica tão ajustado aos dados de treinamento que quando é usado com dados diferentes acaba errando muito. Aqui entra o conceito de variância.

A variância é a sensibilidade de um modelo ao ser usado com outros datasets diferentes do treinamento. Se o modelo é muito sensível aos dados de treinamento, ou seja, identificou tão bem a relação entre os dados de treinamento, que quando colocado em teste irá errar justamente a variação que existe entre os datasets.

![](https://cdn-images-1.medium.com/max/800/1*QfGXli0jP1QDAUuAeWOTeA.png)

Veja na última imagem como o nosso modelo está acertando absolutamente todos os dados. Chamamos isso de Overfitting. O modelo ideal seria algo parecido com o modelo do meio da próxima imagem, gerando uma curva mais generalizada.

![](https://cdn-images-1.medium.com/max/800/1*0ezlGge0OqGhzMo6HDEA8A.png)

Agora observem a imagem abaixo, nela está representado o Trade-off. Percebam que o erro total do modelo é soma do viés (bias) com a variância e que conforme o modelo vai “aprendendo” (_model complexity_ aumenta) temos um momento de baixa e logo depois o erro volta a crescer.

  

![](https://cdn-images-1.medium.com/max/800/0*UDp6phojWvlixHO9)

É muito comum modelos que aprendem muito bem no conjunto de treino, mas acabam apresentando Overfitting. Isso faz com que o modelo esteja do lado direito desse diagrama, entretanto, o ideal é que fique mais próximo ao meio. Então para diminuir a variância acrescentamos um pouquinhos de viés, assim ele “desaprende” o suficiente para conseguir generalizar e ser usado além dos dados de treino.

### REGULARIZAÇÕES

> A regularização introduz um RUÍDO no modelo para diminuir o erro de variância.

As regularizações que veremos também são chamadas de Regressões penalizadas. Regressões são modelos estatísticos inferenciais que tem como objetivo minimizar a soma dos resíduos ao quadrado ([leia mais sobre regressões aqui](https://dev.to/giselyalves13/regressao-linear-1lf5)). Abaixo temos o exemplo de uma Regressão Linear Simples, onde os dados vermelhos seriam o nosso conjunto de treino. A reta dessa Regressão foi escolhida por ser a que possui a menor soma dos resíduos ao quadrado de acordo com a sua base de treino, mas isso não fez com que essa fosse a melhor reta contando com todos os outros pontos.

![](https://cdn-images-1.medium.com/max/800/0*fLGdCEWSrofw-zMe)

Nas Regularizações o objetivo não é minimizar apenas a soma dos resíduos ao quadrado (SRQ) mas também um valor penalizado em cima dos parâmetros da regressão.

### Ridge Regression

Nessa vamos minimizar a soma dos resíduos ao quadrado + uma penalização em cima de todos os parâmetros ao quadrado. A função a ser minimizada pela regressão ficaria (onde λ é um número utilizado para penalização):

SRQ + λ * ( parâmetro₁² + parâmetro₂² + …)

Agora podemos observar a diferença nas retas de uma Regressão Simples e uma Regularização. Veja que, apesar da reta não estar totalmente ajustada aos dados de treino, o seu ajuste ao total dos dados melhorou.

![](https://cdn-images-1.medium.com/max/800/0*Aqfbge8ThDtMJuZf)

As regularizações funcionam de forma muito parecida mas não servem apenas para evitar o overfitting. Isso é o que podemos ver mais claramente na Lasso Regression.

### Lasso Regression

A Lasso também penaliza os parâmetros, entretanto, ao invés de colocá-los ao quadrado, eles são usados em módulo. A função minimizada então seria essa:

SRQ + λ * ( |parâmetro₁| + |parâmetro₂| + …)

Beleza, mas e daí?

A grande diferença entre Lasso e Rigde é que a Lasso pode levar os parâmetros a (exatamente) 0 enquanto a Ridge apenas próximo à 0.

Isso significa que:

Parâmetros ruins usados na modelagem podem ser **EXCLUÍDOS** da equação. Ou seja, Regularizações também podem ser úteis na escolha dos parâmetros para as nossas modelagens.

Ridge Regression seria bem utilizada quando sabemos que a maioria dos parâmetros são úteis para o modelo. Já uma Lasso Regression quando temos muitos parâmetros e alguns deles podem ser inúteis. Além das duas, ainda temos mais um tipo de regressão penalizada que combina as duas últimas.

### Elastic-Net Regression

Elastic-Net é uma combinação da penalização da Lasso e Ridge. Sua função de minimização fica como mostrado abaixo:

SRQ +

λ₁ * ( |parâmetro₁| + |parâmetro₂| + …) +

λ₂ * ( parâmetro₁² + parâmetro₂² + …)

Lasso + Ridge

Essa técnica ainda é boa para quando há parâmetros correlacionados. Já que no Lasso a maioria deles seria excluída e no Ridge esses parâmetros apenas teriam valores muito baixo.

----------

### Referências

Algumas referências que usei para aprender sobre o assunto do post :D :

> [Regularization Tutorial — DataCamp](https://www.datacamp.com/community/tutorials/tutorial-ridge-lasso-elastic-net)

> [Bias vs Variance — Becoming Human](https://becominghuman.ai/machine-learning-bias-vs-variance-641f924e6c57?gi=a3e2389c3add)

> [StatQuest with Josh Starmer](https://www.youtube.com/channel/UCtYLUTtgS3k1Fg4y5tAhLbw)