Aula 4
Aprendizado supervisionado: modelos lineares
Introdução
Nesta aula, aplicaremos os frameworks que começamos a ver mais detidamente para problemas de regressão, isto é, problemas nos quais o objetivo é predizer variáveis contínuas. Também precisaremos definir novas métricas de validação, entender um pouco de regularização e lidar com alguns problemas comuns como o de diferentes distribuições nos nossos preditores.
Problemas de regressão
Como deve ser familiar para todo mundo neste curso, modelos de regressão normalmente são apresentados da seguinte forma:
\[ Y_{i} = \alpha + \beta x_{i} + \epsilon_{i} \] onde \(Y_{i}\) indica alguma variável dependente contínua, numérica, como votos obtidos em uma eleição; o preço de um produto; a nota em uma prova. Tipicamente, esse modelo é estimado por OLS e, a partir dos coeficientes como \(\beta\), se fazem inferências. O modelo também tem uma série de pressupostos, mas não nos deteremos nisso aqui – em aprendizado de máquina, isso não é tão relevante porque o objetivo não é inferência.
Do ponto de vista de predição, OLS minimiza uma métrica simples:
\[ \sum_{i=1}^{n} (\hat{y_{i}} - y_{i})^{2} \] isto é, a soma das diferenças entre predição e valores reais ao quadrado. Há diferentes formas de se obter o melhor modelo usando OLS e, de forma prática, eles resultam em uma função \(f(x_{i})\) que faz novas predições a partir dos coeficientes estimados.
Métricas
Problemas de regressão envolvem usar métricas apropriadas para variáveis contínuas. No geral, queremos saber se um dado modelo faz predições numéricas próximas de determinados valores, caso de um modelo OLS. No entanto, há mais do que isso: em algumas aplicações, também precisaremos obter modelos que reduzam a variação na distanção entre \(\hat{Y_i}\) e \(Y_{i}\); em outras, precisaremos lidar com outliers. Para essas e outras tarefas, há métricas de validação mais indicadas.
Para resumir, segue um quadro com exemplos:
Métrica | Indicação |
---|---|
Erro médio (ou MAE ) |
Dá o mesmo peso para quaisquer erros, isto é, outliers; mesma unidade de \(Y\) |
Erro quadrático médio (MSE ) |
Leva em conta variação nos erros, penalizando outliers |
Raiz do erro quadrático médio (RMSE ) |
Transforma o MSE trazendo ele de volta para a unidade de \(Y\), que pode ser interpretado na escala de desvios-padrão |
Exemplos: para predizer o total de vendas diárias de um item baseado em seu preço, o melhor talvez seja usar MAE
, uma vez que é possível que valores reais de vendas não tenham variações extremas; ao contrário, para predizer a renda de uma pessoa em função de características demográficas, RMSE
ou MSE
podem ser mais indicadas. No geral, RMSE
é preferido em relação a MSE
.
E o R^2
(ou r-quared)? O R^2
, apesar de ser uma métrica de ajuste muito comum em aplicações de inferência por indicar a variação explicada em \(Y\) a partir dos preditores, não mensura erro diretamente – o que é mais importante para o caso de unseen data. Isso significa que, em alguns casos, RMSE
ou outras podem divergir do R^2
, dado que são medidas que buscam mensurar coisas diferentes.
Regularização
Como vimos, regressão por OLS encontra sempre o modelo modelo minimizando a soma dos erros quadráticos. Embora essa seja uma métrica razoável, caso queiramos usar outras, ou ainda ajustar o nível de complexidade ou reduzir o peso de variáveis que não ajudam nosso modelo, precisaremos de outras soluções. Para esses e outros casos, regularização
é a chave.
Em termos simples, regularização
nada mais é do que um conjunto de métodos utilizados para melhorar o poder preditivo de modelos e/ou evitar overffiting e complexidade. Quando usamos regularização
, portanto, estamos mirando em ter modelos melhores e, ao mesmo tempo, menos complexos. Lembrem-se do trade-off entre variânecia e viés: queremos um modelo que evite viéses, isto é, que consiga captar bem sinais evitando ruídos, mas queremos evitar overfitting que pode levar a erros de predição em unseen data.
Há diversas formas de regularização
(veremos isso detidamente em aulas futuras), mas algumas mais comuns incluem cross-validation, que tem a ver com o método de validação utilizado; usar subsets dos preditores; ou penalizar coeficientes (L1, L2 e ElasticNet). Aqui, vamos focar no último cenário, que pode ser implementado com ridge
ou LASSO
. As variações são simples de se entender:
\[ LASSO = \sum_{i=1}^{n} (y_{i} - \sum_{j=1}^{m} x_{ij} \beta_{j})^{2} + \lambda \sum_{j=0}^{m} |\beta_{j}| \]
\[ RIDGE = \sum_{i=1}^{n} (y_{i} - \sum_{j=1}^{m} x_{ij} \beta_{j})^{2} + \lambda \sum_{j=0}^{m} \beta^{2}_{j} \] Popularmente, essas funções são conhecidas por outros nomes:
Regularização por L1
, implementada por meio de regressãoLASSO
, que é útil quando temos muitos preditores e queremos que o modelo encontre as mais úteis (i.e., até mesmo eliminando as menos relevantes)Regularização por L2
, implementada por meio de regressãoRidge
, que é útil quando temos muitos preditores potencialmente importantes (mas queremos reduzir overffiting)
Como deve ser possível perceber, os dois tipos são sensíveis à escala dos preditores – se usamos escalas muito diferentes, especialmente L2
, a estimação de \(\beta\) e o valor de \(\lambda\) é impactado. Isso nos leva, portanto, a ter que lidar com outro tipo de problema.
Transformações
Para evitar que regularização
não funcione adequadamente em problemas de regressão (mas isso também é válido para outros tipos de problemas e para um amplo leque de algoritmos), o ideal é sempre transformas, ou estandarizar, variáveis contínuas para que fiquem em escalas próximas. Bom exemplos incluem:
- Manter variáveis em proporção, variando de 0 a 1
- Usar z-valores, que nada mais é do que subtrair a média de \(X\) para cada unidade \(i\) e, depois, dividir cada valor pelo desvio-padrão de \(X\)