Dlaczego nie podejść do klasyfikacji poprzez regresję?

51

Niektóre materiały, które widziałem na temat uczenia maszynowego, mówiły, że podejście do problemu klasyfikacji poprzez regresję jest złym pomysłem. Ale myślę, że zawsze można wykonać ciągłą regresję, aby dopasować dane i obciąć ciągłą prognozę, aby uzyskać dyskretne klasyfikacje. Dlaczego to zły pomysł?

Strin
źródło
myślę, że regresja jest zawsze bardziej skomplikowana niż klasyfikacja w środowisku produkcyjnym

Odpowiedzi:

57

„.. podejście do problemu klasyfikacji przez regresję”. „ przez regresję” Zakładam, że masz na myśli regresję liniową i porównuję to podejście do podejścia „klasyfikacji” dopasowania modelu regresji logistycznej.

Zanim to zrobimy, ważne jest, aby wyjaśnić różnicę między modelami regresji i klasyfikacji. Modele regresji przewidują zmienną ciągłą, taką jak ilość opadów deszczu lub natężenie światła słonecznego. Mogą również przewidywać prawdopodobieństwa, takie jak prawdopodobieństwo, że obraz zawiera kota. Model regresji przewidujący prawdopodobieństwo może być stosowany jako część klasyfikatora poprzez narzucenie reguły decyzyjnej - na przykład jeśli prawdopodobieństwo wynosi 50% lub więcej, zdecyduj, że jest to kot.

Regresja logistyczna przewiduje prawdopodobieństwa i dlatego jest algorytmem regresji. Jest to jednak powszechnie opisywane jako metoda klasyfikacji w literaturze dotyczącej uczenia maszynowego, ponieważ może być (i jest często) stosowane do tworzenia klasyfikatorów. Istnieją również „prawdziwe” algorytmy klasyfikacji, takie jak SVM, które tylko przewidują wynik i nie zapewniają prawdopodobieństwa. Nie będziemy tutaj omawiać tego rodzaju algorytmu.

Regresja liniowa a regresja logistyczna problemów klasyfikacyjnych

Jak wyjaśnia Andrew Ng , przy pomocy regresji liniowej dopasowujesz wielomian do danych - powiedzmy, podobnie jak w poniższym przykładzie dopasowujemy linię prostą przez zestaw próbek {rozmiar guza, typ guza} :

wprowadź opis zdjęcia tutaj

Powyżej nowotwory złośliwe otrzymują a niezłośliwe - , a zielona linia to nasza hipoteza . Aby dokonać prognoz, możemy powiedzieć, że dla dowolnego rozmiaru guza , jeśli wzrośnie powyżej , przewidujemy nowotwór złośliwy, w przeciwnym razie przewidujemy łagodny.10h(x)xh(x)0.5

Wygląda na to, że w ten sposób możemy poprawnie przewidzieć każdą próbkę zestawu treningowego, ale teraz zmieńmy trochę zadanie.

Intuicyjnie jasne jest, że wszystkie guzy większe niż określony próg są złośliwe. Dodajmy więc kolejną próbkę z dużym rozmiarem guza i ponownie uruchommy regresję liniową:

wprowadź opis zdjęcia tutaj

Teraz nasz już nie działa. Aby nadal dokonywać poprawnych prognoz, musimy zmienić go na lub coś takiego - ale nie tak powinien działać algorytm.h(x)>0.5malignanth(x)>0.2

Nie możemy zmienić hipotezy za każdym razem, gdy pojawia się nowa próbka. Zamiast tego powinniśmy nauczyć się tego na podstawie danych zestawu treningowego, a następnie (korzystając z poznanej hipotezy) dokonać prawidłowych prognoz dla danych, których wcześniej nie widzieliśmy.

Mam nadzieję, że to wyjaśnia, dlaczego regresja liniowa nie jest najlepszym rozwiązaniem dla problemów z klasyfikacją! Możesz także obejrzeć VI. Regresja logistyczna. Film klasyfikacyjny na ml-class.org, który wyjaśnia ten pomysł bardziej szczegółowo.


EDYTOWAĆ

