728 x 90

i

Czym jest klasyfikacja i czemu jest ważna?

Czym jest klasyfikacja i czemu jest ważna?

Żyjemy w czasach, w których codziennie powstają olbrzymie ilości nowych danych. Ich źródłem jest bieżąca działalność przedsiębiorstw i instytucji takich jak banki, placówki handlowe, administracja publiczna czy ośrodki naukowe. Głównym miejscem powstawania nowych danych jest jednak internet. Usługi takie jak: portale społecznościowe, serwisy informacyjne czy sklepy internetowe generują codziennie gigantyczne ilości danych. Szacuje się, że od roku 2005 do 2020 „rozmiar internetu” wzrośnie 300-krotnie osiągając około 40 zettabajtów. [1]

Rozwój technologii informatycznych umożliwił nam przechowywanie i udostępnianie tak ogromnych ilości danych. Problem stanowi ich efektywne przetwarzanie i analizowanie. W odpowiedzi na to powstała i zaczęła się intensywnie rozwijać nowa dziedzina nauki – eksploracja danych (ang. data-mining). Jest to dziedzina interdyscyplinarna łącząca w sobie techniki i metody pochodzące ze: statystyki, uczenia maszynowego, sztucznej inteligencji, baz danych i wielu innych dyscyplin nauki. Celem eksploracji danych jest odkrywanie nowych powiązań i wzorców w dużych zbiorach danych.

Jednym z najczęściej rozważanych problemów eksploracji danych jest klasyfikacja. Zadanie klasyfikacji polega na przypisaniu obiektów do z góry określonych klas (kategorii). Jest to przykład uczenia nadzorowanego (ang. supervised learning). Wymagany jest pewien zbiór uczący czyli zbiór obiektów, które zostały poprawnie przydzielone do odpowiednich klas. Algorytm klasyfikacyjny na podstawie zbioru uczącego, buduje klasyfikator czyli funkcję, która będzie przypisywać klasę nowym obiektom.

Przykłady zadań klasyfikacyjnych można znaleźć w praktycznie każdej dziedzinie życia. Załóżmy, że chcemy zaciągnąć kredyt w banku. W tym celu zwykle musimy wypełnić odpowiedni formularz, w którym podajemy dane o wykonywanym zawodzie, zarobkach, naszej sytuacji rodzinnej, historii kredytowej itp. Wykwalifikowany pracownik banku na podstawie tych danych ocenia, czy udzielenie nam kredytu wiąże się z dużym czy małym ryzykiem. Przy podejmowaniu decyzji kieruje się własnym doświadczeniem oraz danymi historycznymi o klientach i spłaconych przez nich kredytach.

Pojawia się naturalne pytanie, czy zadanie to może zostać wykonane automatycznie, innymi słowy czy pracownika banku może zastąpić odpowiedni algorytm? Okazuje się, że jest to możliwe, jeżeli dostarczymy mu wystarczająco duży i różnorodny zbiór danych uczących. Algorytm klasyfikacyjny jest w stanie wykryć zależności pomiędzy cechami klientów, a tym jak spłacają swoje kredyty, inaczej mówiąc „nauczyć się”, które kombinacje cech klienta wiążą się z dużym, a które z małym ryzykiem kredytowym. Opierając się na odkrytych zależnościach możemy zaklasyfikować nowych klientów do odpowiedniej kategorii ryzyka.

Innym przykładem automatycznego klasyfikatora, z którego korzystamy na co dzień jest filtr antyspamowy. Klasyfikuje on przychodzące do nas wiadomości do jednej z dwóch kategorii: spam lub nie-spam. Istnieje bardzo wiele technik anstyspamowych, do najczęściej stosowanych należy statystyczna analiza treści, która wykorzystuje fakt iż pewne słowa lub kombinacje słów występujących w wiadomości zwiększają prawdopodobieństwo, że jest ona spamem. Algorytmy tego typu są w stanie dostosowywać się do specyfiki użytkownika. Na początku zwykle wymagają naszej ingerencji, tzn. musimy ,,ręcznie” oznaczyć pewną liczbę wiadomości (jako spam lub nie-spam), jednak dość szybko uczą się i osiągają zadowalającą skuteczność.

Co to znaczy zadowalająca skuteczność klasyfikatora? Jak mierzyć jakość jego działania? Może nam w tym pomóc tzw. macierz pomyłek. Przedstawia ona podsumowanie działania klasyfikatora na pewnym zbiorze testowym. Jej komórki uzupełnia się liczbami prawidłowych i błędnych klasyfikacji. Załóżmy, że zadanie klasyfikacji polega na stwierdzeniu czy badana wiadomość jest spamem. Tabela poniżej, uzupełniona przykładowymi danymi, informuje o prawidłowej klasyfikacji 32 wiadomości należących do spamu i 14 wiadomości nie będących spamem. Jeden obiekt ze zbioru testowego został rozpoznany niewłaściwie jako spam, podczas gdy powinna być mu przypisana etykieta nie-spam, a 3 obiekty zaklasyfikowano jako nie-spam, podczas gdy właściwa im etykieta to spam.

Zwróćmy uwagę, że postać macierzy pomyłek, zależy istotnie od zbioru testowego, na innych danych wyniki mogłyby by się różnić. Warto podkreślić, że do testowania klasyfikatora należy używać danych, które nie były wykorzystywane w procesie jego uczenia. Dobry klasyfikator powinien radzić sobie również z danymi, których wcześniej ,,nie widział”.

Jak na podstawie tej macierzy ocenić jakość klasyfikatora? Najprościej obliczyć ile obiektów zostało sklasyfikowanych poprawnie i podzielić to przez liczbę wszystkich obiektów. W naszym przypadku zbiór testowy składał się z 50 wiadomości, a poprawnie zostało zaklasyfikowane 46 z nich, Daje nam to trafność (ang. accuracy) 46/50=92%.

Na podstawie macierzy pomyłek oblicza się również inne miary jakości:

  • czułość (ang. sensitivity lub recall) – odsetek poprawnie sklasyfikowanych przypadków pozytywnych,
  • swoistość (ang. specificity) – odsetek poprawnie sklasyfikowanych przypadków negatywnych.

W naszym przypadku czułość wynosi 32/35 czyli około 91% (ponieważ 32 z 35 wiadomości typu spam zostało zaklasyfikowanych poprawnie), a swoistość 14/15 czyli około 93% (ponieważ 14 z 15 wiadomości typu nie-spam zostało zaklasyfikowanych poprawnie). Te dwa parametry są ze sobą powiązane. Najczęściej poprawa czułości klasyfikatora powoduje pogorszenie jego swoistości i odwrotnie. Jeżeli na przykład zmienimy ustawienia naszego filtra, tak aby wykrywał większy odsetek spamu (czyli poprawimy czułość), najprawdopodobniej do spamu częściej będą trafiać również pożądane maile. I odwrotnie jeżeli ustawimy parametry tak, aby zabezpieczyć się przed uznawaniem za spam pożądanych maili (czyli poprawimy swoistość) najprawdopodobniej w skrzynce znajdziemy więcej spamu.

Celem tego artykułu było wprowadzenie czytelnika w tematykę klasyfikacji obiektów, a nie opisywanie konkretnych algorytmów klasyfikacyjnych. Wymieńmy jednak na koniec nazwy kilku z nich:

  • naiwny klasyfikator Bayesa,
  • metoda k-najbliższych sąsiadów,
  • drzewa decyzyjne,
  • sieci neuronowe,
  • maszyny wektorów nośnych (SVM).

Wykorzystują one rozmaite metody: zwykłe wyszukiwanie najbardziej podobnych obiektów w w zbiorze uczącym (metoda k-najbliższych sąsiadów), zaawansowane techniki optymalizacyjne (algorytm SVM), czy aparat rachunku prawdopodobieństwa (naiwny klasyfikator Bayesa). Algorytmy te są wciąż rozwijane, znajdują też nowe zastosowania takie jak klasyfikacja obrazów, rozpoznawanie mowy, obrazowanie medyczne i wiele innych.

 

Przypisy

[1] John Gantz, David Reinsel, THE DIGITAL UNIVERSE IN 2020: Big Data, Bigger Digital Shadows, and Biggest Growth in the Far East, 2012.

[2] Obrazy i tabele: opracowanie własne

Leave a Comment

Your email address will not be published. Required fields are marked with *

Cancel reply

Inne artykuły