Pamiętasz twierdzenie No Free Lunch? Nie, nie chodzi o jedzenie (jeszcze). Ale jeśli jesteś głodny, zrób sobie przekąskę przed przeczytaniem tego wpisu – nie chcę, żebyś ślinił się na całą klawiaturę.

Przypominam – żaden algorytm nie jest optymalny w zbiorze wszystkich możliwych sytuacji. Algorytmy uczenia maszynowego to delikatne instrumenty, które dostrajasz w oparciu o zbiór problemów, szczególnie w nadzorowanym uczeniu maszynowym.

Dzisiaj zobaczymy, jak działają popularne algorytmy klasyfikacji, które pomagają nam np. wyłowić i posortować wspaniałe, soczyste pomidory.

Jak działa klasyfikacja

Na co dzień przewidujemy, czy daną rzecz można odnieść do konkretnej klasy. Dla przykładu, klasyfikacja pomaga nam podejmować decyzje podczas wybierania pomidorów w supermarkecie („zielone”, „doskonałe”, „zgniłe”). W kategoriach uczenia maszynowego przypisujemy etykietę jednej z klas do każdego pomidora, który trzymamy w rękach.

Wydajność twojego konkursu zbierania pomidorów (niektórzy nazwaliby go modelem klasyfikacyjnym) zależy od dokładności jego wyników. Im częściej sam chodzisz do supermarketu (zamiast wysyłać swoich rodziców lub znaczącą osobę), tym lepszy staniesz się w wybieraniu pomidorów, które są świeże i pyszne.

Komputery są takie same! Aby model klasyfikacji nauczył się dokładnie przewidywać wyniki, potrzebuje wielu przykładów szkoleniowych.

4 rodzaje klasyfikacji

4 rodzaje zadań klasyfikacji w uczeniu maszynowym

Binarne

Klasyfikacja binarna oznacza, że istnieją dwie klasy do pracy, które odnoszą się do siebie jako prawda i fałsz. Wyobraź sobie, że masz ogromny lug box przed sobą z żółtymi i czerwonymi pomidorami. Ale, twój wymyślny włoski przepis na makaron mówi, że potrzebujesz tylko czerwonych.

Co robisz? Oczywiście, używasz kodowania etykiet i w tym przypadku przypisujesz 1 do „czerwone” i 0 do „nie czerwone”. Sortowanie pomidorów nigdy nie było łatwiejsze.

Klasyfikacja binarna

Klasyfikacja wieloklasowa

Co widzisz na tym zdjęciu?

pomidory

Czerwone pomidory beefsteak. Pomidory koktajlowe. Pomidory koktajlowe. Pomidory Heirloom.

Nie ma tu czerni i bieli, „normalnych” i „nienormalnych” jak w klasyfikacji binarnej. Zapraszamy wszystkie rodzaje wspaniałych warzyw (lub jagód) na nasz stół.

To, czego prawdopodobnie nie wiesz, jeśli nie jesteś fanem gotowania z pomidorami, to fakt, że nie wszystkie pomidory są równie dobre do tego samego dania. Czerwone pomidory beefsteak są idealne do salsy, ale nie marynuje się ich. Pomidory koktajlowe sprawdzają się w sałatkach, ale nie w makaronach. Dlatego ważne jest, aby wiedzieć, z czym ma się do czynienia.

Klasyfikacja wieloklasowa pomaga nam posortować wszystkie pomidory ze skrzynki, niezależnie od tego, ile jest klas.

Klasyfikacja wieloklasowa

Multi-label

Klasyfikacja wieloklasowa jest stosowana, gdy jedno dane wejściowe mogą należeć do więcej niż jednej klasy, jak osoba, która jest obywatelem dwóch krajów.

Aby pracować z tym typem klasyfikacji, musisz zbudować model, który może przewidywać wiele danych wyjściowych.

Potrzebujesz klasyfikacji multi-label do rozpoznawania obiektów na zdjęciach. Na przykład, gdy musisz zidentyfikować nie tylko pomidory, ale także różne inne rodzaje obiektów na tym samym obrazie: jabłka, cukinie, cebule itp.

Ważna uwaga dla wszystkich miłośników pomidorów: Nie można po prostu wziąć algorytmu klasyfikacji binarnej lub wieloklasowej i zastosować go bezpośrednio do klasyfikacji wieloznakowej. Ale możesz użyć:

