W regresji liniowej próbujesz zbudować model, który pozwala przewidzieć wartość nowych danych, biorąc pod uwagę dane szkoleniowe użyte do uczenia modelu. Stanie się to jasne, gdy będziemy pracować nad tym postem.

Powyżej widzimy proste równanie regresji liniowej. Zmienna y jest uważana za naszą odpowiedź lub zmienną zależną. To właśnie zamierzamy przewidzieć, na przykład Sprzedaż jest popularnym wyborem.

B0 to punkt przecięcia z osią y, tj.) gdzie X=0 i linia styka się z osią y. B1X to zasadniczo nasze B1 (wielkość wpływu, jaki nasze X ma na nasze y) i nasze X, które jest naszą cechą/zmienną niezależną. W przeciwieństwie do naszej zmiennej y, można użyć wielu X z odpowiadającym im współczynnikiem beta (współczynnikiem dla każdego). To pozwala nam stworzyć model z wieloma zmiennymi cech (X) w celu przewidywania wartości w y. Składnik błędu losowego jest błędem nieredukowalnym.

Pierwszy krok: wizualizacja

Korzystając z wizualizacji, powinieneś być w stanie ocenić, które zmienne mają liniową zależność z y. Zacznij od użycia wykresu par Seaborna.

W tym przypadku jako odpowiedź/y użyliśmy słowa „Sprzedaż”. Zastąp listę zmiennych wersji beta listą przewidywanych funkcji

Dodatkowe parametry do użycia:

size= : Umożliwia manipulowanie rozmiarem renderowanego wykresu par

kind= „reg”: zostanie podjęta próba dodania linii najlepszego dopasowania i przedziału ufności 95%. Będzie dążyć do zminimalizowania sumy kwadratów błędów.

Krok drugi: nauka SK — ustawianie zmiennych

Scikit-Learn oczekuje, że X będzie macierzą cech (ramka danych Pandy), a y będzie wektorem odpowiedzi (seria Pand). Zacznijmy od oddzielenia naszych zmiennych jak poniżej.

Obsługa Twoich funkcji (X):

W tym przykładzie używamy kolumn Telewizja, Radio i Społeczności jako zmiennych predykcyjnych.

Obsługa Twojej odpowiedzi (y):

Jeśli zastanawiasz się, dlaczego duże X jest używane w przypadku funkcji, a małe y w odpowiedzi, jest to spowodowane głównie konwencją.

Krok trzeci: SK Learn — dzielenie naszych danych

Dzielenie X i Y na zbiory uczące i testujące:

Przekazując nasze zmienne X i y do metody train_test_split, jesteśmy w stanie uchwycić podziały danych, przypisując do wyniku 4 zmienne.

Krok czwarty: SK Learn — szkolenie naszego modelu

Po pierwsze, aby uzyskać dostęp do LinearRegression, wymagany jest import sklearn.linear_model. Następnie należy utworzyć instancję i dopasować model do naszych danych szkoleniowych. Widać to poniżej.

Krok piąty: interpretacja współczynników

Współczynniki pozwolą nam modelować nasze równanie za pomocą wartości naszych współczynników beta. Zmienna linreg (przypisana do obiektu LinearRegression) umożliwia wyodrębnienie wyrazu wolnego i współczynników przy użyciu poniższego kodu.

Punkt przecięcia będzie Twoją wartością B0; a każdy współczynnik będzie odpowiednią wartością Beta dla przekazanych X (w odpowiedniej kolejności).

Szósty krok: tworzenie prognoz na podstawie modelu

Dokonywanie prognoz na podstawie modelu jest tak proste, jak użycie poniższego kodu: przekazanie metodzie przewidywania danych testowych. Spowoduje to zwrócenie przewidywanych wartości y, biorąc pod uwagę nowe dane testowe X.

Siódmy krok: ocena modelu

Istnieją trzy podstawowe metryki używane do oceny modeli liniowych. Są to: średni błąd bezwzględny (MAE), błąd średniokwadratowy (MSE) lub błąd średniokwadratowy (RMSE).

MAE: Najłatwiejszy do zrozumienia. Reprezentuje średni błąd

MSE: Podobnie jak MAE, ale szum jest przesadzony, a większe błędy są „karane”. Jest trudniejszy do interpretacji niż MAE, ponieważ nie jest podany w jednostkach podstawowych, jednak ogólnie jest bardziej popularny.

RMSE: Najpopularniejsza metryka, podobna do MSE, jednak wynik jest pierwiastkowany do kwadratu, aby był łatwiejszy do interpretacji, ponieważ jest podany w jednostkach podstawowych. Zaleca się stosowanie RMSE jako podstawowego miernika do interpretacji modelu.

Poniżej możesz zobaczyć, jak obliczyć każdy wskaźnik. Wszystkie wymagają dwóch list jako parametrów, z których jedna zawiera wartości przewidywane, a druga wartości prawdziwe

Ósmy krok: wybór funkcji

Po uzyskaniu wskaźników błędu zwróć uwagę, które X mają minimalny wpływ na y. Usunięcie niektórych z tych funkcji może spowodować zwiększenie dokładności modelu.

Rozpoczynamy więc proces prób i błędów, który rozpoczyna się od nowa, aż do uzyskania zadowalającego modelu. Poniższe kroki mogą być przydatne w tej konkretnej części.

  1. Zamień feature_cols i X
  2. Train_test_split swoje dane
  3. Dopasuj model do Linreg ponownie za pomocą pliku linreg.fit
  4. Przewiduj za pomocą (y_pred = linreg.predict(X_test))
  5. Oblicz RMSE
  6. Powtarzaj, aż RMSE będzie zadowalające