probabilityislogic zapytał, co zrobiłby dobry klasyfikator. W tym konkretnym przykładzie prawdopodobnie użyłbyś regresji logistycznej, która mogłaby nauczyć się takiej hipotezy (właśnie to wymyślam):

wprowadź opis zdjęcia tutaj

Zauważ, że zarówno regresja liniowa, jak i regresja logistyczna dają linię prostą (lub wielomian wyższego rzędu), ale te linie mają inne znaczenie:

  • h(x) dla interpolacji lub ekstrapolacji regresji liniowej dane wyjściowe i przewiduje wartość której nie widzieliśmy. To po prostu jak podłączyć nowy i uzyskanie numeru surowe i bardziej nadaje się do zadań, takich jak przewidywanie, powiedzmy cena samochodu na podstawie {wielkości samochodu, wiek samochodu} itd.xx
  • h(x) dla regresji logistycznej informuje o prawdopodobieństwie, że należy do klasy „dodatniej”. Dlatego nazywany jest algorytmem regresji - szacuje wielkość ciągłą, prawdopodobieństwo. Jeśli jednak ustawisz próg prawdopodobieństwa, taki jak , otrzymasz klasyfikator, aw wielu przypadkach dzieje się tak z danymi wyjściowymi z modelu regresji logistycznej. Jest to równoważne z umieszczeniem linii na wykresie: wszystkie punkty znajdujące się powyżej linii klasyfikatora należą do jednej klasy, a punkty poniżej należą do drugiej klasy.xh(x)>0.5

Podsumowując, w scenariuszu klasyfikacji stosujemy zupełnie inne rozumowanie i zupełnie inny algorytm niż w scenariuszu regresji.

andreister
źródło
@ andreister: Ale co by było, gdyby wszystkie wartości odstające zostały usunięte lub obcięte, czy regresja liniowa jest nadal złym pomysłem?
Tomek Tarczyński
Twój przykład jest dobry, jednak nie pokazuje, co zrobiłby „dobry klasyfikator”. czy mógłbyś to dodać? należy pamiętać, że dodanie punktów danych powinno zmienić linię dla dowolnej metody. Nie wyjaśniłeś, dlaczego jest to zła zmiana.
probabilislogiczny
1
@andreister: Twój przykład pokazał, że niektóre złe dane mogą zepsuć regresję liniową. Ale czy możemy zastosować regresję kwadratową lub nawet bardziej skomplikowaną hipotezę, aby „regresja” była dobrym klasyfikatorem?
Strin
1
@probabilityislogic - uwaga, zaktualizowałem odpowiedź.
andreister
2
@Strin: Bardziej skomplikowane hipotezy są bardziej prawdopodobne niż dane. (To znaczy, aby dopasować się do dziwactwa danych, które masz pod ręką, co skutkuje słabym dopasowaniem do przyszłych danych.) Pamiętam klasę, w której uczestniczyłem, gdzie facet w pierwszym rzędzie był po prostu pewien, że profesor powstrzymuje nas i nie dając nam wyrafinowanych algorytmów, które pozwoliłyby nam zabijać na rynkach energii elektrycznej ... Nigdy tak naprawdę nie rozumiał nadmiernego dopasowania.
Wayne,
14

Nie mogę wymyślić przykładu, w którym klasyfikacja jest tak naprawdę ostatecznym celem. Prawie zawsze prawdziwym celem jest dokładne przewidywanie, np. Prawdopodobieństw. W tym duchu regresja (logistyczna) jest twoim przyjacielem.

