Wybór odpowiedniego algorytmu. Część 2 – algorytmy klasyfikacyjne

W dzisiejszym wpisie biorę na tapetę chyba najpopularniejszą kategorię algorytmów – algorytmy klasyfikacyjne. Rozwiązują one problemy klasyfikacji danych i należą do moich ulubionych algorytmów. Jeśli chcesz wiedzieć jak działają najpopularniejsze klasyfikatory i czym się kierować przy ich wyborze, to zapraszam do czytania.

Na wstępie muszę wspomnieć o pewnych założeniach:

  • Wszystko o czym piszę, to moje subiektywne postrzeganie problemów i ich rozwiązań. Bazuje to zarówno na moim prywatnym doświadczeniu, jak i ogólnie przyjętych zasadach.
  • W artykule przyjmuję pewne uproszczenia i nie wchodzę w szczegóły. W prawdziwym życiu należy starannie przeanalizować problem, który rozpatrujemy. Przy dwóch pozornie identycznych problemach, najlepszy wynik może być uzyskany przy pomocy różnych algorytmów. Nie ma dwóch identycznych przypadków.
  • Przedstawiam jedynie zestaw reguł, pomagający „przefiltrować” najpopularniejsze algorytmy i zawęzić poszukiwania.
  • Głównym celem jest tu uwidocznienie procesu myślowego przebiegającego w głowie doświadczonego badacza danych, wraz ze stosownym uzasadnieniem podejmowanych wyborów.

Reasumując: wszystko o czym piszę pomoże Ci lepiej zrozumieć działanie i charakterystykę najpopularniejszych algorytmów. Wartością dodaną będzie również zaoszczędzony na poszukiwaniach czas. Przy podejmowaniu ostatecznej decyzji dobrze zdefiniuj problem, zrozum dane i cel biznesowy.

Artykuł ten jest drugą częścią cyklu „Wybór odpowiedniego algorytmu”. Cały cykl składa się z następujących artykułów:
Część 1 – wprowadzenie.
Część 2 – algorytmy klasyfikacyjne.
Część 3 – algorytmy regresyjne.
Część 4 – algorytmu grupujące.

Opis problemu klasyfikacji

W codziennym życiu spotykamy się z dziesiątkami problemów o podłożu biznesowym. W większości przypadków stoimy po „drugiej stronie”. Chcąc, czy nie jesteśmy klientami instytucji finansowych zaciągającymi pożyczki i lokującymi swe oszczędności w bankach, odbiorcami reklam w internecie, czy też klientami sklepów internetowych, którym „podsuwa” się potencjalnie interesujące produkty. We wszystkich wymienionych sytuacjach w tle istnieje problem, który można rozwiązać z użyciem danych i uczenia maszynowego. Jest to problem klasyfikacji bądź prognozowania (jeśli tylko go odpowiednio sformułujemy).

Z problemem klasyfikacji (tudzież rekomendacji) spotykamy się wszędzie tak, gdzie z wykorzystaniem zbioru zmiennych objaśniających musimy wskazać wartość przyjmowaną przez zmienną modelowaną. W przeciwieństwie do problemów regresyjnych, w problemach klasyfikacji zmienna modelowana nie przyjmuje wartości ciągłych, lecz wartości binarne (klasyfikacja dwuklasowa, ang. two-class classification), ew. jedną z kilku etykiet (klasyfikacja wieloklasowa, ang. multiclass classification).

