MO432 -capitulo 5 e 6
importante saber o que é RMSE e o MSE (RMSE é a raiz quadrada do MSE)
o R^2 é bem menos importante
o capitulo não cobre outras medidas de erro em particular o MAE (Mean absolute error)
\frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|
veja outras funções de error em https://scikit-learn.org/stable/modules/model_evaluation.html#regression-metrics (implementadas no SKlearn)
a função Mean squared logarithmic erro é tambem usada para dados que normalmente sao pequenos mas que alguns podem ser explosivamente grandes (tempo de permanência em UTI por exemplo)
De uma lida por cima. O ponto importante dessa seção é dar nome para alguns conceito:
O \sigma^2 que é um “ruído dos dados” que não é capturado por nenhum modelo.
O viés de modelo é o erro que o modelo insere por não poder modelar bem os dados, ou pelo modelo ser “pouco complexo”.
A variância do modelo é quando o modelo muda (depois de ajusta-lo aos dados) quando os dados mudam. Modelos com alta variância são “muito complexos” pois eles se ajustam bem aos dados (e portanto se os dados mudam o resultado muda muito).
em sklearn https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html?highlight=linear%20regression#sklearn.linear_model.LinearRegression
fig 6.6 introduz o conceito de loss que é igual ao conceito de medida do erro (de uma regressão)
SSE= \sum (y_i - \hat{y}_i)^2 similar ao MSE = \frac{1}{n}\sum (y_i - \hat{y}_i)^2 Exatamente a mesma coisa!
SSE é um loss que é usado na função de otimização do modelo. MSE é uma medida que é usada para um conjunto de dados (o de teste!)
Similar com MAE e absolute loss na figura 6.6
Normalmente (mas não sempre) um modelo ou algoritmo (como regressão linear) tem um loss fixo ja que mudar o loss geralmente muda muito o algoritmo de otimização (mas de novo nem sempre, descida do gradiente com diferenciação automática é “independente” da função de loss)
PCR é basicamente uma regressão linear nos dados transformados usando PCA.
Mas o PCA reduz as dimensões dos dados olhando apenas para os dados (as variâncias) - e pode perder muita informação de como o y varia!
PLS é uma especie de PCA que usar informação tambem sobre a variação do y ( e não so a variância do X). PLSRegression faz a regressão linear nos dados transformados usando o PLS
Nos vamos ver algo parecido em classificadores chamado linear discriminant analysis (cap 12)
Como no PCA, o numero de dimensões que ficam é um hiperparametro.
Pule as variações algorítmicas
sklearn : https://scikit-learn.org/stable/modules/generated/sklearn.cross_decomposition.PLSRegression.html?highlight=pls#sklearn.cross_decomposition.PLSRegression
Penalized models = regularized models
Uma forma de como acontece overfitting é que os valores dos coeficientes passam a ser grandes em modulo (muito positivos e muito negativos).
Para reduzir o overfiting voce pode penalizar o tamanho desses coeficientes.
Regularização L2 ou Ridge inclui um termo na otimizaçao com o quadrado dos coeficientes
min_w \sum (y_i - \hat{y}_i)^2 + \alpha \sum w_i^2
\alpha é um hiperparametro.
Pule a figura 6.15 e discussões sobre path
Regularização L1 ou LASSO minimize tambem a soma dos modulos dos coeficientes
min_w \sum (y_i - \hat{y}_i)^2 + \alpha \sum |w_i|
regularização L1 tende a zerar alguns coeficientes enquanto que L2 só deixa todos eles baixos. https://stats.stackexchange.com/questions/45643/why-l1-norm-for-sparse-models
L1 faz um tipo de feaature selection - os atributos com coeficientes 0 não são usados e “foram removidos”
Regularização L1 e essa direção de remover atributos (coeficente = 0) pode ser aplicado para PCA e PLS entre outros. LARS é um nome usado para algumas dessas aplicações de L1 em outras funcões e otimizações.
Elastic net é a combinação de tanto regularização L1 com L2.
Sklearn L1: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge
L2 https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html#sklearn.linear_model.Lasso
elastic net https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNet.html#sklearn.linear_model.ElasticNet