ML Atlas

Kurs uczenia maszynowego od zera · Lekcja 1.5 · 6 z 33 gotowych lekcji · 10 min

Regresja liniowa: dopasowanie prostej

W skrócie

Regresja liniowa rysuje prostą, która najmniej mija się z danymi. Na danych o cukrzycy widać, jak błąd średniokwadratowy wybiera najlepszą prostą.

Rozgrzewka Dwa pytania z wcześniejszych lekcji. Minuta, a lekcji nie blokuje.
Z lekcji 1.4: Najbliżsi sąsiedzi: najprostszy model Jak kNN odpowiada na pytanie o nowy przypadek?

Pokaż odpowiedź

Poprawna odpowiedź: Bierze k najbliższych przykładów do nauki i wybiera ich większość

kNN nie ma reguły: głosuje k najbliższych zapamiętanych przykładów. Tło w labie pokazuje wynik tego głosowania w każdym punkcie.

Z lekcji 1.3: Punkt odniesienia: z czym porównujesz model? W teście jest 108 biopsji, w tym 1 złośliwa. „Zawsze łagodny” ma 99,1%, reguła 90,7%. Który model jest lepszy do badań przesiewowych?

Pokaż odpowiedź

Poprawna odpowiedź: Reguła, bo wykrywa złośliwą, a „zawsze łagodny” nie wykryje nigdy

Przy rzadkiej klasie trafność nagradza ignorowanie jej. „Zawsze łagodny” nie wykryje żadnej złośliwej biopsji, niezależnie od tego, ile ich będzie.

Czy masa ciała mówi coś o tym, jak szybko postępuje choroba? Lekarze mają mnóstwo takich przeczuć. Uczenie maszynowe pozwala zamienić przeczucie w liczbę: narysować najlepszą prostą przez dane i odczytać, jak bardzo jest nachylona. Zostaje tylko pytanie, co znaczy „najlepsza” — a odpowiedź na nie to zalążek wszystkiego, co dalej w tym kursie.

Przewidź, potem sprawdź Dopasowujesz najlepszą prostą do wykresu BMI i postępu choroby. Jaką część zmienności postępu choroby, czyli różnic między pacjentami, tłumaczy sam BMI? Tę część nazywa się R².
Jak bardzo jesteś pewny(-a)?

Eksperyment

Ten interaktywny eksperyment działa w przeglądarce z włączonym JavaScriptem. Tekst wokół opisuje, co w nim widać.

Pokaż odpowiedź

Poprawna odpowiedź: Około 34%

Najlepsza prosta ma R² = 0,34 (błąd średniokwadratowy 3890, a płaska linia na poziomie średniej ma 5930): BMI tłumaczy mniej więcej jedną trzecią zmienności, a pozostałe 66% zależy od czegoś innego.

Spróbuj

  • Przesuń suwak nachylenia i patrz, jak prosta się przechyla, a MSE zmienia. Potem przesuń suwak wyrazu wolnego. Spróbuj ręcznie zejść z MSE jak najniżej.
  • Naciśnij Najlepsze dopasowanie i porównaj prostą najmniejszych kwadratów ze swoją. Jak blisko byłeś?
  • Ustaw suwak nachylenia na zero, żeby prosta była pozioma, i ruszaj tylko wyrazem wolnym, aż MSE będzie najmniejsze. Właśnie znalazłeś średni postęp choroby: bez żadnej cechy najlepszym strzałem dla każdego jest średnia.
  • Porównaj MSE tej poziomej prostej z MSE najlepszego dopasowania. Różnica to tyle, ile jest warta wiedza o BMI.

Gdy już sprawdzisz to w labie, zobaczmy, co się tam właściwie działo.

Pomysł w prostych słowach

W lekcji 1 model odpowiadał „tak” albo „nie”. Teraz odpowiada liczbą i to nazywamy regresją. Najprostszy model regresji to prosta:

przewidywanie = nachylenie × cecha + wyraz wolny

Nachylenie mówi, o ile zmienia się przewidywanie, gdy cecha rośnie o jedną jednostkę. Wyraz wolny przesuwa całą prostą w górę albo w dół. Uczenie polega na znalezieniu dwóch liczb, przy których prosta przechodzi jak najbliżej punktów.

Pomyśl o handlarzu używanymi samochodami, który wycenia auta według wieku. Jego reguła na oko to prosta: zaczyna od ceny nowego auta (wyraz wolny) i za każdy rok odejmuje stałą kwotę (nachylenie). Żadne prawdziwe auto nie sprzedaje się dokładnie za tyle, ale prosta łapie trend i łatwo ją wytłumaczyć.