W jakich przypadkach zastosowanie mają algorytmy klasyfikacyjne?
  • Korzystasz ze skrzynki mailowej? Na 99,99% wykorzystuje ona filtr spamu, będący przykładem systemu klasyfikacyjnego (czy dany e-mail jest spamem, czy też nie?).
  • Jesteś klientem banku i starałeś się o dowolny kredyt? Twój profil klienta również był analizowany z użyciem algorytmy uczenia maszynowego, wyznaczający ryzyko kredytowe (czy dana osoba jest dobrym, czy też złym kredytobiorcą?).
  • Masz profil na Filmweb lub Netflix i oceniasz obejrzane filmy? Każdy kolejny film, który widzisz na liście podpowiedzi został wytypowany na podstawie Twojej historii oceniania. Użyto tu systemu rekomendacyjnego, zbudowanego w oparciu o algorytmy klasyfikacyjne. Więcej o systemach rekomendacji, ich budowie i zastosowaniu możesz przeczytać w jednym z moich projektów.
  • Masz abonament telefoniczny i przed zakończeniem okresu umowy otrzymujesz propozycję jej przedłużenia na „superatrakcyjnych” warunkach? 😊 Za tym również stoi mniej lub bardziej złożony algorytm klasyfikacyjny, użyty w systemie którego głównym celem jest retencja klientów.
  • Szukasz nowego produktu x w wyszukiwarce internetowej i nagle zdajesz sobie sprawę, że wszystkie strony wyświetlają Ci reklamy trafiające w Twoje potrzeby? Za tym również stoi algorytm klasyfikacji reklam (jeśli to reklamy Google, to stawiałbym tu na regresję logistyczną 😉). Jednak w odróżnieniu od pozostałych przykładów jest to klasyfikacja wieloklasowa (wybieramy jedną spośród wielu etykiet).
Na jakie pytania odpowiadają algorytmy klasyfikacyjne?
  • Czy klient będzie dobrym kredytobiorcą? (spłaci kredyt w całości, bez większych opóźnień) | 0, 1 (tak lub nie).
  • Czy dany klient będzie chciał zrezygnować z naszych usług? | 0, 1 (tak lub nie).
  • Czy dana transakcja jest fraudem? | 0, 1 (tak lub nie).
  • Czy użytkownik polubi dany film? | 0, 1 (tak lub nie).
  • Czy to jest spam? | 0, 1 (tak lub nie).
  • Jakie są nastroje ludzi używających Twittera? | pozytywne, negatywne, neutralne, etc.
  • Która reklama przypadnie do gustu użytkownikowi i przyniesie dla nas i naszych klientów największe zyski? A, B, C lub D.

Zgodnie z powyższych algorytmy klasyfikacyjne dzielimy zatem na dwie grupy: dwuklasowe i wieloklasowe. Myślę, że w zdecydowanej większości przypadków spotykamy się z problemami binarnymi, dlatego też im poświęcam największą uwagę.

Wybór odpowiedniego klasyfikatora

Kiedy mamy zdefiniowany problem, znamy strukturę danych i cel biznesowy projektu, należy uzasadnić wybór algorytmu. Jest na to kilka sposobów. Pierwszy z nich zakłada pominięcie wszelkich ograniczeń i przetestowanie wszystkich algorytmów, w różnych konfiguracjach, z użyciem różnych predyktorów, a następnie porównanie wyników. Zajmie to jednak miesiące, jeśli nie lata. Bardziej praktyczne jest podejście bazujące na analizie 8 atrybutów problemu, o których to wspomniałem w części pierwszej.

Ważną kwestią są ograniczenia jakie napotykamy. Zbyt mała (lub zbyt duża) liczba danych, brak czasu na zbudowanie odpowiedniego modelu czy czas wykonywania algorytmu przekładający się na działanie systemu to tylko niektóre z nich. Warto mieć świadomość wszystkich ograniczeń jeszcze przed przystąpieniem do budowania modelu. Chyba nikt z nas nie chciałby znaleźć się w sytuacji, w której po miesiącach starań, uzyskuje się model dający świetne rezultaty, ale jednocześnie taki, który nie może być produkcyjnie zaimplementowany ze względu np. na aspekty prawne (w kolejnych akapitach rozwinę ten temat).

