Model predykcyjny i siła separacji klas - czyli ocena jakości klasyfikacji (część 4)

Ze statystyk odwiedzin wynika, że cykl "Ocena jakości klasyfikacji" cieszy się Waszym zainteresowaniem - zatem wracam do tej tematyki. Dziś przedstawię wstęp do analizy jakości modeli predykcyjnych, skupiając się na jednym tylko aspekcie jakości - tzn. na sile modelu w kontekście separacji klas. Zapraszam 🙂

Jakość modelu predykcyjnego

Matematyka dostarcza wielu różnych miar służących ocenie siły modelu predykcyjnego. Różne miary są często ze sobą mocno powiązane, i choć przedstawiają bardzo podobne informacje, umożliwiają spojrzenie na zagadnienie z innych perspektyw. Przez jakość modelu predykcyjnego rozumiemy typowo ocenę jakości w trzech obszarach:

  1. Analiza siły separacji klas - czyli jak dalece wskazania modelu są w stanie "rozdzielić" faktycznie różne klasy pozytywny i negatywne;
  2. Analiza jakość estymacji prawdopodobieństwa - bardzo ważne w sytuacjach wymagających oceny wartości oczekiwanych, tzn. poszukujemy wszelkiego rodzaju obciążeń (inaczej - błędów systematycznych);
  3. Analiza stabilności w czasie - kluczowy aspekt rzutujący na możliwość wykorzystywania modelu w faktycznych przyszłych działaniach.

Wszystkie wymienione obszary są ze sobą powiązane terminem prawdopodobieństwa, za pomocą którego można wyrazić zarówno siłę separacji, jak też stabilność w czasie.

Założenia

Podobnie do poprzednich część cyklu załóżmy, że rozważamy przypadek klasyfikacji binarnej (dwie klasy: "Pozytywna - 1" oraz "Negatywna  - 0"). Załóżmy ponadto, że dysponujemy modelem predykcyjnym p zwracającym prawdopodobieństwo p(1|x) przynależności obserwacji x do klasy "Pozytywnej  -1" (inaczej "P od 1 pod warunkiem, że x"). I jeszcze ostatnie założenie, wyłącznie dla uproszczenia wizualizacji i obliczeń - dotyczy rozmiaru klasy pozytywnej - ustalmy, że jej rozmiar to 20%, inaczej, że prawdopodobieństwo a-priori P(1)=0.2.

Model predykcyjny a siła separacji klas - nieskumulowane prawdopodobieństwo

Poniżej przedstawiamy różne przypadki wizualnej oceny siły modelu. Interpretacja zamieszczonych wykresów jest następująca:

  • Oś pozioma reprezentuje kolejne segmenty populacji, tu zostały użyte decyle bazy względem zwracanej wartości prawdopodobieństwa przez model. Zatem 1 decyl agreguje 10% populacji z największym estymowanym prawdopodobieństwem, kolejne decyle - analogicznie.
  • Oś pionowa przedstawia prawdopodobieństwo warunkowe, że obserwacja z danego segmentu populacji (tutaj decyl bazy) faktycznie pochodzi z klasy "Pozytywnej - 1".

Model - nieskumulowane prawdopodobieństwo - brak separacji klas

Naturalnym jest, że model predykcyjny posiadający dodatnią siłę separacji klas, wykorzystany do podziału populacji na segmenty względem wartości malejącej (tutaj 10 decyli), powinien wpłynąć na faktyczną częstość obserwacji klasy "Pozytywnej - 1". Tzn. w pierwszych decylach powinniśmy widzieć więcej klasy "1" - kolejne przykłady właśnie to obrazują.

Model - nieskumulowane prawdopodobieństwo - niska separacja klas

Model - nieskumulowane prawdopodobieństwo - wysoka separacja klas

Dla każdego przypadku klasyfikacji istnieje również teoretyczny model idealny, z możliwie najwyższą siłą separacji klas. Tak model się "nie myli", co obrazuje poniższy schemat.

Model - nieskumulowane prawdopodobieństwo - maksymalna separacja klas

Inne "nietypowe" przypadki (jednak czasami spotykane w praktyce) to modele z ujemną korelacją w stosunku do targetu.

