Husprissprediksjon ved bruk av lineær regresjon

Husprissprediksjon ved bruk av lineær regresjon
Hvis du noen gang har lært om overvåket maskinlæring, må du ha hørt lineær regresjon. Det er en algoritme av overvåket maskinlæring der den forutsagte utgangen er kontinuerlig med en konstant skråning. Det brukes til å forutsi verdiene i et kontinuerlig område i stedet for å klassifisere verdiene i kategoriene. Lineær regresjon brukes til å utføre forskjellige oppgaver som prediksjon. Hvis du også vil vite metoden for å finne ut prediksjonen. Denne guiden vurderer og forklarer enhver faktor for å utføre husprissprediksjonen i lineær regresjon enkelt.

Hva er lineær regresjon?

I datavitenskap er lineær regresjon en overvåket maskinlæringsmodell som prøver å modellere et lineært forhold mellom avhengige variabler (Y) og uavhengige variabler (x). Hver evaluert observasjon med en modell, blir målet (y) 's faktiske verdi sammenlignet med målet (y)' s forutsagte verdi, og de største forskjellene i disse verdiene kalles rester. Den lineære regresjonsmodellen tar sikte på å minimere summen av alle kvadratiske rester. Her er den matematiske representasjonen av den lineære regresjonen:

Y = a0+en1X+ ε

I ligningen ovenfor:

Y = Avhengig variabel

X = Uavhengig variabel

en0 = Avskjæring av linjen som tilbyr ekstra DOF eller frihetsgrad.

en1 = Lineær regresjonskoeffisient, som er en skalafaktor for hver inngangsverdi.

ε = Tilfeldig feil

Husk at verdiene til x- og y -variabler er treningsdatasett for modellrepresentasjonen av lineær regresjon.

Når en bruker implementerer en lineær regresjon, begynner algoritmer å finne den beste passformlinjen ved hjelp av en0 og en1. På en slik måte blir det mer nøyaktig for faktiske datapunkter; Siden vi anerkjenner verdien av en0 og en1, Vi kan bruke en modell for å forutsi responsen.

  • Som du kan se i diagrammet ovenfor, blir de røde prikkene observert verdier for både x og y.
  • Den svarte linjen, som kalles en linje med best passform, minimerer en sum av en kvadratfeil.
  • De blå linjene representerer feilene; Det er en avstand mellom linjen med best passform og observerte verdier.
  • Verdien av en1er skråningen på den svarte linjen.

Enkel lineær regresjon

Denne typen lineær regresjon fungerer ved å bruke den tradisjonelle helling-avskjæringsformen der A og B er to koeffisienter som er utdypet “lære” og finner de nøyaktige spådommene. I ligningen nedenfor står X for inputdata, og Y står for prediksjon.

Y = bx + a

Multivariabel regresjon

En multivariabel regresjon er litt mer kompleks enn andre prosedyrer. I ligningen nedenfor står 𝒘 for vektene eller koeffisienten som krever å bli utdypet. Alle variabler 𝑥1, 𝑥2, og 𝑥3 Informasjonsattributter for observasjonene.

Husprissprediksjon ved bruk av lineær regresjon

La oss nå vurdere hvert trinn for husprissprediksjonen ved hjelp av lineær regresjon. Vurder et selskap med eiendommer med datasett som inneholder eiendomsprisene i en bestemt region. Prisen på en eiendom er basert på viktige faktorer som soverom, områder og parkering. Hovedsakelig krever et eiendomsselskap:

  • Finn variabelen som påvirker prisen på et hus.
  • Opprette en lineær modell kvantitativt relatert til husprisen med variabler som områder, antall rom og bad osv.
  • For å finne nøyaktigheten til en modell, betyr det hvor godt variablene kan forutsi prisene på et hus.

Nedenfor er koden for å sette opp miljøet, og vi bruker Scikit-Learn for å forutsi husprisen:

Importer pandaer som PD
Importer numpy som NP
Importer sjøborn som SNS
Importer matplotlib.Pyplot som Plt
%matplotlib inline
Fra Sklearn.linear_model import linearregresjon
Fra Sklearn.modell_seleksjon import tog_test_split, cross_val_score
Fra Sklearn.Metrics Importer Mean_squared_error