W opisie algorytmów biorę pod uwagę wszystkie ich zalety, jak i również wady. Poniżej przedstawiam dodatkowo listę ograniczeń z którymi możecie się spotkać przy problemach klasyfikacyjnych.

  1. Kwestie szybkościowe:
    1. Czas uczenia i aktualizacji modelu. W przypadku systemów nieustannie udoskonalanych, które są uaktualniane jest to duże ograniczenie. Dotyka ono większości nieliniowych rozwiązań (jak np. KNN).
    2. Czas wykonywania modelu. W szczególności systemy czasu rzeczywistego, w których kwestie szybkościowe nabierają pierwszorzędnego znaczenia.Tu zdecydowaną przewagę mają algorytmy liniowe, które są duże szybsze zarówno w fazie uczenia jak i wykonywania. Krócej trwa również proces ich uaktualniania, dlatego są one tak popularne w silnikach rekomendacji. Nie wymagają również przetrzymywania dużej ilości danych w pamięci. W praktyce sprowadza się to do przechowywania w pamięci wektor współczynników, pozwalającego uzyskać odpowiedź 😊
  1. Interpretowalność
    Chodzi o interpretowanie działania algorytmu w celach biznesowych. Wspomniałem wcześniej o specyficznych sytuacjach w których należy brać pod uwagę aspekty prawne charakterystyczne dla danej branży. Przykładem sektora, który jest mocno obarczony ryzykiem związanym z interpretacją decyzji pod kątem prawa jest bankowość. W Stanach Zjednoczonych wszystkie decyzje dotyczące kredytów muszą mieć swoje uzasadnienie.Żeby lepiej zobrazować co mam na myśli, proszę wyobraź sobie, że jesteś analitykiem dużego banku w USA. Przed amerykańskim odpowiednikiem KNF musisz wytłumaczyć się z decyzji o nieudzielenie kredytu dla Jana Kowalskiego. Decyzja ta była podjęta w oparciu o system bazującego na uczeniu maszynowym. Jeśli wykorzystuje on algorytm sieci neuronowych, to masz duży problem. Istnieje duże prawdopodobieństwo, że bank będzie zmuszony wypłacić odszkodowanie klientowi, a Ty stracisz pracę.Pomyśl teraz o analogicznej sytuacji. Jedyną  różnicą jest to, że został użyty inny algorytm. Tym razem system bazuje na drzewie decyzyjnym. Z wykorzystaniem odpowiedniej biblioteki R lub gotowych komponentów np. z Microsoft SQL Server Analysis Services jesteś w stanie w prosty sposób zobrazować i wytłumaczyć proces stojący za decyzją banku.Powyższa sytuacja to jedynie przykład. Podobne schematy można mnożyć. Analitycy danych w spółkach akcyjnych również musisz tłumaczyć się zarządowi i inwestorom z podejmowane decyzje. Gdyby używali algorytmów, których działanie ciężko zinterpretować, to mieliby duży problem.Podsumowując, wśród algorytmów klasyfikacyjnych możemy wyróżnić takie, których działanie można opisać spoglądając np. na wygenerowany schemat (np. wspomniane drzewa decyzyjne) – łatwo interpretowalne, jak i również inne, niemalże nieinterpretowalne, do których wyniku ciężko się odnieść.
  1. Skalowalność
    Mam tu na myśli wszystkie zasoby jakie zużywa dany algorytm. Wyróżnić tu możemy czas uczenia, czas wykonywania po jakim algorytm zwraca wynik użytkownikowi, czy ilość pamięci, która jest potrzebna do poprawnego wykonania.
  1. Czynnik ludzki
    Czy naprawdę dobrze znasz i rozumiesz wybrany algorytm? Pisząc „naprawdę dobrze”, mam na myśli bardzo, bardzo dobrze. Oczywiście by zostać specjalistą w kwestii uczenia maszynowego i eksploracji danych, nie trzeba znać dogłębnie wszystkim algorytmów. Należy jednak mieć świadomość ich ograniczeń i ogólnej charakterystyki.Warto mieć swoje ulubione algorytmy, które znamy znakomicie i wykorzystujemy w konkretnych sytuacjach. Ma to służyć radzeniu sobie w sytuacjach, gdy musimy dopasować wybrany algorytm i jego działanie do problemu, tak by uzyskać jak najlepszy wynik. Trzeba mieć wiedzę potrzebną do odpowiedniej manipulacji hiperparametrami danego algorytmu. Jeśli w nie masz praktycznej wiedzy, to istnieje ryzyko, że:

    1. Osiągnięty przez Ciebie wynik będzie niesatysfakcjonujący, bo nie dopasowałeś algorytmu do danych.
    2. Osiągniesz zbyt duże dopasowanie algorytmu, a więc model będzie przeuczony. Uzyskasz przez to fatalny wynik na danych produkcyjnych.