Model - nieskumulowane prawdopodobieństwo - ujemna separacja klasOstatecznie możliwy jest również wariant "mieszany", obserwowany często po długim czasie wykorzystywania modelu, bez jego aktualizacji, w wyniku zmian w danych, błędów w danych, zmian definicji klas (tzw, targetu), itp.

model_wariant_mieszany

Model predykcyjny a siła separacji klas - nieskumulowany lift

Lift jest normalizacją oceny prawdopodobieństwa do rozmiaru klasy pozytywnej, czyli do rozmiaru reprezentowanego przez prawdopodobieństwo a-priori P(1). Lift powstaje przez podzielenie wartości prawdopodobieństwa właściwej dla segmentu przez prawdopodobieństwo a-priori. W ten sposób powstaje naturalna interpretacja liftu, jako krotności w stosunku do modelu losowego (czyli modeli bez separacji klas):

  • lift < 1 - mniejsza częstość "klasy 1" niż średnio w populacji
  • lift = 1 - częstość "klasy 1" na średnim poziomie dla populacji
  • lift > 1 - większa częstość "klasy 1" niż średnio w populacji

Poniżej prezentacja graficzna

Model - nieskumulowany lift - brak separacji klas

Model - nieskumulowany lift - niska separacja klas

Model - nieskumulowany lift - wysoka separacja klas

Model - nieskumulowany lift - maksymalna separacja klas

Model - nieskumulowany lift - ujemna separacja klas

model_lift_wariant_mieszany

Pozdrowienia,

Mariusz Gromada

 

 

Model predykcyjny i punkt odcięcia (cut-off point) - czyli ocena jakości klasyfikacji (część 3)

W poprzednich częściach omówiliśmy sposób tworzenia macierzy błędu oraz podstawowe miary oceny jakości klasyfikacji: czułość (TPR), specyficzność (TNR), precyzję przewidywania pozytywnego (PPV), precyzję przewidywania negatywnego (NPV). Opisane miary określone są dla klasyfikatora binarnego (klasyfikacja pozytywna bądź negatywna), jednak w praktyce najczęściej stosuje się modele predykcyjne z ciągłą zmienną odpowiedzi (np. estymator prawdopodobieństwa skorzystania z produktu, gdzie wynikiem działania modelu jest wartość z przedziału [0, 1] interpretowana właśnie jako wspomniane prawdopodobieństwo określane również skłonnością).

Model predykcyjny

Dla lepszego zrozumienia załóżmy, że analizujemy bazę n-klientów oznaczonych odpowiednio x_1, x_2, \ldots, x_n. Model predykcyjny to np. funkcja (estymator) zwracająca dla każdego klienta właściwe dla niego prawdopodobieństwo zakupienia produktu - oznaczmy więc fakt zakupienia produktu klasą pozytywną "1". Teraz możemy podać bardziej formalne określenie - zatem model predykcyjny to estymator prawdopodobieństwa warunkowego p(1|x_i), że wystąpi zakup produktu (klasa "1"), pod warunkiem, że zaobserwujemy cechy klienta x_i.

p(1| \cdot ) : \{x_1, x_2, \ldots, x_n\} \to [0;1]

x_i\mapsto p(1| x_i ) \in [0;1]

Obserwacja cech klienta, a nie samego klienta, jest tu niezwykle istotna. Mianowicie danego klienta mamy dokładnie jednego, natomiast klientów o tych samych / podobnych cechach (np. miejsce zamieszkania, wiek, itp.) możemy posiadać wielu, co dalej umożliwia wnioskowanie indukcyjne, a w wyniku otrzymanie upragnionego modelu 🙂 .

Segment wysokiej skłonności

Typowo mniejszość klientów charakteryzuje się "wysoką" skłonnością, natomiast "średnia" i "niska" skłonność jest przypisywana do znacznie większej części bazy. Łatwo to uzasadnić - zazwyczaj w określonym okresie czasu produkt kupuje maksymalnie kilka procent bazy klientów. Jeśli model predykcyjny posiada faktyczną wartość predykcyjną, wysokie prawdopodobieństwo przypisze do relatywnie niewielkiej części klientów. Idąc dalej - im lepszy model, tym segment o wysokiej skłonności jest mniejszy i bliższy rozmiarem do oszacowania pochodzącego ze średniej sprzedaży mierzonej dla całej analizowanej bazy klientów (tzw. oszacowanie a-priori).

