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ł?
51
Odpowiedzi:
„.. 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} :
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.1 0 h(x) x h(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ą:
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.5→malignant h(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):
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:
Podsumowując, w scenariuszu klasyfikacji stosujemy zupełnie inne rozumowanie i zupełnie inny algorytm niż w scenariuszu regresji.
źródło
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.
źródło
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:
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:
źródło
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,...
źródło