Opis poszczególnych algorytmów

Naiwny klasyfikator Bayesa
  1. Opis algorytmu:
    Metoda klasyfikacji dwu i wieloklasowej. Została oparta na teorii Bayesa, dotyczącej przewidywania kategorii w nieznanym zbiorze danych. Zakłada zupełną niezależność poszczególnych zmiennych (co rzadko ma odzwierciedlenie w świecie rzeczywistym). Stąd też jego nazwa – naiwny klasyfikator. Jego działanie opiera się na prostym prawdopodobieństwie warunkowym zdarzeń. Zaliczamy go do jednego z najprostszych algorytmów. Pomimo prostoty potrafi dawać lepsze rezultaty niż bardziej skomplikowane metody klasyfikacji.
    1Nie chcę tu opisywać szczegółowo działania algorytmu, dlatego zainteresowanych odsyłam do dokładnego, aczkolwiek prostego opisu.
  1. Przykładowe zastosowanie:
    • Analiza tekstu (filtry spamu, analiza danych z Twitter, etc., analiza opinii).
    • Przewidywanie w czasie rzeczywistym.
    • Systemy rekomendacyjne (w połączeniu z Collaborative Filtering o którym pisałem wcześniej w tym projekcie).
    • Inne (wszędzie tam, gdzie poszukuje się niskiego zużycia pamięci i CPU).
  2. Liczba obserwacji: ze względu na liniowość dobrze sprawdza się przy dużych zbiorach. Jednocześnie nie wymaga dużej liczby danych uczących do poprawnego działania.
  3. Dokładność algorytmu: średnia.
  4. Czas uczenia: krótki – dzięki prostej strukturze i niskiej złożoności obliczeniowej.
  5. Liniowość: tak.
Regresja logistyczna
  1. Opis algorytmu
    Metoda klasyfikacji dwu i wieloklasowej. Szybka i relatywnie prosta. Oparta jest o specyficzny system prawdopodobieństw i (tzw. szansach wystąpienia zdarzenia) i funkcji logitowej. Celem owej funkcji jest przekształcenie prawdopodobieństwa w logarytm szansy, tzw. logit.Regresja logistyczna daje wynik ciągły, sprowadzany do binarnego. Z powodzeniem zatem może być stosowana w systemach rekomendacji, z dowolną metodą sortowania wyników.
  1. Przykładowe zastosowanie:
    • Systemy rekomendacyjne.
    • Detekcja fraudów.
    • Systemy oceny ryzyka kredytowego.
  2. Liczba obserwacji: dobrze radzi sobie nawet przy dużej liczbie obserwacji.
  3. Dokładność algorytmu: średnia.
  4. Czas uczenia: krótki.
  5. Liniowość: tak.
