Aula 01 - Regressão linear Simples
1- Introdução
Nessa aula aprenderemos o que é a regressão linear e como ela realiza a previsão de um valor, além disso, veremos um exemplo simples de como utilizar a regressão linear simples utilizando o scikit-learn.
2- O que é regressão linear?
Em estatística ou econometria, regressão linear é uma equação para se estimar a condicional (valor esperado) de uma variável y, dados os valores de algumas outras variáveis x. A regressão, em geral, tem como objectivo tratar de um valor que não se consegue estimar inicialmente.
A regressão linear é chamada "linear" porque se considera que a relação da resposta às variáveis é uma função linear de alguns parâmetros. Os modelos de regressão que não são uma função linear dos parâmetros se chamam modelos de regressão não-linear. Sendo uma das primeiras formas de análise regressiva a ser estudada rigorosamente, e usada extensamente em aplicações práticas. Isso acontece porque modelos que dependem de forma linear dos seus parâmetros desconhecidos, são mais fáceis de ajustar que os modelos não-lineares aos seus parâmetros, e porque as propriedades estatísticas dos estimadores resultantes são fáceis de determinar.
Modelos de regressão linear são frequentemente ajustados usando a abordagem dos mínimos quadrados, mas que também pode ser montada de outras maneiras, tal como minimizando a "falta de ajuste" em alguma outra norma (com menos desvios absolutos de regressão), ou através da minimização de uma penalização da versão dos mínimos quadrados. Por outro lado, a abordagem de mínimos quadrados pode ser utilizado para ajustar a modelos que não são modelos lineares. Assim, embora os termos "mínimos quadrados" e "modelo linear" estejam intimamente ligados, eles não são sinônimos.
3- Implementando um exemplo em Python
O primeiro passo para implementar a regressão linear é entender que esse tipo de aprendizado vai retornar um valor aproximado de uma variável que segue uma linearidade. Por exemplo, preços de planos de saúde conforme idade.
Para o nosso exemplo utilizaremos a base de dados de preços de casas e consideraremos dessa base apenas o preço delas e o tamanho.
O primeiro passo é importar as bibliotecas necessárias:
import pandas as pd
O segundo passo é pegar os dados na base de dados e dividi-los em base de teste e base de treinamento.
base = pd.read_csv('house-prices.csv') # pega os valores das casas e a metragem X = base.iloc[:, 5:6].values y = base.iloc[:, 2].values # divide o dataset em test e treinamento from sklearn.model_selection import train_test_split X_treinamento, X_teste, y_treinamento, y_teste = train_test_split(X, y, test_size = 0.3, random_state = 0)
A seguir, realizamos o treinamento:
from sklearn.linear_model import LinearRegression regressor = LinearRegression() regressor.fit(X_treinamento, y_treinamento) score = regressor.score(X_treinamento, y_treinamento)
A partir desse ponto podemos utilizar nosso objeto para criar uma visualização:
import matplotlib.pyplot as plt
#Coloca os pontos em um gráfico de scatter plt.scatter(X_treinamento, y_treinamento)
# cria a reta da regressão linear plt.plot(X_treinamento, regressor.predict(X_treinamento), color = 'red')
# realiza previsões previsoes = regressor.predict(X_teste) resultado = abs(y_teste - previsoes) resultado.mean() from sklearn.metrics import mean_absolute_error, mean_squared_error mae = mean_absolute_error(y_teste, previsoes) mse = mean_squared_error(y_teste, previsoes) plt.scatter(X_teste, y_teste) plt.plot(X_teste, regressor.predict(X_teste), color = 'red') regressor.score(X_teste, y_teste) plt.show()
Post a Comment