Previsione dei prezzi della casa mediante regressione lineare

Previsione dei prezzi della casa mediante regressione lineare
Se hai mai appreso dell'apprendimento automatico supervisionato, allora devi aver sentito la regressione lineare. È un algoritmo di apprendimento automatico supervisionato in cui l'output previsto è continuo con una pendenza costante. Viene utilizzato per prevedere i valori in un intervallo continuo invece di classificare i valori nelle categorie. La regressione lineare viene utilizzata per eseguire compiti diversi come la previsione dei prezzi della casa. Se vuoi anche conoscere il metodo per scoprire la previsione dei prezzi della casa, leggi completamente la nostra guida. Questa guida considera e spiega ogni fattore per eseguire facilmente la previsione dei prezzi della casa nella regressione lineare.

Cos'è la regressione lineare?

Nella scienza dei dati, la regressione lineare è un modello di apprendimento automatico supervisionato che tenta di modellare una relazione lineare tra variabili dipendenti (y) e variabili indipendenti (x). Ogni osservazione valutata con un modello, il valore effettivo di Target (Y) viene confrontato con il valore previsto del target (Y) e le principali differenze in questi valori sono chiamate residui. Il modello di regressione lineare mira a ridurre al minimo la somma di tutti i residui quadrati. Ecco la rappresentazione matematica della regressione lineare:

Y = a0+UN1X+ ε

Nell'equazione sopra:

Y = Variabile dipendente

X = Variabile indipendente

UN0 = Intercetta della linea che offre ulteriore DOF o grado di libertà.

UN1 = Coefficiente di regressione lineare, che è un fattore di scala per ogni valore di input.

ε = Errore casuale

Ricorda che i valori delle variabili X e Y sono set di dati di addestramento per la rappresentazione del modello della regressione lineare.

Quando un utente implementa una regressione lineare, gli algoritmi iniziano a trovare la linea di adattamento migliore utilizzando UN0 E UN1. In questo modo, diventa più accurato per i punti dati effettivi; Dal momento che riconosciamo il valore di UN0 E UN1, Possiamo usare un modello per prevedere la risposta.

  • Come puoi vedere nel diagramma sopra, i punti rossi sono osservati valori sia per X che per Y.
  • La linea nera, che si chiama linea di adattamento migliore, riduce al minimo una somma di un errore al quadrato.
  • Le linee blu rappresentano gli errori; è una distanza tra la linea di valori migliori e osservati.
  • Il valore del UN1è la pendenza della linea nera.

Regressione lineare semplice

Questo tipo di regressione lineare funziona utilizzando la tradizionale forma di intercettazione di pendenza in cui A e B sono due coefficienti elaborati "apprendono" e trovano le previsioni accurate. Nell'equazione seguente, X sta per i dati di input e Y sta per la previsione.

Y = bx + a

Regressione multivariabile

Una regressione multivariabile è un po 'più complessa rispetto ad altre procedure. Nell'equazione seguente, 𝒘 sta per i pesi o il coefficiente che richiede di essere elaborato. Tutte le variabili 𝑥1, 𝑥2, e 𝑥3 Attributi di informazione delle osservazioni.

Previsione dei prezzi della casa mediante regressione lineare

Ora consideriamo ogni passo per la previsione del prezzo della casa usando la regressione lineare. Prendi in considerazione una società di immobili con set di dati contenenti i prezzi della proprietà di una regione specifica. Il prezzo di una proprietà si basa su fattori essenziali come camere da letto, aree e parcheggio. Principalmente, una società immobiliare richiede:

  • Trova la variabile che influisce sul prezzo di una casa.
  • Creare un modello lineare quantitativamente correlato al prezzo della casa con variabili come aree, numero di camere e bagno, ecc.
  • Per trovare l'accuratezza di un modello, ciò significa quanto bene le variabili possano prevedere i prezzi di una casa.

Di seguito è riportato il codice per impostare l'ambiente e stiamo usando Scikit-Learn per prevedere il prezzo della casa:

Importa panda come PD
Importa Numpy come NP
Importa Seaborn come SNS
Importa matplotlib.Pyplot come Plt
%Matplotlib inline
da Sklearn.linear_model import linearregression
da Sklearn.Model_Selection Import Train_Test_Split, Cross_Val_Score
da Sklearn.Metriche Importa Mean_Squared_error