Drzewo decyzyjne
  1. Opis algorytmu
    Mój ulubiony algorytm 🙂 Nazywany jest również drzewem klasyfikacyjnym. Oparty na strukturach o drzewiastym kształcie. Proces klasyfikacyjny zaczyna się w korzeniu drzewa i postępuje (w dół) aż do osiągnięcia liści, czyli tzw. klas terminalnych.O procesie klasyfikacyjnym opartym na drzewie decyzyjnym możemy myśleć jak o rozbijaniu ważnej decyzji na ciąg pytań. Przedstawiane rezultaty są łatwo interpretowalne nawet przez osoby bez doświadczenia analitycznego. Jest to niewątpliwa zaleta wszędzie tam, gdzie wynik uzyskany przez system decyzyjny musi zostać uzasadniony przez człowieka.
    4Drzewo decyzyjne jest budowane w sposób iteracyjny począwszy od korzenia, aż do liści. W kolejnych iteracjach dodawane są węzły składające się z odpowiednio dobranych atrybutów. Atrybuty są wybierane przez tzw. algorytm wyboru cech, w kolejności mającej zmaksymalizować zysk informacyjny z danego węzła. Cały proces ma swój koniec w momencie, gdy wszystkie liście są w tej samej klasie lub gdy zabranie klas do podziału.Budując pełne drzewo istnieje duże prawdopodobieństwo nadmiernego dopasowania algorytmu. Jest ono częstym problemem w przypadku podstawowej wersji drzewa decyzyjnego. Może mieć to negatywny wpływ na wynik jaki osiąga algorytm, dlatego dobrą praktyką jest przycinanie drzewa od pewnej, ustalonej głębokości.  „Przeuczenia” można uniknąć również w inny sposób, budując zmodyfikowaną wersję algorytmu. Piszę o tym w kolejnych punktach.Jest jeszcze jedna ważna rzecz, którą warto zaznaczyć. Mimo iż drzewo decyzyjne budowane jest w oparciu o decyzje binarne, to obecnie używane pakiety implementujące algorytm radzą sobie również ze zmiennymi ciągłymi. Zawierają one mechanizm przekształcający zmienne ciągłe w predyktor binarny. Dla przykładu, w przypadku zmiennej „Spalanie” mówiącej nam o średnim spalaniu danego auta, można sklasyfikować ilość zużytej benzyny na 100 km: „mniej niż 10” i „więcej niż 10”.
  1. Przykładowe zastosowanie:
    • Bankowość inwestycyjna.
    • Systemy oceny ryzyka kredytowego.
  2. Liczba obserwacji: duża. Szybki czas uczenia.
  3. Dokładność algorytmu:średnia/wysoka (UWAGA: przy podstawowej wersji drzewa decyzyjnego nietrudno o przeuczenie modelu).
  4. Czas uczenia: krótki. Niestety nie wspiera uczenia ad-hoc. Jeśli mamy nowe obserwacje w naszym zbiorze, jesteśmy zmuszeni do przebudowania modelu.
  5. Liniowość: nie (ze względu na strukturę algorytmu, nie obserwujemy tu liniowej zależności pomiędzy atrybutami).
Wzmocnione drzewo decyzyjne (ang. Boosted Decision Tree)
  1. Opis algorytmu
    Dwuklasowa wariacja drzewa decyzyjnego. Dzięki „niekończeniu” drzewa, unika ono największej bolączki podstawowej wersji drzewa – przeuczenia. Jest to możliwe dzięki ograniczeniu liczby podziałów gałęzi drzewa i jego głębokości. Dodatkowym elementem jest tu wzmocnienie (ang. boosting) polegające na losowaniu nowych ciągów uczących służących do uczenia kolejnych wersji klasyfikatorów.W praktyce algorytm buduje sekwencję drzew. Każde nowe drzewo uczy się kompensować błąd pozostawiony przez poprzednie drzewo. W rezultacie otrzymujemy bardzo dokładny algorytm, który niestety wymaga dużej ilości pamięci.
  1. Przykładowe zastosowanie:
    • Bankowość inwestycyjna.
    • Systemy oceny ryzyka kredytowego.
    • Inne – wszędzie tam, gdzie liczy się dokładność, nie ma ograniczających zasobów, ew., gdy algorytm nie musi być często uaktualniany.
  2. Liczba obserwacji: duża. Szybki czas uczenia.
  3. Dokładność algorytmu: wysoka.
  4. Czas uczenia: średni/długi (przyczyną jest większa złożoność obliczeniowa niż w przypadku podstawowej wersji drzewa decyzyjnego).
  5. Liniowość: nie.
