Regressão Linear e Machine Learning
A regressão linear é um conceito fundamental em machine learning. Especificamente, ela é uma técnica de aprendizagem supervisionada.
A ideia central da regressão linear é simples. Seu algoritmo descobre uma relação linear entre características (variáveis independentes, também chamadas como atributos) e uma variável alvo (variável dependente). Um problema clássico de regressão linear é a predição do preço de imóveis. Suponha que você tenha dados sobre o número de cômodos de casas (atributos) e preço das casas (variável alvo). A regressão linear pode ajudar na descoberta da tendência geral: à medida que o número de cômodos de uma casa aumenta, o preço da casa tende a subir também (ou vice-versa). Além disso, a regressão linear também indica como expressar essa tendência matematicamente como uma equação da reta.
A regressão linear pode lidar com problemas com apenas um recurso e uma variável alvo ou com cenários com vários recursos e uma variável alvo. Nesse último caso, ela essencialmente define um plano dimensional superior aos dados.
Regressão Linear na Prática
A forma mais eficiente de implementar regressão linear é com a biblioteca scikit-learn. No exemplo abaixo, definimos dados ilustrativos sobre a idade de carros e suas velocidades registradas num radar. O objetivo do algoritmo de regressão linear nesse exemplo é prever a velocidade de carros de idades que o modelo não viu a partir da relação que ele deverá aprender.
import matplotlib.pyplot as plt
from sklearn import linear_model
# Dados de exemplo, idade de carros em anos e velocidade medida num radar
anos = [5,7,8,7,2,17,2,9,4,11,12,9,6]
velocidade = [99,86,87,88,111,86,103,87,94,78,77,85,86]
Em seguida, iniciamos um objeto do scikit-learn para executar a regressão linear em si.
# Cria um objeto de regressão linear
reg = linear_model.LinearRegression()
Como qualquer modelo de machine learning, o uso da regressão linear envolve uma fase de treino e uma fase de teste e predição. Com scikit-learn, o treino é definido assim:
# Treina o modelo
reg.fit(X=[[ano] for ano in anos], y=velocidade)
Depois, testamos o resultado do modelo para uma idade de carro que ele não viu durante o treinamento.
# Realiza predições
pred = reg.predict(X=[[13]]) # Preve velocidade de um carro de 13 anos
Esse é o resultado:
print("Velocidade prevista para um carro de 13 anos:", pred[0])
# resultado: Velocidade prevista para um carro de 13 anos: 80.3392200147167
Por fim, plotamos os dados junto à reta encontrada pelo modelo.
plt.scatter(anos, velocidade, color="blue")
plt.plot(anos, reg.predict(X=[[ano] for ano in anos]), color="red")
plt.xlabel("Idade do Carro")
plt.ylabel("Velocidade")
plt.title("Velocidade vs Idade do Carro")
plt.show()
E com isso concluímos um exemplo de modelo de machine learning super fácil.
Veja também:
O que é machine learning (aprendizado de máquina)?
Como machine learning (aprendizado de máquina) funciona?
Como machine learning (aprendizado de máquina) aprende?
Como implementar um modelo de machine learning?
Como escolher um bom modelo de machine learning?
Classificação e regressão em machine learning
O que é conjunto de dados (dataset) em machine learning?
Onde conseguir conjuntos de dados para machine learning?
Salve localmente conjuntos de dados para machine learning
Pré-processamento de dados em machine learning
Regressão Linear e Machine Learning
Conjuntos de treinamento e teste em machine learning
Função de perda em machine learning
Scikit-learn para machine learning
Matrizes de Confusão em Machine Learning
Floresta aleatória com Scikit-learn
Detecção de anomalias com Isolation Forest
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.