Pera, mas o que é Regressão Linear? 📈
Alerta de importância para a álgebra!
Definição
Regressão linear é um tipo de modelo de análise de dados que é utilizado para entender a relação entre duas variáveis. É chamado de "linear" porque o modelo assume que existe uma relação linear entre a variável independente (também chamada de variável explicativa ou predictor) e a variável dependente (também chamada de variável resposta ou critério).1
Dada a definição formal, voltemos à pergunta: O que é uma regressão linear?
Com minhas próprias palavras, é uma tentativa de caracterizar dados de acordo com uma função afim, y=ax+b, para conseguir prever o comportamento dos dados nos intervalos não conhecidos.
Como fazer
Dado um conjunto de dados, por exemplo, de temperatura por tempo imaginário:
| ºC | Hora |
|---|---|
| 10 | 4 |
| 12 | 5 |
| 15 | 6 |
| 16 | 7 |
| 17 | 8 |
| 20 | 9 |
| 24 | 10 |
Vamos observar a distribuição dos dados
Nota-se que a temperatura cresce com a hora, mas não linearmente. Mas e se eu quisesse saber aproximadamente qual era a temperatura às 7h30? Ou qual será a temperatura às 13h?
Podemos criar um modelo de regressão!
Para isso, vamos transformar a nossa função afim em uma função que precisa de pesos asociados à cada grau de x. y= w0*x^0 + w1*x^1.
Podemos generalizar a função de forma vetorial para um calculo computacional mais eficiente, separando um vetor de pesos W composto pelos valores w0,w1,...,wn , que nesse caso possui apenas dois elementos, e um vetor de variáveis independentes X, que são todos os graus de x. Sendo a função resultante y = X@W em que @ expressa uma operação de produto interno.
Definindo os pesos da regressão
Como estamos realizando uma previsão, há erros associados à ela. Para mensurar o nosso erro, utilizamos geralmente o Mean Squared Error, conhecido como MSE. Assim, o erro da previsão é a soma de todas as diferenças elevadas ao quadrado entre os valores reais e os valores previstos.
Ficando então:
onde:
Lé uma função custow;mé a quantidade de elementos,len(X);hwé o valor deypara um determinadoxutilizando os pesoswatuais.- o índice
ise refere a cada um dos itens do vetor, em ordem; yé o vetor de variáveis dependentes, no nosso caso, a temperatura;- a constante
1/2mtem papel de suavizador na equação.
Para encontrar os valores de w que minimizam o custo, podemos recorrer ao gradient descent2 iterativo, buscando aproximar de zero o resultado da equação vetorizada explicitada abaixo através da atualização gradativa dos pesos:
O gradient descent é uma parte importante em todo o campo de regressão e previsão, para os interessados na área, é fortemente recomendado o estudo.
Na prática, com Python
Facilitando os cálculos, utilizando o sklearn3
import numpy as np
from sklearn.linear_model import LinearRegression
y = np.array([10,12,15,16,17,20,24]).reshape(-1,1)
x = np.arange(4,11).reshape(-1,1)
reg = LinearRegression().fit(x, y)
>>>reg.predict([[7.5]])
array([[17.35714286]])
Nota-se que a previsão é plausível de acordo com a tabela!
Conclusão
Analisamos um pouco da construção por trás da regressão linear e a sua utilização com bibliotecas Python. Esse foi meu primeiro artigo de conteúdo na minha área de estudo: Machine learning e redes neurais. Me conta o que achou e como podemos melhorar! Que conteúdo nessa área gostaria de ver?