Model predykcyjny i punkt odcięcia

Punkt odcięcia (cut-off point)

Zadaniem punktu odcięcia jest stworzenie na bazie ciągłej zmiennej odpowiedzi (np. szacowanego prawdopodobieństwa) segmentów (klas) - dla uproszczenia załóżmy, że dwóch (jeden punkt odcięcia). Oznaczmy przez p_0 \in [0;1] punkt rozgraniczający segment wysokiej skłonności od segmentów średniej i niskiej skłonności. Jeśli szacowane prawdopodobieństwo p(1|x_i) \geq p_0 klientowi x_i przypiszemy klasę pozytywną "1", w przeciwnym wypadku klientowi przypisujemy klasę negatywną "0".

W powyższy sposób z "ciągłego" modelu predykcyjnego otrzymaliśmy klasyfikator binarny - co, w zestawieniu z faktycznymi zdarzeniami zakupu, umożliwia utworzenie macierzy błędu i wyznaczenie wszystkich istotnych miar oceny jakości dokonanej klasyfikacji.

Ale jak dobrać punkt odcięcia? O tym w następnej części 🙂

Pozdrowienia,

Mariusz Gromada

Analiza dyskryminacyjna, Drzewa klasyfikacyjne, Klasyfikatory SLIQ i SPRINT

Analiza dyskryminacyjna

Temat pracy dotyczy problemu dyskryminacji oraz budowy drzew klasyfikacyjnych w kontekście ich przydatności do rozwiązywania zadań o dużym wymiarze prób losowych i/lub dużym wymiarze wektora obserwacji, w których podstawowego znaczenia nabiera złożoność obliczeniowa drzewa. Radzenie sobie z dużymi zbiorami danych wymaga konstrukcji specjalnych technik sortowania danych w trakcie budowy drzewa, kodowania, organizacji wzrostu i przycinania drzewa. Wymaga także zrównoleglenia obliczeń. Przedmiotem pracy jest sformułowanie modelu analizy dyskryminacyjnej oraz analiza możliwych rozwiązań podanych zagadnień, wraz z implementacją jednego z nich.

W pierwszym rozdziale omawiam problem dyskryminacji pod nadzorem, nazywanej analizą dyskryminacyjną, wprowadzając formalny model klasyfikacyjny osadzony w przestrzeni probabilistycznej.

Rozdział drugi poświęcony jest budowie drzew klasyfikacyjnych, gdzie ze szczególną uwagą potraktowano problem złożoności i skalowalności. Rozdział wprowadza formalną definicję drzewa klasyfikacyjnego w oparciu o podstawy teorii grafów oraz o model klasyfikacyjny przedstawiony w rozdziale pierwszym. Dodatkowo omawiam nowatorską technikę przycinania drzew wykorzystującą zasadę minimalnej długości kodu, MDL - Minimum Description Length (M. Mehta, J. Rissanen, R. Agrawal, 1995).

W rozdziale trzecim i czwartym skupiam się na przedstawieniu indukcji drzew decyzyjnych metodą Supervised Learning in Quest - SLIQ (M. Mehta, R. Agrawal, J. Rissanen, 1996) oraz Scalable Parallelizable Induction of Decision Trees - SPRINT (J.C. Shafer, R. Agrawal, M. Mehta, 1996).

Rozdział piąty prezentuje implementację klasyfikatora SLIQ wraz z implementacją przycinania drzew metodą MDL. Implementację przeprowadziłem we współpracy z Instytutem Podstaw Informatyki Polskiej Akademii Nauk w ramach rozwoju pakietu "dmLab". Tekst rozdziału zawiera również analizę złożoności czasowej i skalowalności implementacji.

Pracę kończą dodatki A i B, w których zebrałem podstawowe pojęcia wykorzystane w tekście z topologii, teorii miary, probabilistyki oraz teorii grafów.

Praca została przygotowana pod opieką Pana Profesora Jacka Koronackiego. Serdecznie zapraszam do lektury 🙂

Drzewa klasyfikacyjne - ich budowa, problemy złożoności i skalowalności.

Pozdrowienia,

Mariusz Gromada