Study Notes
DataMl

Regression

y^=Xβ\hat{y} = X\beta Expandidamente: y^i=β0+β1xi1+β2xi2++βpxip\text{Expandidamente: } \hat{y}_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \dots + \beta_p x_{ip}

  • XRn×pX \in \mathbb{R}^{n \times p}: matriz de dados (cada linha é uma observação, cada coluna é uma feature). Ou seja, pp é o número de predictors/features.
  • yRny \in \mathbb{R}^n: vetor com valor real dos nn dados observados.
  • βRp\beta \in \mathbb{R}^{p}: vetor de coeficientes (parâmetros do modelo). βi\beta_i é o peso, quanto yiy_i varia quando aumente xix_i varia.
  • y^Rn\hat{y} \in \mathbb{R}^{n}: vetor de predições. Em que y^i\hat{y}_i é a saída do modelo para uma instância.
  • ei=yiy^ie_i=y_i-\hat{y}_i: resíduo/erro, a diferença entre real e previsto. minβJ(β)\min_{\beta} J(\beta)
  • J(β)J(\beta): Loss Function/função de perda/custo. É uma função que compara todos os resíduos ei=yiy^i,i=0,1,,ne_i = y_i -\hat{y}_i, \forall i=0,1,\dots,n e retorna um valor de custo. Quanto mais baixo JJ melhor é o modelo. Ou seja, o objetivo é minimizar a loss function ajustando os vetor de pesos do modelo, encontrando a melhor linha/plano que se ajusta ao dados.

OLS - Ordinary Least Squares


Esse é o método de Regressão Linear mais clássico que existe. "Ordinary/Ordinário" porque distingue das variações com regularização (como Ridge, Lasso) e Least Squares refere-se a minimizar a soma dos quadrados dos erros. minβJ(β)J(β)=SSE\min_{\beta} J(\beta) \text{, } J(\beta)=SSE Ou seja, encontrar os pesos β\beta que resultam na menor SSESSE possível.

SSE - Sum of Squared Errors


SSE=i=1n(yiy^i)2SSE=\sum_{i=1}^n (y_i - \hat{y}_i)^2 Mas por que usar o quadrado em vez do módulo?

  • Penalizar eie_i discrepantes.
  • A função ei2e_i^2 é suave/contínua, o que, diferentemente da ei|e_i| (que possuí uma "quina"), é possível usar do cálculo para encontrar a exato ponto mínimo.

Solução Analítica


Uma característica do OLS é a presença de uma solução analítica, isto é, uma fórmula fechada (que não precisa de iterações) para esse problema de otimização.

J(β)=i=1n(yiy^i)2=(yXβ)T(yXβ)J(\beta)=\sum_{i=1}^n (y_i - \hat{y}_i)^2 = (y - X\beta)^T(y - X\beta) e=(yXβ)=yy^=[y1y2yn][y^1y^2y^n]=[(y1y^1)(y2y^2)(yny^n)]e = (y - X\beta) = y - \hat{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} - \begin{bmatrix} \hat{y}_1 \\ \hat{y}_2 \\ \vdots \\ \hat{y}_n \end{bmatrix} = \begin{bmatrix} (y_1 - \hat{y}_1) \\ (y_2 - \hat{y}_2) \\ \vdots \\ (y_n - \hat{y}_n) \end{bmatrix} (yXβ)T(yXβ)=eTe=(e1e1)+(e2e2)++(enen)(y - X\beta)^T (y - X\beta)=e^T e=(e_1 \cdot e_1) + (e_2 \cdot e_2) + \dots + (e_n \cdot e_n)

  1. Loss Function: J(β)=(yXβ)T(yXβ)J(\beta) = (y - X\beta)^T(y - X\beta)
  2. Expandir (álgebra de matrizes):
    • J(β)=(yTβTXT)(yXβ)J(\beta) = (y^T - \beta^T X^T)(y - X\beta)
    • J(β)=yTyyTXββTXTy+βTXTXβJ(\beta) = y^T y - y^T X \beta - \beta^T X^T y + \beta^T X^T X \beta
  3. Derivar em relação a β\beta (Cálculo de Matrizes):
    • Jβ=2XTy+2XTXβ\frac{\partial J}{\partial \beta} = -2X^T y + 2 X^T X \beta
  4. Igualar a Derivada a Zero (encontrar o ponto mínimo):
    • 0=2XTy+2XTXβ0 = -2X^T y + 2 X^T X \beta
  5. Resolver para β\beta:
    • 2XTXβ=2XTy2 X^T X \beta = 2 X^T y
    • XTXβ=XTyX^T X \beta = X^T y Para isolar β\beta, multiplicamos ambos os lados pela inversa de (XTX)(X^T X):

β=(XTX)1XTy\beta = (X^T X)^{-1} X^T y

Esta é a Solução Analítica, também conhecida como Equação Normal.

Essa solução analítica permite calcular o ponto (β0,β1,β2,,βp)(\beta_0, \beta_1,\beta_2,\dots,\beta_p) que faz com que J(β)J(\beta) seja mínima de forma ótima. Diferentemente de métodos iterativos, que são uma aproximação.

Exemplo


Imagina um cenário que foram coletado o comprimento e o peso de ratos. Dessa forma, o objetivo é estimar/prever o comprimento yy com base no peso XX dos ratos.

mices_exemple_scatterplots.png

A #Solução Analítica seria "teletransportasse" para o mínimo do gradiente. Já a iterativa seria esse caminho, em que, a cada iteração, (β0,β1,SSEi)(\beta_0, \beta_1, SSE_i) é encontrado.

mices_exemple_gradiente_OLS_lossfunc.png

MSE - Mean Squared Error


MSE=SSSn=1ni=1n(yiy^i)2MSE=\frac{SSS}{n}=\frac{1}{n}\sum_{i=1}^n (y_i - \hat{y}_i)^2 Uma observação é que minimizar SSE é equivalente a minimizar MSE porque a diferença entre eles é uma constante positiva que não altera a posição do mínimo. O vetor de pesos que minimiza a loss function MSEMSE é o mesmo que SSESSE. O único fator que muda é a coordenada minima/ ponto mínimo do gradiente, (β0,β1,,βp,SSE)(\beta_0, \beta_1, \dots, \beta_p, SSE) de (β0,β1,,βp,MSE)(\beta_0, \beta_1, \dots, \beta_p, MSE). É como se a altura do mapa/ gradiente fosse diminuída.

Dessa forma, encontrar a solução analítica usando SSE ou MSE não faz diferença. No entanto, usando uma abordagem iterativa, apesar de β\beta que minimiza a loss não mudar, é mais vantajoso utilizar MSE para o processo de treinamento.

Referências


On this page