![]() |
Wolfram Language Machine Learning Uczenie nadzorowane, klasyfikacja i predykcja |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Funkcje Classify i Predict realizują procedury uczenia nadzorowanego,bazującego na danych ze zbioru uczącego. Efektem pracy tych procedur jest przypisanie obiektu do jednej z klas lub przyporządkowanie wartości liczbowej funkcji ciągłej. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Komenda Classify Zbiór uczący Proces uczenia Prawdopodobieństwo decyzji Metody uczenia klasyfikatora Parametry klasyfikatora |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Funkcja Classify użyta z jednym argumentem generuje funkcję klasyfikatora ClassifierFunction. Argument ten może mieć złożoną postać i na ogół ma postać listy obiektów zbioru uczącego. Wywołana z dwoma argumentami dokonuje klasyfikacji obiektu będącego drugim argumentem wywołania funkcji. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Składnia komendy Classify Komenda Classify może pracować w dwóch trybach, tryb uczenia klasyfikatora i tryb klasyfikacji. W pierwszym trybie na podstawie dostarczonego zbioru uczącego tworzona jest funkcja klasyfikatora, która następnie w drugim trybie pracy komendy wykorzystywana jest do klasyfikacji nowych obiektów. Generowanie funkcji klasyfikatora
Klasyfikacja obiektów
Dopuszczalny jest wywołanie obu trybów w jednym uruchomieniu komendy. Wtedy dostarczane są dwa argumenty, obiekty zbioru uczącego oraz obiekty do klasyfikacji po zakończeniu procedury uczenia. Generowanie funkcji klasyfikatora i klasyfikacji obiektów
Procedura Classify może być użyta do dowolnej klasy obiektów. Zbiór uczący może zawiera proste zmienne liczbowe lub tekstowe, obrazy czy dźwieki. Dopuszczalne też są dowolne kombinacje wymienionych obiektów. Procedura uczenia kończy sie zawsze wygenerowaniem funkcji klasyfikatora, która następnie jest używana do klasyfikacji nowych obiektów. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wyznaczanie funkcji klasyfikatora jest procesem uczenia modelu, w którym musi być dostarczony zestaw danych uczących, zbiór uczący. Zbiór uczący dokonuje przyporządkowania obiektów zbioru do określonych klas. Najczęściej ma formę listy reguł przyporządkowania List of rules. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rozpoznawanie cyfr pisanych ręcznie Poniżej zaprezentowany został zbiór uczący dla klasyfikatora rozpoznającego cyfry pisma ręcznego. Pokazano podzbiór pełnego zestawy dostępnego na serwerze firmy Wolfram dla użytkowników programu Mathematica. Do zbioru uczącego przechowywanego w zmiennej cyfryPismaRecznego wybranych zostało 100 próbek pisma ręcznego.
Poniżej prezentowane są wybrane próbki pisma ręcznego w formie przewijanego panelu, ale interaktywne przewijanie jest dostępne w Mathematica Notebook lub w pliku CDF.
Lista przypadków zbioru uczącego
Zbiór uczący ma formę listy reguł, które do obiektu
Typ obiektu i symbolu klasy Pierwszym elementem listy cyfryPismaRecznego jest cyfra 2, co widać poniżej. Każdy element tej listy jest regułą przypisującą cyfrę od 0 do 9 do obrazów pisma ręcznego. Druga z komend poniżej sprawdza jaki jest typ obiektów po obu stronach znaku reguły przypisania →. Pierwszy obiekt to obraz (Image), a drugi jest wielkością typu Integer.
Poniżej pokazano sprawdzenie jak wygląda pełna lista klas, oraz pokazano długość tej listy, czyli liczbę klas. Wyniki nie wymagają komentarza.
Za pomocą funkcji Grid wyświetlony został poniżej pełny zestaw zbioru uczącego, który w dalszych częściach posłuży do uczenia klasyfikatora.
Profilowanie kredytobiorców Innym praktycznym przykładem zbioru uczącego jest zbiór danych na podstawie których możliwa jest ocena ryzyka kredytowego. Jest prosty przykład tego co w instytucjach bankowych nazywane jest profilowaniem kredytobiorców. Zmienna o nazwie daneKlasyfikacjiKlientow zawiera informacje o klientach banku. Pierwszych pięć kolumn to dane o kliencie (przedział wieku, informacja o zatrudnieniu, staż pracy w latach, średnia miesięczna płaca, kod celu kredytu). Kolumna ostatnia jest oceną ryzyka kredytowego.
Wielkość zbioru uczącego można wyznaczyć jako liczbę elementów listy daneKlasyfikacjiKlientow. Zbiór uczący będzie w tym przypadku przypisywał wartość ostatniej kolumny do listy zawierającej wartości z pierwszych pięciu kolumn.
Przykłady dostępnych zbiorów uczących Poprzez Wolfram Cloud dostępne są dane różnych kategorii, które moga być wykorzystane jako dane do uczenia klasyfikatorów. Poniżej pokazany jest zestaw danych dostępnych w grupie MachineLearning. Opis zawartości każdego zestawu danych podany jest ponizej w tabeli.
Duże litery alfabetu angielskiego Zestaw o nazwie “UCILetter” zawiera 20 tysięcy próbek pisma ręcznego dla dużych liter alfabetu angielskiego.
Ręcznie pisane cyfry Zestaw “MNIST” to 70 tysięcy próbek pisma ręcznego dla dziesięciu cyfr arabskich. Omawiana na wstępie zawartość zbioru uczącego zawierającego 100 próbek cyfr pisma ręcznego stanowi podzbiór tego zestawu danych.
Opis przykładowych zbiorów danych Poniżej zaprezentowany został oryginalny opis zestawów dostępnych danych, które mogą być wykorzystane w procedurach uczenia klasyfikatorów.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rozpoznawanie cyfr pisanych ręcznie Zbiór uczący Przypomnienie, że zbiorem uczącym jest próbka 100 cyfr pisanych ręcznie, podzielona na 10 klas, czyli cyfr arabskich
Podstawowa składnia komendy
Bieżąca wizualizacja postępów uczenia Podczas procesu uczenia wyświetlany jest panel informujący o postępie procesu i wyświetlający jego podstawowe parametry.
Proces uczenia jako wstęp do klasyfikacji Komenda zastosowana do klasyfikacji nowego obiektu z wykorzystaniem funkcji klasyfikatora wyznaczonej wcześniej, ale w tym samym wywołaniu komendy Classify. Pierwszy argument to zbiór uczący, a drugi to nowy obiekt, który zostanie poddany klasyfikacji po zakończeniu procesu uczenia.
Profilowanie kredytobiorców Zbiór danych uczących Przypomnienie postaci zbioru uczącego, w którym pięć pierwszych kolumn to dane opisujące obiekt, a kolumna szósta jest oceną ryzyka kredytowego.
Generowanie klasyfikatora Generowanie funkcji klasyfikatora ze wskazaniem pozycji identyfikatora klasy. Ponieważ zbiór uczący nie ma w tym przypadku formy listy reguł, a jest zwykłą listą podlist, z których każda podlista opisuje jeden obiekt zbioru uczącego, więc w składni komendy wskazane jest, który element podlisty stanowi opis klasy. W tym wypadku jest to szósty element, który zawiera ocenę ryzyka. Procedura Classify generuje funkcję klasyfikatora przypisaną do zmiennej o nazwie klasyfikatorKlientow.
Poniżej pokazane zostało użycie wygenerowanej w poprzednim kroku funkcji klasyfikatora to oceny ryzyka dla nowego przypadku.
Jak się okazuje, osoba młoda, bezrobotna stanowi duże ryzyko kredytowe według prezentowanego klasyfikatora, ale bazuje on na danych fikcyjnych i w rzeczywistym świecie bankowym może być inaczej. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rozpoznawanie cyfr pisanych ręcznie Klasyfikator Przypomnienie wyznaczonej wcześniej funkcji klasyfikatora rozpoznającego cyfry pisane ręcznie.
Klasyfikacja przy użyciu wyznaczonego klasyfikatora Poniżej użycie funkcji klasyfikatora do klasyfikacji nowego obiektu.
Poddamy nasz klasyfikator nowej próbie. Zmienna siedemPiatek zawiera siedem obrazków ręcznie pisanej cyfry 5. Sprawdzimy czy nasz klasyfikator rozpozna te cyfry.
Efekt jest dość dobry, ale dwie “piątki” zostały źle zakwalifikowane. Weźmiemy “czwartą piątkę” i sprawdzimy z jakim prawdopodobieństwem została przypisana do poszczególnych klas.
Klasy o trzech największych prawdopodobieństwach przypisanie wygląda następująco.
"Czwarta piątka" została z prawdopodobieństwem 0.51 potraktowana jako cyfra 8, a dopiero na drugi miejscu z prawdopodobieństwem około 0.28 program rozpoznał w tym obrazku cyfrę 5. Wyniki dla “siódmej piątki”, również błędnie rozpoznanej przedstawiają się następująco. Z prawdopodobieństwem ok. 0.63 została rozpoznana jako cyfra 7.
Klasyfikator popełnił małe błędy, ale kto ich nie robi. Był szkolony na zbiorze 100-elementowym. Pełny zestaw danych dostępnych dla użytkowników programu Mathematica liczy 70 tysięcy próbek pisma ręcznego. Dalsze testy pozostawiamy czytelnikowi. Profilowanie kredytobiorców Klasyfikator Przypomnienie postaci klasyfikatora profilowania kredytobiorców.
Wywołanie funkcji klasyfikacji dla oceny ryzyka kredytowego dla nowych klientów. W każdym przypadku podane zostało prawdopodobieństwo zakwalifikowania klienta do jednej z trzech klas ryzyka.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rozpoznawanie cyfr pisanych ręcznie Zobaczymy teraz jaki wpływ na pracę klasyfikatora będzie mieć metoda uczenia, która może być zmieniana jako jedna z opcji komendy uczenia klasyfikatora. Klasyfikator trenowany metodą LogisticRegression Domyślną metodą trenowania klasyfikatora jest metoda regresji logistycznej. Przypomnijmy jak wyglądały wyniki klasyfikacji dla siedmiu “piątek”.
Klasyfikacja przy użyciu klasyfikatora trenowanego metodą domyślną
Klasyfikator trenowany domyślną metodą LogisticRegression popełnił dwa błędy na tym zbiorze testowym. Jedną “piątkę” pomylił z cyfrą 8 i jedną z cyfrą 7. Naiwny klasyfikator Bayesa (model cech niezależnych) Wytrenujemy teraz klasyfikator metodą NaiveBayes.
... i zastosujemy nowy klasyfikator do zbioru testowego siedmiu “piątek”.
Już tylko w jednym przypadku wynik jest błędny. Zmiana metody uczenia klasyfikator poprawiła jego parametry.
Jednak ciągle z bardzo dużym prawdopodobieństwem klasyfikator utrzymuje, że “czwarta piątka” to cyfra 3. Musi się jeszcze trochę nauczyć. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rozpoznawanie cyfr pisanych ręcznie Wyznaczona przez procedurę Classify funkcja klasyfikatora jest obiektem złożonym, ale pewne jego parametry są dostępne poprzez funkcję ClassifierInformation. Klasyfikator trenowany metodą LogistiRegression
Raport parametrów klasyfikatora Skrótowa forma panelu informacyjnego na temat parametrów funkcji klasyfikatora.
Pełny wykaz nazw parametrów pokazany został poniżej.
Forma tabelaryczna wybranego zestawu parametrów klasyfikatora może być wyświetlona przy użyciu procedury Grid.
|
© Copyright 1996-2019: Gambit. Wszelkie prawa zastrzeżone.
Mathematica® is registered trademark of Wolfram Research, Inc.
Mathematica® is registered trademark of Wolfram Research, Inc.