Successivamente, leggi i dati sui prezzi della casa:

case = pd.read_csv ("kc_house_data.CSV ")
case.Testa()

Ecco la tabella con i dettagli completi (set di dati) di diverse case:

Ora eseguiremo la pulizia dei dati e l'analisi esplorativa utilizzando il codice seguente:

#Check per nulls nei dati
case.è zero().somma()

Secondo il set di dati, non sono disponibili null:

Fuori [3]: id 0
Data 0
Prezzo 0
Camere da letto 0
Bagni 0
sqft_living 0
Pavimenti 0
Waterfront 0
Visualizza 0
condizione 0
Grado 0
sqft_basement 0
yr_built 0
yr_renovated 0
Codice postale 0
lat 0
lungo 0
Sqft_living 15 0
Sqft_lot 15 0
DType: int64

Dopodiché, costruiamo un modello di regressione lineare. Preparare i dati che definiranno la variabile predittore e di risposta:

# Crea x e y
caratteristica_cols = 'sqft_living'
x = case [Feature_cols] # predittore
y = case.Risposta di prezzo #

Possiamo dividere i dati nel treno e nel test; La divisione del treno o del test presenta due sottoinsiemi creati in modo casuale dei nostri dati. Questi dati di test/treno vengono utilizzati per adattarsi all'algoritmo di apprendimento in modo che possano imparare a prevedere. Il set di test che abbiamo usato per ottenere un'idea di lavorare con nuovi dati.

# Dividi i dati in treno e test
x_train, x_test, y_train, y_test = train_test_split (
x, y, test_size = 0.2)
# Il set di test sarà il 20% dell'intero set di dati

Dopodiché, inserisci il modello sul set di allenamento.

# istanzia, in forma
Linreg = linearregression ()
Linreg.fit (x_train, y_train)

Una volta adattato al modello, dobbiamo stampare tutti i coefficienti.

Stampa Linreg.intercettare_
Stampa Linreg.coef_
-46773.65
[282.29] # per un aumento di 1 metro quadrato di dimensioni della casa,
# Il prezzo della casa aumenterà di ~ $ 282, in media

Il valore di y sarà uguale a a0 quando il valore di x = 0; In questo caso, sarà il prezzo della casa quando lo sqft_living è zero. Il a1 Il coefficiente è la modifica nella y divisa cambiando il valore in x. L'incremento di un contatore mq nella dimensione della casa è associato all'incremento del prezzo di 282 dollari.

Ora possiamo prevedere il prezzo della casa vivente da 1000 piedi quadrati usando il seguente modello:

# manualmente
Prezzo = -46773.65 + 1000*282.29
# usando il modello
Linreg.prevedere (1000)
array ([238175.93])

Una volta che abbiamo fatto con la procedura di cui sopra, calcola un errore medio quadro RMSE o radice, è la metrica più comunemente usata per valutare il modello di regressione su un set di test:

MSE = Mean_Squared_error (y_test, Linreg.prevedere (x_test))
np.SQRT (MSE)
259163.48
Linreg.Punteggio (x_test, y_test)
0.5543

Così come puoi vederlo, abbiamo ottenuto un errore medio quadrato di 259163.48 Dopo aver previsto i prezzi della casa. Stiamo usando una singola funzionalità nel modello sopra; Il risultato era previsto. Tuttavia, puoi migliorare il modello aggiungendo più funzionalità.

Conclusione

Speriamo che la nostra guida dettagliata sulla previsione dei prezzi della casa usando la regressione lineare sia stata utile per te. Come abbiamo accennato in precedenza, esiste una regressione lineare multipla come la regressione semplice e la regressione multivariabile. Principalmente abbiamo usato una semplice regressione per prevedere facilmente il prezzo della casa. Tuttavia, è possibile utilizzare la regressione multivariabile per prevedere i risultati in modo più accurato utilizzando variabili diverse. A parte questo, abbiamo utilizzato un set di dati completo che ha informazioni accurate riguardanti le case. Principalmente, tutti i codici e le librerie di cui sopra non sono unici in quanto esiste una procedura specifica per eseguire la procedura di previsione della casa mediante regressione lineare.