Previsão de preços da casa usando regressão linear

Previsão de preços da casa usando regressão linear
Se você já aprendeu sobre o aprendizado de máquina supervisionado, deve ter ouvido regressão linear. É um algoritmo de aprendizado de máquina supervisionado, no qual a saída prevista é contínua com uma inclinação constante. É usado para prever os valores em um intervalo contínuo, em vez de classificar os valores nas categorias. A regressão linear é usada para executar diferentes tarefas, como previsão de preços da casa. Se você também deseja saber o método para descobrir a previsão de preços da casa, leia nosso guia completamente. Este guia considera e explica todos os fatores para executar a previsão do preço da casa em regressão linear facilmente.

O que é regressão linear?

Na ciência dos dados, a regressão linear é um modelo de aprendizado de máquina supervisionado que tenta modelar uma relação linear entre variáveis ​​dependentes (y) e variáveis ​​independentes (x). Toda observação avaliada com um modelo, o valor real do alvo (Y) é comparado ao valor previsto do alvo (Y), e as principais diferenças nesses valores são chamadas de resíduos. O modelo de regressão linear visa minimizar a soma de todos os resíduos quadrados. Aqui está a representação matemática da regressão linear:

Y = a0+a1X+ ε

Na equação acima:

Y = Variável dependente

X = Variável independente

a0 = Interceptação da linha que oferece DOF adicional ou grau de liberdade.

a1 = Coeficiente de regressão linear, que é um fator de escala para cada valor de entrada.

ε = Erro aleatório

Lembre -se de que os valores das variáveis ​​x e y são conjuntos de dados para a representação do modelo de regressão linear.

Quando um usuário implementa uma regressão linear, os algoritmos começam a encontrar a melhor linha de ajuste usando a0 e a1. Dessa forma, torna -se mais preciso para pontos de dados reais; já que reconhecemos o valor de a0 e a1, Podemos usar um modelo para prever a resposta.

  • Como você pode ver no diagrama acima, os pontos vermelhos são observados valores para x e y.
  • A linha preta, que é chamada de linha de melhor ajuste, minimiza uma soma de um erro ao quadrado.
  • As linhas azuis representam os erros; É uma distância entre a linha de melhor ajuste e valores observados.
  • O valor do a1é a inclinação da linha negra.

Regressão linear simples

Esse tipo de regressão linear funciona usando a forma de interceptação de inclinação tradicional na qual A e B são dois coeficientes que são elaborados "Aprenda" e encontram as previsões precisas. Na equação abaixo, X significa dados de entrada e Y significa previsão.

Y = bx + a

Regressão multivariável

Uma regressão multivariável é um pouco mais complexa do que outros procedimentos. Na equação abaixo, 𝒘 significa os pesos ou coeficiente que exige ser elaborado. Todas as variáveis ​​𝑥1, 𝑥2, e 𝑥3 Atributos da informação das observações.

Previsão de preços da casa usando regressão linear

Agora vamos considerar cada passo para a previsão de preços da casa usando regressão linear. Considere uma empresa de imóveis com conjuntos de dados contendo os preços dos imóveis de uma região específica. O preço de uma propriedade é baseado em fatores essenciais, como quartos, áreas e estacionamento. Principalmente, uma empresa imobiliária exige:

  • Encontre a variável que afeta o preço de uma casa.
  • Criando um modelo linear quantitativamente relacionado ao preço da casa com variáveis ​​como áreas, número de salas e banheiro, etc.
  • Para encontrar a precisão de um modelo, isso significa quão bem as variáveis ​​podem prever os preços de uma casa.

Abaixo está o código para configurar o ambiente e estamos usando o Scikit-Learn para prever o preço da casa:

importar pandas como PD
importar numpy como np
Importar Seaborn como SNS
importar matplotlib.pyplot como plt
%Matplotlib em linha
de Sklearn.Linear_model Importar linear -regressão
de Sklearn.Model_selection Importar Train_test_split, Cross_Val_Score
de Sklearn.métricas importantes mean_squared_error