Lasy losowe (ang. Random Forest)
  1. Opis algorytmu
    Algorytm klasyfikacji dwu i wieloklasowej. Można spotkać się z różnym nazewnictwem: Random Forest i Decision Forest. Idea działania w obu przypadkach jest niemal identyczna.Działanie lasów losowych opiera się na klasyfikacji z użyciem grupy drzew decyzyjnych i największą różnicą w budowie obu algorytmów jest tzw. bootstrap.Algorytm rozpoczyna swe działanie od zbudowaniu wielu drzew decyzyjnych (liczba drzew jest definiowana przez użytkownika). Dla każdego drzewa wybierana jest losowa próba obserwacji, składająca się z kilku zmiennych objaśniających (liczba zmiennych w każdym z drzew jest drugim parametrem definiowanym przez użytkownika). Następnie w oparciu o mechanizm maksymalizacji zysku informacyjnego (o którym pisałem więcej w przypadku drzewa decyzyjnego) wybierane są kolejne atrybuty do podziału. Końcowa decyzja jest podejmowana w wyniku większościowego głosowania nad klasami wskazanymi przez poszczególne drzewa.Główną zaletą lasów losowych jest większa dokładność modelu niż w przypadku drzewa decyzyjnego. Nie ma oczywiście nic za darmo. Użyty mechanizm bootstrap ma negatywny wpływ na interpretowalność działania algorytmu.
  1. Przykładowe zastosowanie:
    • Bankowość inwestycyjna.
    • Systemy oceny ryzyka kredytowego.
  2. Liczba obserwacji: mała/średnia (przy założeniu, że liczy się czas uczenia modelu).
  3. Dokładność algorytmu: wysoka.
  4. Czas uczenia: średni/długi (przyczyną jest większa złożoność obliczeniowa niż w przypadku podstawowej wersji drzewa decyzyjnego).
  5. Liniowość: nie.

Sieć neuronowa

  1. Opis algorytmu
    Algorytm klasyfikacji dwu i wieloklasowej. Bodajże najbardziej wyrafinowany algorytm spośród wszystkich, które przedstawiam w tym wpisie. Inspirowany działaniem ludzkiego mózgu. Swoje zastosowanie ma również w problemach regresyjnych.
    2
    Schemat działania sieci neuronowej jest opisywany za pomocą acyklicznego grafu skierowanego. Głównym elementem sieci neuronowej jest neuron przetwarzający. W sieci znajduje się wiele neuronów, które posiadają dowolną liczbę wejść i wyjść. Neurony pogrupowane są w warstwy, w których każdy neuron jest połączony z każdym neuronem warstwy poprzedzającej.Wartości zmiennych są zatem przekazywane w sposób postępujący, pomiędzy poszczególnymi warstwami sieci neuronowej. W kolejnym warstwach są wykonywane operacje na zmiennych, aż do osiągnięcia wartości wynikowej na końcu grafu.
  1. Przykładowe zastosowanie:
    • Problemy, w których ciężko dopatrzeć się prostych wzorców.
    • Bankowość inwestycyjna.
  2. Liczba obserwacji: mała (ze względu na długi czas uczenia).
  3. Dokładność algorytmu: wysoka.
  4. Czas uczenia: długi.
  5. Liniowość: nie.

Maszyna wektorów nośnych (ang. Support Vector Machines)

  1. Opis algorytmu
    Algorytm opiera swe działanie na modelu abstrakcyjnej maszyny działającej jak klasyfikator. Jej celem jest oddzielenie obserwacji „granicą” o możliwie największym marginesie. Jeśli klasyfikator nie może znaleźć idealnego podziału, szuka rozwiązania dającego najlepsze rezultaty.
    3SVM najlepiej spisuje się przy problemach dotyczących analizy tekstu i wykrywaniu obrazów. Wymaga niewielkiej ilości pamięci.
  1. Przykładowe zastosowanie:
    • Analiza tekstu (filtry spamu, analiza danych z Twitter, etc., analiza opinii).
  2. Liczba obserwacji: duża.
  3. Dokładność algorytmu: średnia/wysoka (w zależności od typu problemu).
  4. Czas uczenia: krótki.
  5. Liniowość: tak.

