Regressão Linear?
- Laura Damaceno de Almeida |
- Machine learning | Regressão Linear| Introdução |
- 01, Abril de 2020 | 12 mins de leitura
O termo “Regressão” surgiu em 1885 com o antropólogo, matemático e estatístico Francis Galton. As primeiras aplicações do método surgiram na Antropometria, ou seja, estudo das medidas e da matemática dos corpos humanos. Ao estudar as estaturas de pais e filhos, Galton observou que filhos de pais com altura baixa em relação à média tendem a ser mais altos que seus pais, e filhos de pais com estatura alta em relação à média tendem a ser mais baixos que seus pais, ou seja, as alturas dos seres humanos em geral tendem a regredir à média.
Regressão linear é um tipo de algoritmo supervisionado, portanto antes de entender como funciona o algoritmo é importante conhecer o que seria aprendizado supervisionado.
Conceitos importantes
Antes de prosseguir, há alguns conceitos importantes que precisam estar bem claros na sua mente.
- Variável independente ou preditora: é aquela que será passada para o modelo, tendo influência na variável que queremos encontrar. Por exemplo: Se queremos prever as vendas de sorvete, a estação do ano pode interferir nas vendas.
- Variável alvo ou dependente:é a variável que queremos prever. No exemplo acima seria as vendas de sorvete.
Aprendizado supervisionado?
O aprendizado supervisionado é aplicado quando tenta encontrar a relação entre a variável de alvo e as variáveis independentes. Uma das características mais importantes neste aprendizado é que os dados usados no treino do modelo devem ser “rotulados”, ou seja, nos dados de treino eu preciso ter os dados anotados com o valores corretos e nós sabemos do resultado de saída. Esse tipo de aprendizado é aplicado em 2 tipos de problemas: Classificação e Regressão. Um modelo de machine learning aprende os padrões dos dados e cria matematicamente uma função para gerar previsões, portanto pode-se afirmar que em algoritmos supervisionados a função para gerar os valores de resposta é:
Onde:
- f(x): é a função que o algoritmo irá criar.
- x: é a variável independente, ou seja, os atributos.
- yˆ: a saída estimada, com base na função.
Regressão Linear
Regressão linear é um algoritmo supervisionado de machine learning usado para estimar o valor de algo baseado em uma série de outros dados históricos, portanto olhando para o passado você pode “prever” o futuro.Existem 2 tipos de regressão linear: simples e a múltipla.
- Regressão linear simples: refere-se quando temos somente uma variável independente (X) para fazermos a predição.
- Regressão linear múltipla: refere-se a várias variáveis independentes (X)usadas para fazer a predição.
E com isso a forma de representação de cada regressão varia conforme o tipo, como por exemplo a representação gráfica em uma regressão linear simples é uma reta em um plano de 2 dimensões, já em uma regressão linear múltipla, sua representação é feita em um plano que pode ser nD.

Onde podemos usar regressão linear?
Esse algoritmo pode ser utilizado em qualquer problema, onde as variáveis de entrada e saída são valores contínuos. Por exemplo:
- Prever as vendas de um determinado produto
- Setor imobiliário (valor de um imóvel)
- Calcular a expectativa de vida de um país
- Calcular a pressão sanguínea de um paciente
Quando aplicar?
Esse tipo de algoritmo é aplicado quando há uma boa correlação linear (positiva ou negativa) entre os dados, ou seja, quando o relacionamento ou associação entre os dados pode ser definido com uma reta.
Mas o que é correlação?
É uma medida estatística utilizada para calcular a associação entre os pontos.
Correlação Linear de Pearson:mede a correlação linear entre a nuvem de pontos. O resultado varia entre -1 e 1:
- -1: Correlação linear perfeita negativa
- 1: Correlação linear perfeita positiva
- 0: Não tem correlação linear

O objetivo da regressão linear é encontrar uma reta que consiga definir bem os dados e minimizar a diferença entre o valor real e a saída calculada pelo modelo. A função que representa bem a regressão linear é dado a seguir:
Onde w0 (representa o ponto inicial da reta)e w1 (representa a inclinação da reta, ou seja, o quanto que essa variável cresce conforme o tempo passa) são variáveis que o algoritmo calcula para poder definir a reta, e x1 seria o atributo de entrada que foi dada ao modelo. E com esses valores ele consegue fazer as previsões.
Por exemplo, vamos supor que o algoritmo calculou o valor de w0 e w1 e definiu que seria respectivamente 0 e 10. O valor de x1 será 5.1, portanto o cálculo realizado será:
Yˆ= f(x) =0 + 10 * 5.1
Yˆ= 51
Esse cálculo será realizado para todas as previsões que serão realizadas, portanto se plotar essas previsões, chegará no seguinte gráfico:
Os pontos azuis representam os valores reais, já a reta representa a reta estimada pelo modelo. Note que no ponto circulado em vermelho é o valor real, da variável que calculamos anteriormente, e chegamos a um valor de 51, já o valor real é de mais ou menos 49, portanto há um erro no valor estimado do modelo.
Se você fizer o valor real menos o valor previsto, poderá obter o erro/ resíduo. Portanto a equação ficaria:
residuo = Y - Yˆ
No nosso caso o resíduo é -2 para esse ponto em específico.O resíduo representa a quantidade da variabilidade que Y que o modelo ajustado não consegue explicar. Os resíduos contém informação sobre o motivo do modelo não ter se ajustado bem aos dados.
Métricas de validação
SQR (Soma dos Quadrados dos Resíduos)Soma dos quadrados dos resíduos, mostra a variação de Y que não é explicada pelo modelo elaborado. É a medida da variação que não pode ser explicada.