Depois disso, leia os dados dos preços da casa:

Casas = Pd.read_csv ("kc_house_data.CSV ")
casas.cabeça()

Aqui está a tabela com os detalhes completos (conjunto de dados) de diferentes casas:

Agora, realizaremos a limpeza de dados e a análise exploratória usando o código abaixo:

#cuar para nulos nos dados
casas.é nulo().soma()

De acordo com o conjunto de dados, não há nulos disponíveis:

Out [3]: id 0
data 0
Preço 0
quartos 0
banheiros 0
sqft_living 0
pisos 0
Waterfront 0
Visualizar 0
condição 0
Grau 0
sqft_basement 0
yr_built 0
yr_renovado 0
Código ZIP 0
Lat 0
Long 0
Sqft_living 15 0
Sqft_lot 15 0
DTYPE: INT64

Depois disso, construímos um modelo de regressão linear. Prepare os dados que definirão a variável preditora e resposta:

# Crie x e y
rastreio_cols = 'sqft_living'
x = casas [características_cols] # Predictor
y = casas.Resposta de preço #

Podemos dividir dados no trem e no teste; O Split de trem ou teste apresenta dois subconjuntos criados aleatoriamente de nossos dados. Esses dados de teste/trem são usados ​​para se ajustar ao algoritmo de aprendizado, para que ele possa aprender a prever. O conjunto de testes que usamos para obter uma idéia de trabalhar o modelo com novos dados.

# dividir dados em trem e teste
x_train, x_test, y_train, y_test = trens_test_split (
x, y, test_size = 0.2)
# O conjunto de testes será de 20% de todo o conjunto de dados

Depois disso, encaixe o modelo no conjunto de treinamento.

# instanciado, ajuste
Linreg = LinearRegression ()
Linreg.ajuste (x_train, y_train)

Uma vez que nos encaixamos no modelo, temos que imprimir todos os coeficientes.

Imprima Linreg.interceptar_
Imprima Linreg.coef_
-46773.65
[282.29] # para um aumento de 1 metro quadrado no tamanho da casa,
# O preço da casa aumentará em ~ US $ 282, em média

O valor de y será igual a um0 quando o valor de x = 0; Nesse caso, será o preço da casa quando o sqft_living for zero. O a1 Coeficiente é a mudança no Y dividido alterando o valor em x. O incremento de um metro sq no tamanho da casa está associado ao incremento de preços de 282 dólares.

Agora, podemos prever o preço da casa de 1000 pés quadrados usando o seguinte modelo:

# manualmente
Preço = -46773.65 + 1000*282.29
# usando o modelo
Linreg.prever (1000)
Array ([238175.93])

Depois de fazer o procedimento acima, calcular um erro quadrado RMSE ou raiz, é a métrica mais usada para avaliar o modelo de regressão em um conjunto de testes:

mse = mean_squared_error (y_test, linreg.prever (x_test))
NP.SQRT (MSE)
259163.48
Linreg.pontuação (x_test, y_test)
0.5543

Então, como você pode ver, temos um erro médio de raiz de 259163.48 Depois de prever os preços da casa. Estamos usando um único recurso no modelo acima; O resultado era esperado. No entanto, você pode melhorar o modelo adicionando mais recursos.

Conclusão

Esperamos que nosso guia detalhado sobre a previsão de preços da casa usando regressão linear tenha sido útil. Como mencionamos anteriormente, há regressão linear múltipla, como regressão simples e regressão multivariável. Principalmente, usamos regressão simples para prever o preço da casa facilmente. No entanto, você pode usar a regressão multivariável para prever os resultados com mais precisão usando variáveis ​​diferentes. Além disso, usamos um conjunto de dados completo com informações precisas sobre as casas. Principalmente, todos os códigos e bibliotecas acima que usamos não são únicos, pois existe um procedimento específico para realizar o procedimento de previsão da casa por regressão linear.