Uśredniony perceptron (ang. Averaged Perceptron)

  1. Opis algorytmu
    Uproszczona wersja klasycznej sieci neuronowej. Perceptron składa się z pojedynczego neuronu z regulacją wag. Dzięki swej prostocie eliminuje największą wadę sieci neuronowej – długi czas uczenia. Mimo iż nieco prymitywny, to charakteryzuje się wysoką stabilnością, szybkością oraz liniowością.Kiedy zatem stosować AP? Otóż wszędzie tam, gdzie spotykamy się z mniej skomplikowanymi problemami, przy których zależności pomiędzy poszczególnymi zmiennymi jesteśmy w stanie zdefiniować za pomocą prostych wzorców. Przy bardziej wyrafinowanych problemach warto skorzystać z sieci neuronowej (o ile oczywiście nie odstrasza nas długi czas uczenia 😊).
  1. Przykładowe zastosowanie:
    • Wszędzie tam, gdzie sieć neuronowa jest za wolna.
    • Tam, gdzie mamy do czynienia z dużymi strukturami danych.
  2. Liczba obserwacji: duża.
  3. Dokładność algorytmu: średnia.
  4. Czas uczenia: krótki/średni.
  5. Liniowość: tak

Co z resztą algorytmów?

Zarówno powyższe zestawienie, jak i wariacje drzew decyzyjnych przedstawione w poprzednim wpisie nie wyczerpują oczywiście tematu. Jest jeszcze wiele algorytmów używanych w przypadku problemów klasyfikacyjnych (przykładem może być tu faktoryzacja macierzy opisywana przez Bartłomieja Twardowskiego na jednym ze spotkań Warsaw Data Science Meetup). Starałem się jednak bliżej przyjrzeć tym najpopularniejszym, które są powszechnie dostępne i używane w większości przypadków.

W literaturze natknąłem się na ciekawy koncept dotyczący użycia metod regresyjnych przy problemach klasyfikacji. Bo skoro w przypadku regresji logistycznej używamy wartości ciągłej do podjęcia decyzji binarnej, to czemu nie można użyć do tego regresji liniowej? W teorii jest to możliwe.

Regresja logistyczna zwraca nam wartość z przedziału [0,1] będącą prawdopodobieństwem wystąpienia danego zdarzenia. Najprostszy model zakłada, że jeżeli p(x) > 0.5, to wynik = 1. W przeciwnym wypadku wynik = 0. Teoretycznie można zatem zbudować model oparty o regresję liniową, który będzie wyznaczać wartość „zbliżoną” do [0, 1]. Celowo napisałem „zbliżoną”, gdyż algorytmy regresyjne służą do estymacji wartości numerycznych, a nie wyznaczania prawdopodobieństwa. Wyniki wykraczałyby zatem poza zamknięty przedział [0, 1]. Ciężko byłoby nazwać wynik rzędu p(x) = 1.33 prawdopodobieństwem. Dociekliwe osoby powiedzą: przecież otrzymane wyniki dla badanej próby można znormalizować do wartości [0, 1]. Jest to oczywiście prawdą, ale w rezultacie otrzymamy model zawierający całą masę szumu. Można to porównać do wbijania gwoździ z użyciem kombinerek: teoretycznie da się to zrobić, ale po co, skoro mamy młotek (w tym wypadku algorytmu klasyfikacyjne)?

Podsumowanie

Jestem przekonany, że po przeczytaniu tych kilku akapitów masz już jakieś przemyślenia dotyczące doboru popularnych „klasyfikatorów”. Jeśli tak, to gorąco Cię zachęcam do podzielenia się nimi w komentarzu.

Jeśli uważasz, że artykuł jest wartościowy to proszę podziel się linkiem do niego ze swoimi znajomymi. Będę Ci bardzo wdzięczny 😊

Podobał Ci się ten artykuł?

Jeśli tak, to zarejestruj się, by otrzymywać informacje o nowych wpisach. Dodatkowo w prezencie wyślę Ci bezpłatny poradnik 🙂

4 Komentarze

  1. Super artykuł, dziękuję. W zastosowaniu algorytmów często piszesz „Bankowość inwestycyjna”. a o jaką czynność dokładnie chodzi? prognozowanie, czy warto inwestować czy nie? 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany.


*