R²
O R² é uma medida estatística de quão próximos os dados estão da linha de regressão ajustada. Ele também é conhecido como o coeficiente de determinação ou o coeficiente de determinação múltipla para a regressão múltipla.
O R² está sempre entre 0 e 1:
- 0: indica que o modelo não explica nada da variabilidade dos dados de resposta ao redor de sua média.
- 1: indica que o modelo explica toda a variabilidade dos dados de resposta ao redor de sua média.
MAE (Erro Médio absoluto)
O erro médio absoluto (MAE) é a métrica de erro de regressão mais simples de entender. Ele calcula o valor dos resíduos para cada um dos pontos e depois é tirado a média de todos esses resíduos.

MSE (Média dos erros ao quadrado)
O MSE é apenas o cálculo do erro mas elevamos ao quadrado.

Por estarmos elevando o resíduo ao quadrado, não podemos comparar ele com o valor de MAE, pois ele sempre será maior portanto faz mais sentido comparar o MSE com o valor do MSE de outro modelo.
Exemplo com python
Neste exemplo tentaremos prever a nota de matemática das pessoas que fizeram o Enem em 2016.
Essa é a carinha do dataframe:

No dataframe há 167 colunas e 13730 linhas, mas será que vamos usar todas essas colunas para prever a nota de matemática?
Após uma série de análises (que você poderá visualizar no repositório do Github), eu fui descartando algumas colunas como por exemplo: Número da inscrição, ano da prova, município de residência, Estado, etc.
Mas uma forma mais fácil de selecionar as variáveis independentes para o modelo de regressão, é calcular a correlação entre elas e a variável alvo.

E com isso podemos selecionar as seguintes variáveis: ‘NU_NOTA_CN’,’ NU_NOTA_CH’, ’NU_NOTA_LC’, ’NU_NOTA_REDACAO’.
Para criar o algoritmo de regressão linear, irei utilizar a biblioteca scikit-learn.

Neste trecho, eu instanciei o modelo de regressão linear, e declarei as variáveis que serão utilizadas. Após isso eu quebrei ambas variáveis em treino e teste, onde 30% dos dados ficou para teste e 70% ficou para treino
E para gerar o treinamento do modelo é só utilizar a função .fit( ), passando por parâmetro os dados X e Y de treino.A função .score( ) retorna o valor de R²:

Para testar o modelo é utilizado a função .predict( ), passando por parâmetro os dados X de teste.

Se lembram da equação da regressão linear?
Para pegar os valores de w0, é utilizado a função .intercept_, já os valores de w1 pode ser adquirido com a função .coef_.

Como ficaria a equação no nosso modelo?
f(NU_NOTA_CN, NU_NOTA_CH, NU_NOTA_LC, NU_NOTA_REDACAO) = -5.255134 + 0.335875 * Nota de ciências naturais -0.135485 * Nota de ciências humanas + 0.560740 * Nota de LC + 0.083826 * Nota da redação
Mas Laura porquê você selecionou as variáveis pro modelo?

Quando fazemos a seleção de features evitamos que atributos irrelevantes podem causar um efeito negativos no modelo, e além disso evitar a maldição da dimensionalidade, portanto à medida que aumenta o número de dimensões de seus dados, eles se tornam mais esparsos, o que pode dificultar a obtenção de um padrão.
Pois bem, mas vamos testar com as 15 features que a gente plotou na matriz de confusão: ‘TP_ESCOLA’,’TP_PRESENCA_CH’,’TP_PRESENCA_CN’,’TP_PRESENCA_LC’,’NU_IDADE’,’TP_ST_CONCLUSAO’, ’TP_ANO_CONCLUIU’, ‘TP_ENSINO’,’IN_TREINEIRO’,’NU_NOTA_CN’,’NU_NOTA_CH’,’NU_NOTA_LC’,’TP_STATUS_REDACAO’,’NU_NOTA_REDACAO’


Vocês perceberam que o resultado de R² é o mesmo que com a seleção de atributos que fizemos anteriormente? Olha só, com 5 features conseguimos ter o mesmo resultado ao utilizar 15 features, perceberam a diferença?
Então foi isso galera, para acessar o código utilizado neste artigo basta clicar aqui! Qualquer dúvida ou feedback podem me chamar!
Share love

Sobre a autora
Pyladie de coração e cientista de dados na IBM, apaixonada por IA e ciência de dados. Acredita que ambas tecnologias podem causar um impacto positivo na sociedade.
Veja mais