Prognozowanie cen domu za pomocą regresji liniowej

Prognozowanie cen domu za pomocą regresji liniowej
Jeśli kiedykolwiek dowiedziałeś się o nadzorowanym uczeniu maszynowym, musiałeś usłyszeć regresję liniową. Jest to algorytm nadzorowanego uczenia maszynowego, w którym przewidywana wydajność jest ciągła przy stałym nachyleniu. Służy do przewidywania wartości w zakresie ciągłym zamiast klasyfikowania wartości w kategoriach. Regresja liniowa służy do wykonywania różnych zadań, takich jak prognoza cen domu. Jeśli chcesz również poznać metodę, aby dowiedzieć się o prognozie cen domu, całkowicie przeczytaj nasz przewodnik. Ten przewodnik rozważa i wyjaśnia każdy czynnik, aby łatwo wykonać prognozę cen liniowych w regresji liniowej.

Co to jest regresja liniowa?

W naukach danych regresja liniowa jest nadzorowanym modelem uczenia maszynowego, który próbuje modelować liniowy związek między zmiennymi zależnymi (y) a zmiennymi niezależnymi (x). Każda oceniana obserwacja za pomocą modelu, faktyczna wartość docelowa (y) jest porównywana z przewidywaną wartością docelową (y), a główne różnice w tych wartościach nazywane są resztkami. Model regresji liniowej ma na celu zminimalizowanie sumy wszystkich kwadratowych resztek. Oto matematyczna reprezentacja regresji liniowej:

Y = a0+A1X+ ε

W powyższym równaniu:

Y = Zmienna zależna

X = Zmienna niezależna

A0 = Przechwycenie linii, która oferuje dodatkowy DOF lub stopień swobody.

A1 = Współczynnik regresji liniowej, który jest współczynnikiem skali do każdej wartości wejściowej.

ε = Losowy błąd

Pamiętaj, że wartości zmiennych x i y są szkolącymi zestawami danych dla modelu reprezentacji regresji liniowej.

Gdy użytkownik wdraża regresję liniową, algorytmy zaczynają znaleźć najlepszą linię dopasowania za pomocą A0 I A1. W taki sposób staje się bardziej dokładny dla rzeczywistych punktów danych; Ponieważ rozpoznajemy wartość A0 I A1, Możemy użyć modelu do przewidywania odpowiedzi.

  • Jak widać na powyższym schemacie, czerwone kropki są obserwowane wartości zarówno dla x, jak i y.
  • Czarna linia, zwana linią najlepszego dopasowania, minimalizuje sumę błędu kwadratowego.
  • Niebieskie linie reprezentują błędy; Jest to odległość między linią najlepiej dopasowanych i obserwowanych wartości.
  • Wartość A1to nachylenie czarnej linii.

Prosta regresja liniowa

Ten rodzaj regresji liniowej działa przy użyciu tradycyjnej formy przecięcia nachylenia, w której A i B są dwoma współczynnikami, które są opracowane „Ucz się” i znajdź dokładne prognozy. W poniższym równaniu X oznacza dane wejściowe, a Y oznacza przewidywanie.

Y = bx + a

Regresja wielowymiarowa

Regresja wielowymiarowa jest nieco bardziej złożona niż inne procedury. W poniższym równaniu 𝒘 oznacza wagi lub współczynnik, który wymaga opracowania. Wszystkie zmienne 𝑥1, 𝑥2, i 𝑥3 Atrybuty informacyjne obserwacji.

Prognozowanie cen domu za pomocą regresji liniowej

Teraz rozważmy każdy krok dla prognozy cen domu za pomocą regresji liniowej. Rozważ firmę nieruchomości z zestawami danych zawierających ceny nieruchomości określonego regionu. Cena nieruchomości opiera się na podstawowych czynnikach, takich jak sypialnie, obszary i parking. Głównie firma nieruchomości wymaga:

  • Znajdź zmienną, która wpływa na cenę domu.
  • Tworzenie modelu liniowego ilościowo związanego z ceną domu ze zmiennymi takimi jak obszary, liczba pokoi i łazienki itp.
  • Aby znaleźć dokładność modelu, oznacza to, jak dobrze zmienne mogą przewidzieć ceny domu.

Poniżej znajduje się kod skonfigurowania środowiska, a my używamy scikit-learn do przewidywania ceny domu:

importować pandy jako PD
importować Numpy jako NP
Importuj Seaorn jako SNS
importować matplotlib.Pyplot as Plt
%MATPlotlib erline
ze Sklearn.Linear_model import liniowy
ze Sklearn.Model_Selection Import Train_Test_Split, Cross_val_Score
ze Sklearn.Metryki import Mean_Squared_error

Następnie przeczytaj dane cenowe domu:

domy = PD.read_csv ("kc_house_data.CSV ”)
domy.głowa()

Oto tabela z pełnymi szczegółami (zestawem danych) różnych domów:

Teraz przeprowadzimy oczyszczanie danych i analizę eksploracyjną za pomocą poniższego kodu:

#Sprawdź dla null w danych
domy.isNull ().suma()

Zgodnie z zestawem danych nie ma żadnych zerowych:

Out [3]: id 0
Data 0
Cena 0
sypialnie 0
łazienki 0
sqft_living 0
Podłogi 0
nabrzeże 0
Zobacz 0
warunek 0
Klasa 0
sqft_basement 0
YR_BUILT 0
yr_renovated 0
kod pocztowy 0
Lat 0
długi 0
Sqft_living 15 0
Sqft_lot 15 0
DTYPE: INT64

Następnie budujemy model regresji liniowej. Przygotuj dane, które zdefiniują zmienną predyktora i odpowiedzi:

# Utwórz x i y
funkes_cols = 'sqft_living' '
x = domy [funkes_cols] # predyktor
y = domy.Cena # Odpowiedź

Możemy podzielić dane na pociąg i testować; Podziel pociągu lub testu przedstawia dwa losowo utworzone podzbiory naszych danych. Te dane testowe/pociągu są wykorzystywane do dopasowania do algorytmu uczenia się, aby mógł nauczyć się przewidywać. Zestaw testów, którego użyliśmy do uzyskania pomysłu do pracy z nowymi danymi.

# Podziel dane na pociąg i test
x_train, x_test, y_train, y_test = train_test_split (
x, y, test_size = 0.2)
# Zestaw testowy wyniesie 20% całego zestawu danych

Następnie dopasuj model na zestawie treningowym.

# instant, dopasuj
LinReg = linioweRegression ()
Linreg.fit (x_train, y_train)

Po dopasowaniu modelu musimy wydrukować wszystkie współczynniki.

wydrukuj linreg.przechwycić_
wydrukuj linreg.COEF_
-46773.65
[282.29] # dla wzrostu o 1 metr kwadratowy w rozmiarze domu,
# cena domu wzrośnie średnio o ~ 282 USD

Wartość y będzie równa0 Gdy wartość x = 0; W takim przypadku będzie to cena domu, gdy sqft_living wynosi zero. A1 Współczynnik to zmiana w y podzielonej przez zmianę wartości w x. Przyrost jednego metra kwadratowego w wielkości domu jest powiązany z przyrostem ceny 282 dolarów.

Teraz możemy przewidzieć cenę Living House o powierzchni 1000 stóp kwadratowych za pomocą następującego modelu:

# ręcznie
Cena = -46773.65 + 1000*282.29
# Korzystanie z modelu
Linreg.Przewiduj (1000)
tablica ([238175.93])

Po zakończeniu powyższej procedury oblicz błąd RMSE lub średniej kwadratowej, jest to najczęściej stosowana metryka do oceny modelu regresji w zestawie testowym:

MSE = Mean_squared_error (Y_TEST, LINREG.przewidy (x_test))
NP.SQRT (MSE)
259163.48
Linreg.wynik (x_test, y_test)
0.5543

Jak to widać, otrzymaliśmy błąd kwadratowy w średnim punkcie kwadratowym 259163.48 Po przewidywaniu cen domu. Używamy jednej funkcji w powyższym modelu; Wynik był oczekiwany. Możesz jednak ulepszyć model, dodając więcej funkcji.

Wniosek

Mamy nadzieję, że nasz szczegółowy przewodnik na temat przewidywania cen domu za pomocą regresji liniowej był dla Ciebie pomocny. Jak wspomnialiśmy wcześniej, istnieje wiele regresji liniowej, takich jak prosta regresja i regresja wielowymiarowa. Przede wszystkim użyliśmy prostej regresji, aby łatwo przewidzieć cenę domu. Możesz jednak użyć regresji wielowymiarowej, aby dokładniej przewidzieć wyniki przy użyciu różnych zmiennych. Oprócz tego użyliśmy kompletnego zestawu danych, który zawiera dokładne informacje dotyczące domów. Głównie wszystkie powyższe kody i biblioteki, których użyliśmy.