W tej lekcji korzystamy z danych z klasycznego badania 442 pacjentów z cukrzycą. Dla każdego znamy wskaźnik masy ciała (BMI) i miarę tego, jak bardzo choroba postąpiła rok po pierwszej wizycie. Każdy pacjent to więc para liczb, czyli jeden punkt: BMI w poziomie, postęp choroby w pionie.

Dlaczego to działa

Dla każdego pacjenta prosta daje przewidywanie, a różnicę między prawdziwą wartością a przewidywaną nazywamy resztą — to pionowa odległość punktu od prostej. Żeby ocenić prostą, trzeba zamienić setki reszt w jedną liczbę. Standardowo używa się błędu średniokwadratowego:

MSE = (1/n) · Σ (yᵢ − ŷᵢ)²

gdzie yᵢ to prawdziwa wartość dla pacjenta i, ŷᵢ to przewidywanie prostej, a n to liczba pacjentów. Podnoszenie do kwadratu załatwia dwie sprawy. Każde pudło staje się dodatnie, więc chybienia nad prostą i pod nią nie mogą się znosić. I duże pudła kosztują dużo więcej niż małe: punkt dwa razy dalej od prostej kosztuje cztery razy więcej. Prosta, która trochę myli się dla wszystkich, zwykle wygrywa z taką, która dla większości jest idealna, a dla kilku osób fatalna.

Prostą o najmniejszym MSE nazywamy dopasowaniem metodą najmniejszych kwadratów. Dla prostej nie trzeba jej nawet szukać: krótki wzór, znany od początku XIX wieku, daje dokładnie najlepsze nachylenie i wyraz wolny. Zauważ, co to oznacza. Uczenie to ten sam przepis co wcześniej — rodzina reguł (wszystkie możliwe proste), ocena (MSE) i reguła z najlepszą oceną — tylko teraz rodzina jest nieskończona, a ocena ciągła.

I jeszcze jedno: nawet najlepsza prosta zostawia w tych danych duże reszty. BMI wiąże się z postępem choroby, ale daleko mu do pełnej historii. Model może być najwyżej tak dobry jak informacja zawarta w jego cechach.

Częsty błąd

Dopasowana prosta to nie prawo natury. Z zapominania o tym biorą się dwa klasyczne błędy. Pierwszy to czytanie nachylenia jako przyczyny: w tych danych pacjenci z wyższym BMI przeciętnie szybciej się pogarszają, ale sama prosta nie powie, czy to masa ciała powoduje postęp choroby, czy oba zjawiska wynikają z czegoś trzeciego. Drugi to ekstrapolacja — używanie prostej daleko poza zakresem danych. Pacjenci w tym badaniu mają BMI w ograniczonym przedziale; o wartościach, których nie widziała, prosta nie mówi nic wiarygodnego.

Znalezienie najlepszej prostej ze wzoru to luksus, na który większość modeli nie może sobie pozwolić. W następnej lekcji znajdziemy tę samą prostą inaczej — małymi krokami w dół — i właśnie tak uczą się sieci neuronowe.

Złap błąd AI

Tak odpowiedział chatbot. Jedno zdanie jest merytorycznie błędne. Które?

Pytanie: Dopasowałem prostą postępu choroby względem BMI dla 442 pacjentów z cukrzycą i wyszło R² = 0,34. Co mi to mówi?

Odpowiedź chatbota

Pokaż błędne zdanie

Błędne zdanie: W praktyce oznacza to, że prosta trafnie przewiduje postęp choroby u około 34% pacjentów, a u reszty się myli.

R² to nie odsetek pacjentów: R² = 0,34 znaczy, że BMI tłumaczy mniej więcej jedną trzecią zmienności postępu choroby (błąd średniokwadratowy 3890 wobec 5930 dla płaskiej linii), a pozostałe 66% zależy od czegoś innego. Regresja przewiduje liczbę i prawie każdy pacjent ma jakąś resztę.

Quiz

Trzy pytania na sprawdzenie się. Wybierz odpowiedź albo rozwiń odpowiedź pod pytaniem. Z klawiatury: strzałki wybierają, Enter albo spacja zatwierdza.

1. Dlaczego regresja liniowa podnosi reszty do kwadratu, zamiast je po prostu dodać?
Pokaż odpowiedź

Poprawna odpowiedź: Żeby pudła w obie strony się nie znosiły, a duże kosztowały więcej

Kwadraty są zawsze dodatnie i szybko rosną, więc ocena uwzględnia każde pudło i surowo karze duże.

2. Przy nachyleniu ustawionym na zero, jaki wyraz wolny daje najmniejsze MSE?
Pokaż odpowiedź