Frank Harrell
źródło
5
Wydaje mi się, że skuteczna klasyfikacja jest ostatecznie celem większości zautomatyzowanych procesów, w których interwencja lub osąd człowieka jest niepraktyczny lub niemożliwy. Odbierając, powiedzmy, zaszumiony transmitowany sygnał cyfrowy, odbiornik nie może zdecydować, że konkretny bit powinien wynosić 0,97 zamiast 0 lub 1.
kardynał
6
Z wyjątkiem faktu, że koszt fałszywie dodatniego lub koszt fałszywie ujemnego są rzadko kontrolowane przez analityka, który dokonał klasyfikacji, dlatego pierwotny analityk nie może wiarygodnie wybrać „właściwy” punkt odcięcia do klasyfikacji. Ponadto rozsądnie jest mieć „szarą strefę” ryzyka pośredniego, w której nie dokonuje się klasyfikacji, a zaleceniem jest „uzyskać więcej danych”.
Frank Harrell,
1
Myślę, że uważam dokładnie odwrotność twierdzenia zawartego w tej odpowiedzi i nigdy nie spotkałem się z tą perspektywą w całym moim uniwersyteckim kształceniu w zakresie uczenia maszynowego. To dla mnie bardzo zaskakujące, że ktoś by to powiedział. W praktyce prawie zawsze napotykałem problemy, w których ludzie myślą, że chcą przewidzieć ciągłą ilość, ale tak naprawdę chcą przewidzieć członkostwo w różnych kategoriach kategorii. Z trudem znajduję przypadki, w których przewidywanie ciągłej wielkości jest przydatne pod względem merytorycznego wnioskowania leżącego u podstaw problemu.
ely
9
Myślę, że przyjęłaś wiele dogmatów uczenia maszynowego za pewnik. Podejmujesz wiele nieuzasadnionych założeń. Jednym z nich jest to, że ludzie naprawdę potrzebują wymuszonego wyboru w kategorycznym segmencie. Mogą twierdzić, że tego chcą, ale tak naprawdę nie potrzebują tego w większości sytuacji. Wyborów nie trzeba zmuszać. Świetnym wyborem jest „brak decyzji, zdobądź więcej danych”. Zazwyczaj potrzebne jest przewidywanie ciągłej wielkości leżącej u podstaw. Warto poświęcić chwilę na studiowanie teorii decyzji optymalnej (Bayesa). Jeśli możesz podać konkretny przykład, skomentuję dalej.
Frank Harrell
11
+1 do komentarza @Frank Harrell. Na przykład przewidywanie temperatur, opadów deszczu i poziomów rzek jest o wiele bardziej pomocne niż przewidywanie, że będzie gorąco, mokro lub zaleje. Nawet jeśli problemem są owce lub kozy? oszacowanie pr (owiec) jest bardziej pouczające niż binarne „owce” lub „kozy”.
Nick Cox
1

Dlaczego nie spojrzeć na jakieś dowody? Chociaż wielu twierdzi, że regresja liniowa nie jest odpowiednia do klasyfikacji, może nadal działać. Aby zyskać trochę intuicji, do porównania klasyfikatora scikit-learn dołączyłem regresję liniową (stosowaną jako klasyfikator) . Oto co się dzieje:

wprowadź opis zdjęcia tutaj

Granica decyzji jest węższa niż w przypadku innych klasyfikatorów, ale dokładność jest taka sama. Podobnie jak w przypadku liniowego klasyfikatora wektora podporowego, model regresji daje hiperpłaszczyznę, która oddziela klasy w przestrzeni cech.

Jak widzimy, użycie regresji liniowej jako klasyfikatora może działać, ale jak zwykle przekreśliłbym prognozy.

Dla przypomnienia, tak wygląda mój kod klasyfikacyjny:

class LinearRegressionClassifier():

def __init__(self):
    self.reg = LinearRegression()

def fit(self, X, y):
    self.reg.fit(X, y)

def predict(self, X):
    return np.clip(self.reg.predict(X),0,1)

def decision_function(self, X):
    return np.clip(self.reg.predict(X),0,1)

def score(self, X, y):
    return accuracy_score(y,np.round(self.predict(X)))
Nils
źródło
Spójrz na zasadę dokładności i niewłaściwej punktacji
kjetil b halvorsen
0

Ponadto, aby rozwinąć już i tak dobre odpowiedzi, dla każdego zadania klasyfikacyjnego poza dwuwymiarowym, użycie regresji wymagałoby od nas narzucenia odległości i uporządkowania między klasami. Innymi słowy, możemy uzyskać różne wyniki po prostu tasując etykiety klas lub zmieniając skalę przypisanych wartości liczbowych (powiedzmy, że klasy oznaczone są jako vs ) , co przeczy celowi problemu klasyfikacji.1,10,100,...1,2,3,...

Nutle
źródło