Etter det, les prisens data fra huset:

hus = PD.read_csv ("kc_house_data.CSV ")
hus.hode()

Her er tabellen med de komplette detaljene (datasettet) med forskjellige hus:

Nå vil vi utføre datarensing og den undersøkende analysen ved å bruke koden nedenfor:

#sjekk for null i dataene
hus.isNull ().sum()

I følge datasettet er det ikke null tilgjengelig:

Ut [3]: id 0
Dato 0
Pris 0
soverom 0
Bad 0
SQFT_LIVING 0
Gulv 0
vannkanten 0
Vis 0
tilstand 0
Grad 0
SQFT_BASEMENT 0
yr_built 0
yr_renovated 0
postnummer 0
Lat 0
lang 0
SQFT_LIVING 15 0
SQFT_LOT 15 0
DTTYPE: INT64

Etter det bygger vi en lineær regresjonsmodell. Utarbeide dataene som vil definere prediktor og responsvariabel:

# Opprett x og y
Feature_cols = 'sqft_living'
x = hus [funksjon_cols] # prediktor
y = hus.Pris # svar

Vi kan dele data i toget og teste; Toget eller testdelingen presenterer to tilfeldig opprettet undergrupper av våre data. Disse test-/togdataene brukes til å passe til læringsalgoritmen slik at de kan lære å forutsi. Testsettet vi har brukt for å få en ide om å jobbe modellen med nye data.

# Del data i tog og test
x_train, x_test, y_train, y_test = tog_test_split (
x, y, test_størrelse = 0.2)
# Testsettet vil være 20% av hele datasettet

Pass etter det modellen etter treningssettet.

# Instantiate, Fit
LinReg = LinearRegression ()
Linreg.Fit (X_Train, Y_Train)

Når vi passer til modellen, må vi skrive ut alle koeffisienter.

Skriv ut Linreg.avskjære_
Skriv ut Linreg.Coef_
-46773.65
[282.29] # for en økning på 1 kvadratmeter i husstørrelse,
# Husprisen vil øke med ~ $ 282, i gjennomsnitt

Verdien av y vil være lik en0 når verdien av x = 0; I dette tilfellet vil det være husets pris når sqft_living er null. A-en1 Koeffisient er endringen i y delt ved å endre verdien i x. Økningen av en kvadratmeter i størrelsen på huset er forbundet med prisøkningen på 282 dollar.

Nå kan vi forutsi prisen på 1000 kvadratmeter ved å bruke følgende modell:

# manuelt
Pris = -46773.65 + 1000*282.29
# Bruke modellen
Linreg.forutsi (1000)
Array ([238175.93])

Når vi har gjort med prosedyren ovenfor, beregner du en RMSE- eller rotmidler som er kvadratiske feil, er det den mest brukte metrikken for å evaluere regresjonsmodellen på et testsett:

mse = mean_squared_error (y_test, linrege.forutsi (x_test))
np.SQRT (MSE)
259163.48
Linreg.poengsum (x_test, y_test)
0.5543

Så som du kan se det, fikk vi en root mean kvadratfeil på 259163.48 Etter å ha forutsagt husets priser. Vi bruker en enkelt funksjon i modellen ovenfor; Resultatet ble forventet. Du kan imidlertid forbedre modellen ved å legge til flere funksjoner.

Konklusjon

Vi håper vår detaljerte guide om prediksjon for boligpris ved bruk av lineær regresjon var nyttig for deg. Som vi har nevnt tidligere, er det flere lineær regresjon som enkel regresjon og multivariabel regresjon. Primært har vi brukt enkel regresjon for å forutsi husets pris lett. Du kan imidlertid bruke multivariabel regresjon for å forutsi resultatene mer nøyaktig ved bruk av forskjellige variabler. Bortsett fra det, har vi brukt et komplett datasett som har nøyaktig informasjon om husene. Hovedsakelig er alle ovennevnte koder og biblioteker vi har brukt ikke unike, da det er en spesifikk prosedyre for å utføre husets prediksjonsprosedyre ved lineær regresjon.