Poprawna odpowiedź: Średnią wartości przewidywanej zmiennej w danych treningowych

Dla poziomej prostej błąd kwadratowy jest najmniejszy przy średniej, dlatego średnia to naturalny punkt odniesienia w regresji.

3. Najlepsza prosta ma dodatnie nachylenie. Co z tego wynika?
Pokaż odpowiedź

Poprawna odpowiedź: Że w tych danych wyższemu BMI przeciętnie towarzyszy większy postęp choroby

Nachylenie opisuje związek w danych, a nie przyczynę, a pozostałe reszty pokazują, że wiele zostaje niewyjaśnione.

Najważniejsze wnioski

  • Regresja przewiduje liczbę; prosta to najprostszy model regresji.
  • Błąd średniokwadratowy ocenia prostą, uśredniając kwadraty reszt, więc najbardziej ważą duże pudła.
  • Prosta najmniejszych kwadratów ma najmniejsze MSE i da się ją wyliczyć dokładnym wzorem.
  • Bez użytecznej cechy najlepszym stałym przewidywaniem jest średnia.
  • Nachylenie to związek w zakresie danych, a nie przyczyna i nie pozwolenie na ekstrapolację.

Głębiej: wzór, kod, praktyka

Matematyka

Dla jednej cechy x prosta to ŷ = w·x + b. Metoda najmniejszych kwadratów wybiera w i b, które minimalizują MSE(w, b) = (1/n) · Σ (yᵢ − w·xᵢ − b)². Gdy obie pochodne cząstkowe przyrównamy do zera, dostajemy wzór zamknięty:

  • w = Σ (xᵢ − x̄)(yᵢ − ȳ) / Σ (xᵢ − x̄)², czyli kowariancja x i y podzielona przez wariancję x;
  • b = ȳ − w·x̄, więc prosta zawsze przechodzi przez punkt średnich (x̄, ȳ).

Przy nachyleniu ustalonym na 0 MSE jest najmniejsze dla b = ȳ, a to minimum równa się wariancji y. Dlatego R² = 1 − MSE(prosta) / MSE(średnia) mierzy, jaką część wariancji tłumaczy cecha. Dla prostej z jedną cechą R² to kwadrat współczynnika korelacji Pearsona między x i y.

W kodzie (Python)

Ci sami 442 pacjenci co w labie, z BMI w oryginalnych jednostkach (scaled=False):

from sklearn.datasets import load_diabetes
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

X, y = load_diabetes(return_X_y=True, as_frame=True, scaled=False)
bmi = X[["bmi"]]  # jedna cecha, ale jako tabela (sklearn chce danych 2-D)
model = LinearRegression().fit(bmi, y)
pred = model.predict(bmi)

print(f"slope {model.coef_[0]:.2f}, intercept {model.intercept_:.1f}")
print(f"MSE of the line: {mean_squared_error(y, pred):.0f}")
print(f"MSE of the mean: {mean_squared_error(y, [y.mean()] * len(y)):.0f}")
print(f"R2: {r2_score(y, pred):.2f}")

Wynik

slope 10.23, intercept -117.8
MSE of the line: 3890
MSE of the mean: 5930
R2: 0.34

Każdy punkt BMI dodaje około 10 do przewidywanego postępu choroby. Wyraz wolny −118 to tylko ekstrapolacja do BMI równego 0, daleko poza danymi (BMI 18–42), więc sam w sobie nic nie znaczy.

Dla praktyka
  • Wyniki liczone na danych treningowych są zbyt optymistyczne. Tu to nie szkodzi (dwa parametry, 442 punkty), ale zasadniczo podawaj MSE i R² na zbiorze testowym (lekcja 2).
  • Sprawdzaj reszty, nie tylko R². Narysuj je względem przewidywania: łuk albo lejek znaczy, że prosta albo stały szum to złe założenie.
  • MSE jest w kwadratowych jednostkach celu (tu: postęp²). Jego pierwiastek (RMSE, tu około 62) łatwiej wytłumaczyć innym.
  • Jeden odstający punkt z dużą resztą potrafi mocno pociągnąć prostą najmniejszych kwadratów. Gdy kilka punktów jest nietypowych, najpierw im się przyjrzyj, a dopiero potem rozważ odporną funkcję straty, np. Hubera.
  • Nachylenia różnych cech da się porównać tylko przy wspólnej skali. Ustandaryzuj cechy, zanim przeczytasz współczynniki jako „ważność” — a i wtedy to związek, nie przyczyna.

Więcej w Atlasie

Hasła encyklopedii o pojęciach z tej lekcji: