Modelowanie nauki o danych: Jak używać regresji liniowej w Pythonie

Spójrz na R², Mean Squared Error i wiele innych

Brian Henriquez, Chris Kazakis i Dean Sublett

Zdjęcie autorstwa twórców kampanii na Unsplash

Wprowadzenie i cele

Regresja liniowa jest szeroko stosowaną techniką w nauce o danych ze względu na względną prostotę implementacji i interpretacji modelu regresji liniowej.

W tym samouczku omówimy proste i wielokrotne modele regresji liniowej zestawu danych 80 zbóż za pomocą Pythona i omówimy kilka istotnych wskaźników regresji, ale nie zakładamy wcześniejszego doświadczenia z regresją liniową w Pythonie. Zestaw danych 80 zbóż można znaleźć tutaj.

Oto kilka celów:

  • Zrozum znaczenie i ograniczenia R²
  • Dowiedz się o wskaźnikach oceny regresji liniowej i o tym, kiedy z nich korzystać
  • Zaimplementuj prosty i wielokrotny model regresji liniowej z zestawem danych 80 zbóż

Eksploracja danych

Po pobraniu zestawu danych zaimportuj niezbędne pakiety Python i sam zestaw danych zbóż:

Dane wyjściowe z cereal.head ()

Widzimy tutaj, że każdy rząd jest marką zbóż, a każda kolumna jest wartością odżywczą (białko, tłuszcz itp.) Lub cechą identyfikującą (producent, rodzaj) zbóż. Zauważ, że ocena jest odpowiedzią lub zmienną zależną.

Następnie stworzyliśmy wykres par korelacji między każdą cechą zestawu danych i na podstawie tej wizualizacji wybraliśmy trzy zmienne predykcyjne: kalorie, błonnik i cukry. Wykres pokazujący każdą korelację jest zbyt duży, aby go tu udostępnić, ale możemy przyjrzeć się bliżej wykresem z mniejszymi parami, który zawiera tylko nasze zmienne predykcyjne. Używając seaborn.pairplot, możemy zobaczyć trzy wykresy rozrzutu z dopasowanymi liniami najmniejszych kwadratów:

Paruje wykres każdej zmiennej predykcyjnej ze zmienną odpowiedzi

Teraz, gdy jesteśmy bardziej zaznajomieni z danymi, możemy zacząć konfigurować nasze modele regresji liniowej.

Uwaga: W celu łatwego przekazania pojęć nie obliczamy R² i dostosowujemy wartości R² za pomocą podziału danych test / pociąg. Należy jednak pamiętać, że najlepszym rozwiązaniem jest zastosowanie podziału test / pociąg losowo wybranych obserwacji i w ten sposób prezentujemy nasze błędy i AIC / BIC pod koniec samouczka.

Model regresji liniowej

Chcemy omówić R² i jego znaczenie dla modeli regresji liniowej. Aby jednak dokładnie zrozumieć, czym jest R², najpierw musimy zrozumieć, czym jest model liniowy. Spójrzmy na wykres punktowy porównujący kalorie w porcji płatków i ich ocenę:

Wykres punktowy oceny i kalorii

Widzimy wyraźnie, że porcje płatków z większą ilością kalorii zazwyczaj otrzymują gorsze recenzje. Jeśli założymy, że istnieje jakaś zależność między tymi dwiema zmiennymi, możemy zbudować model, który przewiduje ocenę zbóż na podstawie liczby kalorii.

Aby sprawdzić, czy relacja jest faktycznie liniowa, możemy wykreślić resztki naszego modelu na wykresie i poszukać wzorców. Wyraźny wzór w resztce może sugerować, że inny model, taki jak kwadratowy lub logarytmiczny, może lepiej opisać związek między dwiema zmiennymi. Sprawdźmy pozostałości:

Resztki nie mają wyraźnego wzoru, więc nie ma dowodów na istnienie lepiej dopasowanego, nieliniowego równania.

W przypadku regresji liniowej będziemy zainteresowani formułą:

x jest zmienną predykcyjną dla zmiennej odpowiedzi y

Aby stworzyć model, możemy użyć metody scipy linregress.

I otrzymujemy następujące dane wyjściowe:

  • LinregressResult (nachylenie = -0,49701318979564285, przechwytywanie = 95,78802384439143, wartość = -0,6893760311652586, wartość = 4.1402774000064275e-12, stderr = 0,06030617024600228)

Pierwszy element to b_1, drugi to b_0, a trzecia wartość to wartość R, znana również jako współczynnik korelacji. Wartość R wynosi od 1 do -1 i mierzy siłę związku między zmiennymi objaśniającymi a zmienną odpowiedzi. Wartość R dla kalorii w porównaniu do oceny wynosi -.689, co pokazuje, że istnieje silna ujemna zależność między dwiema zmiennymi. Im dalej wartość R wynosi od 0, tym lepiej model potrafi przewidywać wartości.

Przez podniesienie do kwadratu R otrzymujemy współczynnik determinacji, R². R2 jest wartością, która reprezentuje jaki procent zmiany w zmiennej y można wytłumaczyć zmianą w zmiennej x. Wysoka wartość R² wskazuje na silniejszy model. Spójrzmy na niektóre wartości R² w naszym zestawie danych:

Drukujemy następujące:

  • R2 modelu z predyktorem pucharu: 0,0412740112014871
  • R² modelu z predyktorem kalorii: 0,4752393123451636

Te wartości R² wskazują nam, że kalorie są lepszym predyktorem oceny niż kubki.

Prosta regresja liniowa jest przydatna, ale często chcemy zobaczyć, w jaki sposób można zastosować kilka zmiennych do przewidywania jednej zmiennej. Zdobądźmy dwuwymiarowy układ predyktorów ze zbóż, biorąc z niego wycinek ze wszystkimi naszymi zmiennymi zainteresowania. kalorie, błonnik i cukier wydawały się być dobrymi predyktorami, kiedy wcześniej sprawdziliśmy wykres par korelacji, więc spójrzmy na model wykorzystujący te trzy:

Otrzymujemy następujące dane wyjściowe:

  • R²: 0,8483669504178866
  • Skorygowano R²: 0,8070124823500374

Stwierdziliśmy, że wartość R² wzrosła z 0,475 w modelu z jedną zmienną (z kaloriami jako predyktorem) do 0,848. To wydaje się wskazywać, że moc predykcyjna naszego modelu wzrosła.

Dodajmy jednak słaby predyktor, kubki, do tego modelu wielokrotnej regresji liniowej i zobaczmy, co się stanie:

Ten kod daje następujące dane wyjściowe:

  • R²: 0,8490487016343364
  • Skorygowane R²: 0,788668182288071

Przypomnijmy, że liczba filiżanek na porcję zbóż wydawała się prawie nie korelować z oceną konsumentów w przypadku pojedynczej zmiennej. Ale kiedy dodamy go do modelu, całkowity R² wzrośnie do 0,849, co sugeruje, że moc predykcyjna modelu uległa poprawie. Jednak na podstawie tego, co wiemy, ten model czterech zmiennych nie powinien być lepszy niż model trzech zmiennych. Dzięki obliczeniu wartości R² dodanie większej liczby zmiennych do modelu zawsze zwiększy wartość R². Musimy więc porównać skorygowane wartości R², co łagodzi wzrost R² z powodu dodatkowych zmiennych. Wzór na skorygowany R² to

N-całkowita wielkość próby, liczba p predyktorów

Korzystając z tego, stwierdzamy, że model z trzema zmiennymi ma skorygowany R² wynoszący 0,807, podczas gdy model z czterema zmiennymi ma skorygowany R² wynoszący 0,788. Dlatego model trzech zmiennych jest lepszy dzięki tej metodzie.

R2 jest jedną z najważniejszych miar służących do oceny, jak dobrze model liniowy pasuje do danych, dlatego ważne jest, aby intuicyjnie rozumieć, co to znaczy. Znajomość ograniczeń R² i sposobów ograniczenia tych ograniczeń jest równie ważna przy wdrażaniu modeli regresji liniowej.

Mean Squared Error (MSE)

Modele regresji mają wiele różnych wskaźników oceny. Jednym z najpopularniejszych wskaźników i tego, co omówimy w pierwszej kolejności, jest średni błąd kwadratu (MSE).

Źródło

MSE jest miarą oceny, która mierzy średnią kwadratowych różnic między zaobserwowanymi a przewidywanymi wartościami. Innymi słowy, MSE mówi nam, jak dokładny lub niedokładny jest nasz model regresji liniowej - im niższy MSE, tym „lepszy” model w przewidywaniu wartości. Znajdźmy MSE naszego modelu regresji:

Nasza zmienna mse zwraca wartość 26,6329.

Inną dostępną miarą oceny jest błąd pierwiastkowy kwadratowy (RMSE), który jest po prostu pierwiastkiem kwadratowym naszego MSE. Korzystając z funkcji pierwiastka kwadratowego z modułu matematycznego Python, sqrt (mse) zwraca wartość 5.1607.

Należy zauważyć, że nasza wartość RMSE ma te same jednostki co zmienna odpowiedzi (wzięliśmy pierwiastek kwadratowy z kwadratów błędów). Nasza wartość RMSE wynosząca 5.1607 spada stosunkowo nisko w przedziale 0–100 zmiennej oceny, więc nasz model wielokrotnej regresji liniowej jest „dobry” w przewidywaniu oceny marki zbóż. Są jednak inne błędy, których możemy użyć.

Średni błąd bezwzględny (MAE)

Kolejną miarą oceny regresji, którą rozważymy, jest średni błąd bezwzględny (MAE).

Źródło

Ponieważ MSE wylicza różnicę reszt, większe dysproporcje między rzeczywistymi a przewidywanymi wartościami są „surowo karane” przez MSE niż przez MAE. Z powodu kwadratowych warunków MSE jest bardziej wrażliwy na wartości odstające niż MAE.

Gdybyśmy zdecydowali, że wartości odstające w naszym zbiorze danych nie są znaczące w analizie danych, możemy zwrócić się do MAE przed MSE, ponieważ reszty wartości odstających nie byłyby wyolbrzymione w stosunku do kwadratu reszt. Znajdźmy MAE:

Nasza zmienna mae zwraca 3,6153. Nasz MAE jest stosunkowo mały, biorąc pod uwagę zakres oceny 0–100, więc nasz MAE wskazuje, że nasz model jest dość dokładny w swoich prognozach.

Średni bezwzględny błąd procentowy (MAPE)

Ostateczną miarą oceny regresji, którą rozważymy, jest średni bezwzględny błąd procentowy (MAPE).

Źródło

MAPE podaje dokładność modeli predykcyjnych w procentach. Zwróć uwagę na podobieństwo we wzorach MAE i MAPE. Podobnie jak MAE, MAPE nie ma dużego wpływu na wartości odstające. Jednak należy używać MAPE ostrożnie, ponieważ

  • MAPE jest podatny na dzielenie przez błędy zerowe (patrz mianownik w podsumowaniu);
  • MAPE może urosnąć bardzo duże, jeśli rzeczywiste wartości są bardzo małe (ponownie, patrz operacja dzielenia w podsumowaniu);
  • MAPE jest nastawiony na przewidywania, które są mniejsze niż obserwowane wartości.

Znajdźmy MAPE dla naszego modelu:

Nasza funkcja MAPE zwraca następujący procent: 8,458%. Nasza prognoza jest więc „wyłączona” średnio o około 8,5%.

AIC i BIC

AIC (Akaike Information Criterion) i BIC (Bayesian Information Criterion) to obiektywne metody oceny modeli regresji i określenia najlepszego podzbioru predyktorów (który model lepiej pasuje).

Gdy dodasz parametry do swojego modelu, zawsze będzie on pasował trochę lepiej. Ale wtedy istnieje ryzyko utraty informacji na temat prawdziwego podstawowego wzoru. W związku z tym istnieje kompromis między liczbą parametrów a ilością błędów, które uwzględnia Twój model. AIC i BIC oceniają zdolność modeli do uwzględnienia dodatkowej zmienności przewidywanej zmiennej, ale bez nadmiernego dopasowania modelu.

AIC

AIC pozwala oszacować ilość informacji utraconych w twoich modelach, dzięki czemu możesz porównać, które modele działają najlepiej i wybrać bardziej odpowiedni podzbiór predyktorów. Mówiąc dokładniej, wartość AIC uwzględnia względną odległość między funkcją prawdziwego prawdopodobieństwa danych a dopasowaną funkcją wiarygodności twojego modelu. Im mniejsza jest ta odległość, tym model jest bliższy prawdziwej reprezentacji danych. AIC jest oznaczony tą formułą:

Liczba N obserwacji, liczba K parametrów dopasowania + 1

Jeśli porównamy dopasowanie dwóch modeli przy użyciu metody AIC, model o niższej wartości AIC będzie lepiej dopasowany.

Znajdźmy wartości AIC naszych dwóch modeli regresji wielokrotnej, których używaliśmy wcześniej. Jeden ma trzy predyktory, a drugi cztery. Najpierw zdefiniujemy wartości, które podłączymy do formuły, a następnie uruchomimy formułę:

Daje to następujące dane wyjściowe:

  • AIC modelu z trzema predyktorami: 60.51438447233831
  • AIC modelu z czterema predyktorami: 62.31365180026097

Z tego, co widzimy, model z trzema predyktorami ma niższą wartość AIC, a zatem jest lepiej dopasowany niż model z czterema predyktorami (ale niewiele w tym przykładzie).

BIC

BIC jest podobny do AIC, ale jest o wiele surowszy pod względem karania twojego modelu za dodanie większej liczby parametrów. Jest to oznaczone tą formułą:

Liczba N obserwacji, liczba K parametrów dopasowania + 1

Jeśli porównamy dopasowanie dwóch modeli przy użyciu metody BIC, model o niższej wartości BIC ma lepsze dopasowanie, podobnie jak w przypadku metody AIC.

Znajdźmy wartości BIC dla tych samych dwóch modeli, których właśnie użyliśmy. Tutaj jedyną różnicą jest kara, którą mnożymy liczbę parametrów przez:

Daje to następujące dane wyjściowe:

  • BIC modelu z trzema predyktorami: 63.60473936129743
  • BIC modelu z czterema predyktorami: 66.17659541145987

Z tego, co widzimy tutaj, model z trzema predyktorami ma niższą wartość BIC, a zatem jest lepiej dopasowany niż model z czterema predyktorami. Ponieważ kara BIC jest surowsza niż kara AIC, wartości metody BIC są większe niż metoda AIC dla ich odpowiednich modeli.

Ze względu na różnicę kar AIC może wybrać model o większej liczbie parametrów niż BIC. Zaleca się jednoczesne używanie AIC i BIC i podejmowanie decyzji dotyczących modeli na podstawie obu zestawów wyników. W tym przypadku AIC i BIC zgodziły się ze sobą i wybrały te same modele.

Kluczowe słownictwo

Podsumowując, omówiliśmy

  • R2: wskaźnik tego, jak silny model regresji liniowej przewiduje zmienną odpowiedzi
  • Skorygowane R²: wskaźnik tego, jak silny model wielokrotnej regresji liniowej uwzględnia wariancję zmiennej zależnej, jednocześnie korygując liczbę parametrów w modelu
  • MSE (średni błąd kwadratu): metryka oceny, która bardzo karze wartości odstające; prawdopodobnie pierwszy błąd, który wyliczysz i wykorzystasz, gdy wartości odstające reprezentują prawdziwe zjawisko zestawu danych
  • RMSE (pierwiastek średni błąd kwadratowy): pierwiastek kwadratowy z MSE; dzieli te same jednostki co zmienna odpowiedzi, więc RMSE może być bardziej „interpretowalny” niż MSE
  • MAE (średni błąd bezwzględny): miara oceny zastosowana w celu zmniejszenia znaczenia wartości odstających podczas pomiaru błędu; używane, gdy wartości odstające nie reprezentują prawdziwego zjawiska zestawu danych
  • MAPE (średni bezwzględny błąd procentowy): miara dokładności modelu regresji jako procent; podatne na błędy w czasie wykonywania lub niezwykle duże wartości, gdy zmienna odpowiedzi przyjmuje małe wartości
  • AIC (Akaike Information Criterion): ocena ilości informacji utraconych w różnych modelach, która karze za wzrost parametrów. Bez względu na rozmiar twoich danych, zawsze ma szansę wybrać zbyt duży model. Najlepiej stosować w połączeniu z BIC.
  • BIC (Bayesian Information Criterion): podobny do AIC, ale bardziej dotkliwy. Bez względu na rozmiar twoich danych, zawsze ma szansę wybrać zbyt mały model. Najlepiej stosować w połączeniu z AIC.

Wniosek

W tym samouczku pokazaliśmy, jak zaimplementować proste i wielokrotne modele regresji liniowej za pomocą Pythona oraz różne metody oceny tych modeli i ich błędów.

Podczas pracy z własnymi zestawami danych możesz wybrać dowolną z tych metod do oceny modeli regresji i błędów. Jednak może być w twoim najlepszym interesie, aby użyć wielu z nich i zobaczyć, jak ich wyniki są wyrównane lub różne, aby zdecydować, który z twoich modeli ma najlepszą reprezentację twoich danych.

Teraz powinieneś czuć się bardziej komfortowo we wdrażaniu własnych modeli regresji liniowej i mieć większą świadomość podobieństw i różnic między wszystkimi omawianymi wskaźnikami regresji.