Klasyfikacja wieloznakowa

Możesz również spróbować użyć oddzielnego algorytmu dla każdej klasy, aby przewidzieć etykiety dla każdej kategorii.

Zrównoważona

Pracujemy z klasyfikacją niezrównoważoną, gdy przykłady w każdej klasie są nierówno rozłożone.

Klasyfikacja niezrównoważona jest używana w oprogramowaniu do wykrywania oszustw i diagnostyce medycznej. Znalezienie rzadkich i wykwintnych biologicznie uprawianych pomidorów, które są przypadkowo rozlane w dużym stosie pomidorów z supermarketu, jest przykładem niezrównoważonej klasyfikacji oferowanej przez Gintsa, naszego wspaniałego redaktora (jeśli masz jakieś inne przykłady, zatweetuj je do nas).

Klasyfikacja niezrównoważona

Polecam odwiedzić fantastyczny blog Machine Learning Mastery, gdzie można przeczytać o różnych typach klasyfikacji i przestudiować wiele innych materiałów z zakresu uczenia maszynowego.

Kroki budowy modelu klasyfikacyjnego

Gdy już wiesz, z jakim zadaniem klasyfikacyjnym masz do czynienia, czas zbudować model.

  1. Wybierz klasyfikator. Musisz wybrać jeden z algorytmów ML, który zastosujesz do swoich danych.
  2. Trenuj go. Musisz przygotować zestaw danych treningowych z etykietowanymi wynikami (im więcej przykładów, tym lepiej).
  3. Predaguj dane wyjściowe. Użyj modelu, aby uzyskać pewne wyniki.
  4. Ewaluacja modelu klasyfikatora. Dobrym pomysłem jest przygotowanie zbioru walidacyjnego danych, których nie używałeś w treningu, aby sprawdzić wyniki.

Przyjrzyjrzyjmy się teraz najczęściej używanym algorytmom klasyfikacji.

Najpopularniejsze algorytmy klasyfikacji

częste algorytmy klasyfikacji

Scikit-Learn jest jedną z najlepszych bibliotek ML dla Pythona. Więc jeśli chcesz zbudować swój model, sprawdź to. Zapewnia ona dostęp do szeroko stosowanych klasyfikatorów.

Regresja logistyczna

Regresja logistyczna jest używana do klasyfikacji binarnej.

Algorytm ten wykorzystuje funkcję logistyczną do modelowania prawdopodobieństwa wystąpienia wyniku. Jest on najbardziej przydatny, gdy chcemy zrozumieć, jak kilka niezależnych zmiennych wpływa na pojedynczą zmienną wynikową.

Przykładowe pytanie: Czy poziomy opadów i skład gleby doprowadzą do dobrobytu pomidora lub jego przedwczesnej śmierci?

Regresja logistyczna ma ograniczenia; wszystkie predyktory powinny być niezależne i nie powinno być brakujących wartości. Ten algorytm zawiedzie, gdy nie ma liniowej separacji wartości.

Naive Bayes

Algorytm Naive Bayes jest oparty na twierdzeniu Bayesa. Możesz zastosować ten algorytm do klasyfikacji binarnej i wieloklasowej oraz klasyfikować dane na podstawie wyników historycznych.

Przykładowe zadanie: Muszę oddzielić zgniłe pomidory od świeżych na podstawie ich wyglądu.

Zaletami Naive Bayes jest to, że algorytmy te są szybkie w budowie: nie wymagają obszernego zbioru treningowego i są również szybkie w porównaniu z innymi metodami. Jednakże, ponieważ wydajność algorytmów Bayesian zależy od dokładności jego silnych założeń, wyniki mogą potencjalnie okazać się bardzo złe.

Używając twierdzenia Bayesa, można powiedzieć, jak wystąpienie zdarzenia wpływa na prawdopodobieństwo innego zdarzenia.

k-Najbliżsi sąsiedzi

kNN oznacza „k-najbliższych sąsiadów” i jest jednym z najprostszych algorytmów klasyfikacji.

Algorytm ten przypisuje obiekty do klasy, do której należy większość jego najbliższych sąsiadów w wielowymiarowej przestrzeni cech. Liczba k jest liczbą sąsiednich obiektów w przestrzeni cech, które są porównywane z klasyfikowanym obiektem.

Przykład: Chcę przewidzieć gatunek pomidora na podstawie gatunków pomidorów podobnych do niego.

Aby sklasyfikować dane wejściowe za pomocą k-najbliższych sąsiadów, należy wykonać zestaw czynności:

  • Oblicz odległość do każdego z obiektów w próbce treningowej;
  • Wybierz k obiektów z próbki treningowej, do których odległość jest minimalna;
  • Klasą klasyfikowanego obiektu jest klasa, która występuje najczęściej wśród k-najbliższych sąsiadów.

Drzewo decyzyjne

Drzewa decyzyjne są prawdopodobnie najbardziej intuicyjnym sposobem wizualizacji procesu podejmowania decyzji. Aby przewidzieć etykietę klasy danych wejściowych, zaczynamy od korzenia drzewa. Musisz podzielić przestrzeń możliwości na mniejsze podzbiory w oparciu o regułę decyzyjną, którą masz dla każdego węzła.

Tutaj jest przykład:

przykład drzewa decyzyjnego

Przerywasz przestrzeń możliwości aż do osiągnięcia dolnej części drzewa. Każdy węzeł decyzyjny ma dwie lub więcej gałęzi. Liście w powyższym modelu zawierają decyzję o tym, czy dana osoba jest lub nie jest zdatna.

Przykład: Masz koszyk różnych pomidorów i chcesz wybrać właściwy, aby wzbogacić swoje danie.

Typy drzew decyzyjnych

Istnieją dwa typy drzew. Są one oparte na naturze zmiennej docelowej:

  • Drzewo decyzyjne zmiennej kategorycznej.
  • Drzewo decyzyjne zmiennej ciągłej.

Dlatego drzewa decyzyjne działają całkiem dobrze zarówno z danymi numerycznymi, jak i kategorycznymi. Kolejnym plusem stosowania drzew decyzyjnych jest to, że wymagają one niewielkiego przygotowania danych.

Drzewa decyzyjne mogą jednak stać się zbyt skomplikowane, co prowadzi do przepasowania. Istotną wadą tych algorytmów jest to, że małe zmiany w danych treningowych czynią je niestabilnymi i prowadzą do powstania zupełnie nowych drzew.

Las losowy

Klasyfikatory lasu losowego wykorzystują kilka różnych drzew decyzyjnych na różnych podpróbkach zbiorów danych. Średni wynik jest brany pod uwagę jako prognoza modelu, co poprawia ogólną dokładność predykcyjną modelu i zwalcza nadmierne dopasowanie.

W konsekwencji, lasy losowe mogą być używane do rozwiązywania złożonych problemów uczenia maszynowego bez uszczerbku dla dokładności wyników. Niemniej jednak, wymagają one więcej czasu na utworzenie predykcji i są trudniejsze do wdrożenia.

Czytaj więcej o tym, jak działają lasy losowe na blogu Towards Data Science.

Support Vector Machine

Support vector machines używają hiperpłaszczyzny w N-wymiarowej przestrzeni do klasyfikacji punktów danych. N jest tutaj liczbą cech. Może to być w zasadzie dowolna liczba, ale im jest ona większa, tym trudniej zbudować model.

Można sobie wyobrazić hiperpłaszczyznę jako linię (dla przestrzeni dwuwymiarowej). Po przekroczeniu przestrzeni 3-wymiarowej staje się nam trudno zwizualizować model.

Punkty danych, które mieszczą się po różnych stronach hiperpłaszczyzny są przypisywane do różnych klas.

Przykład: Automatyczny system, który sortuje pomidory na podstawie ich kształtu, wagi i koloru.

Wybrana przez nas hiperpłaszczyzna bezpośrednio wpływa na dokładność wyników. Szukamy więc płaszczyzny, która ma maksymalną odległość między punktami danych obu klas.

SVM pokazują dokładne wyniki przy minimalnej mocy obliczeniowej, gdy masz dużo cech.

Podsumowanie

Jak widać, uczenie maszynowe może być tak proste, jak zbieranie warzyw w sklepie. Ale jest wiele szczegółów, o których należy pamiętać, jeśli nie chcesz tego zepsuć. Bądź na bieżąco z naszym blogiem, Twitterem i Medium, aby dowiedzieć się więcej o uczeniu maszynowym.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.