UWAGA! Używamy plików cookies, by ułatwić korzystanie z naszego serwisu. Jeśli nie chcesz, by pliki cookies były zapisywane na Twoim dysku zmień ustawienia swojej przeglądarki. Co to są pliki cookies?



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

  • Komenda Classify
  • 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

    SkladniaKomendyClassify_1.gif

    Klasyfikacja obiektów

    SkladniaKomendyClassify_2.gif

    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

    SkladniaKomendyClassify_3.png

    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.

  • Zbiór uczący
  • 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.

    ZbiorUczacy_1.png

    ZbiorUczacy_2.png

    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.

    ZbiorUczacy_3.png

    ZbiorUczacy_4.gif

    Lista przypadków zbioru uczącego

    Zbiór uczący ma formę listy reguł, które do obiektu ZbiorUczacy_5.png przypisują identyfikator klasy ZbiorUczacy_6.png. Zbiór uczący w tym przypadku zawiera 100 obiektów przypisanych do jednej z dziesięciu klas.

    ZbiorUczacy_7.png

    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.

    ZbiorUczacy_8.gif

    ZbiorUczacy_9.gif

    ZbiorUczacy_10.gif

    Poniżej pokazano sprawdzenie jak wygląda pełna lista klas, oraz pokazano długość tej listy, czyli liczbę klas. Wyniki nie wymagają komentarza.

    ZbiorUczacy_11.png

    ZbiorUczacy_12.png

    ZbiorUczacy_13.png

    ZbiorUczacy_14.png

    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.

    ZbiorUczacy_15.png

    ZbiorUczacy_16.gif ZbiorUczacy_17.gif ZbiorUczacy_18.gif ZbiorUczacy_19.gif ZbiorUczacy_20.gif ZbiorUczacy_21.gif ZbiorUczacy_22.gif ZbiorUczacy_23.gif ZbiorUczacy_24.gif ZbiorUczacy_25.gif
    ZbiorUczacy_26.gif ZbiorUczacy_27.gif ZbiorUczacy_28.gif ZbiorUczacy_29.gif ZbiorUczacy_30.gif ZbiorUczacy_31.gif ZbiorUczacy_32.gif ZbiorUczacy_33.gif ZbiorUczacy_34.gif ZbiorUczacy_35.gif
    ZbiorUczacy_36.gif ZbiorUczacy_37.gif ZbiorUczacy_38.gif ZbiorUczacy_39.gif ZbiorUczacy_40.gif ZbiorUczacy_41.gif ZbiorUczacy_42.gif ZbiorUczacy_43.gif ZbiorUczacy_44.gif ZbiorUczacy_45.gif
    ZbiorUczacy_46.gif ZbiorUczacy_47.gif ZbiorUczacy_48.gif ZbiorUczacy_49.gif ZbiorUczacy_50.gif ZbiorUczacy_51.gif ZbiorUczacy_52.gif ZbiorUczacy_53.gif ZbiorUczacy_54.gif ZbiorUczacy_55.gif
    ZbiorUczacy_56.gif ZbiorUczacy_57.gif ZbiorUczacy_58.gif ZbiorUczacy_59.gif ZbiorUczacy_60.gif ZbiorUczacy_61.gif ZbiorUczacy_62.gif ZbiorUczacy_63.gif ZbiorUczacy_64.gif ZbiorUczacy_65.gif
    ZbiorUczacy_66.gif ZbiorUczacy_67.gif ZbiorUczacy_68.gif ZbiorUczacy_69.gif ZbiorUczacy_70.gif ZbiorUczacy_71.gif ZbiorUczacy_72.gif ZbiorUczacy_73.gif ZbiorUczacy_74.gif ZbiorUczacy_75.gif
    ZbiorUczacy_76.gif ZbiorUczacy_77.gif ZbiorUczacy_78.gif ZbiorUczacy_79.gif ZbiorUczacy_80.gif ZbiorUczacy_81.gif ZbiorUczacy_82.gif ZbiorUczacy_83.gif ZbiorUczacy_84.gif ZbiorUczacy_85.gif
    ZbiorUczacy_86.gif ZbiorUczacy_87.gif ZbiorUczacy_88.gif ZbiorUczacy_89.gif ZbiorUczacy_90.gif ZbiorUczacy_91.gif ZbiorUczacy_92.gif ZbiorUczacy_93.gif ZbiorUczacy_94.gif ZbiorUczacy_95.gif
    ZbiorUczacy_96.gif ZbiorUczacy_97.gif ZbiorUczacy_98.gif ZbiorUczacy_99.gif ZbiorUczacy_100.gif ZbiorUczacy_101.gif ZbiorUczacy_102.gif ZbiorUczacy_103.gif ZbiorUczacy_104.gif ZbiorUczacy_105.gif
    ZbiorUczacy_106.gif ZbiorUczacy_107.gif ZbiorUczacy_108.gif ZbiorUczacy_109.gif ZbiorUczacy_110.gif ZbiorUczacy_111.gif ZbiorUczacy_112.gif ZbiorUczacy_113.gif ZbiorUczacy_114.gif ZbiorUczacy_115.gif

    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.  

    ZbiorUczacy_116.png

    młody uczy się 0 300 K duże ryzyko
    średni pracuje 2 1500 S duże ryzyko
    młody pracuje 4 2600 M brak ryzyka
    starszy pracuje 16 2300 D brak ryzyka
    średni pracuje 10 1900 M ryzyko przeciętne
    młody uczy się 0 700 W duże ryzyko
    średni bezrobotny 0 200 D duże ryzyko
    młody pracuje 3 1400 K ryzyko przeciętne
    średni pracuje 11 1400 D brak ryzyka
    starszy emeryt 0 1100 D ryzyko przeciętne
    młody uczy się 0 1500 W ryzyko przeciętne
    średni pracuje 17 2500 S ryzyko przeciętne
    młody bezrobotny 0 300 D duże ryzyko
    starszy pracuje 21 5000 S brak ryzyka
    młody pracuje 5 3700 M brak ryzyka

    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.

    ZbiorUczacy_117.png

    ZbiorUczacy_118.png

    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.

    ZbiorUczacy_119.png

    ZbiorUczacy_120.png

    Duże litery alfabetu angielskiego

    Zestaw o nazwie “UCILetter” zawiera 20 tysięcy próbek pisma ręcznego dla dużych liter alfabetu angielskiego.

    ZbiorUczacy_121.png

    ZbiorUczacy_122.png

    ZbiorUczacy_123.png

    ZbiorUczacy_124.png

    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.

    ZbiorUczacy_125.png

    ZbiorUczacy_126.png

    ZbiorUczacy_127.png

    ZbiorUczacy_128.png

    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.

    {MachineLearning,BostonHomes}     Home values for 506 Boston suburbs with potential influential factors (such as the crime rate, number of rooms, distance to employment centers, etc.).

        The test and training sets were obtained by creating a random sample of 30% of the data for the test set, using the rest for training.
    {MachineLearning,FisherIris}     The data set consists of 50 samples from each of three species of iris flowers (setosa, versicolor and virginica). Four features were measured from each flower,
        the length and the width of the sepal and petal.

        The test and training sets were constructed by stratified random sampling, using 30% of the data for the test set and the rest for the training set.
    {MachineLearning,MNIST}     The MNIST database of handwritten digits is a 70,000 example subset of a larger dataset from NIST (National Institute of Standards and Technology.
        The digits are in the range 0-9, and given as 28x28 grayscale images that have been size-normalized and centered.

        This dataset comes with a predefined training and test set split. The training set is made up of the first 60,000 examples, whilst the last 10,000
        examples are used for testing. This split was selected so that the set of writers of the digits in these two sets is disjoint.
        
    {MachineLearning,MovieReview}     This dataset consists of 10,662 snippets of movie reviews obtained from the review aggregator `Rotten Tomatoes'.
        Each review was labelled either `positive' or `negative' based on whether `Rotten Tomatoes' gave the movie a `Fresh'
        or `Rotten' rating respectively.

        The test and training sets were constructed by stratified random sampling, using 30% of the data for the test set and the rest for the training set.
    {MachineLearning,Mushroom}     This data set consists of 8124 records of the physical charachteristics of gilled mushrooms
         in the Agaricus and Lepiota family, along with their edibility. The classification
         task is determine the edibility given the physical charachteristics of the mushrooms.

        The test and training sets were constructed by stratified random sampling, using 30% of the data for the test set and the rest for the training set.
    {MachineLearning,Satellite} One frame of Landsat MSS imagery consists of four digital images
        of the same scene in different spectral bands. Two of these are
        in the visible region (corresponding approximately to green and
        red regions of the visible spectrum) and two are in the (near)
        infra-red. Each pixel is a 8-bit binary word, with 0 corresponding
        to black and 255 to white. The spatial resolution of a pixel is about
        80m x 80m. Each image contains 2340 x 3380 such pixels.

        The database is a (tiny) sub-area of a scene, consisting of 82 x 100
        pixels. Each line of data corresponds to a 3x3 square neighbourhood
        of pixels completely contained within the 82x100 sub-area. Each line
        contains the pixel values in the four spectral bands
        (converted to ASCII) of each of the 9 pixels in the 3x3 neighbourhood
        and a number indicating the classification label of the central pixel.
        The number is a code for the following classes:

        Number            Class

        1            red soil
        2            cotton crop
        3            gray soil
        4            damp gray soil
        5            soil with vegetation stubble
        6            very damp gray soil
        
        The data is given in random order and certain lines of data
        have been removed so you cannot reconstruct the original image
        from this dataset.
        
        In each line of data the four spectral values for the top-left
        pixel are given first followed by the four spectral values for
        the top-middle pixel and then those for the top-right pixel,
        and so on with the pixels read out in sequence left-to-right and
        top-to-bottom. Thus, the four spectral values for the central
        pixel are given by attributes 17,18,19 and 20. If you like you
        can use only these four attributes, while ignoring the others.
        This avoids the problem which arises when a 3x3 neighbourhood
        straddles a boundary.
    {MachineLearning,Titanic}     This data set contains the survival status of 1309 passengers aboard the maiden voyage of the RMS Titanic in 1912
        (the ships crew are not included), along with the passengers age, sex and class (which serves as a proxy for economic status).

        70% of the data was selected (using stratified sampling) for the training set.
    {MachineLearning,UCILetter}     This data set originates from a letter recognition task, where an image of the 26 capital letters in the English alphabet should
        be correctly classified given 16 numerical features of the image are given.

        The example letters were obtained by generating letters using 20 different fonts, which were then randomly
        distorted to produce 20,000 unique images. 16 features (such as pixel counts and correlations) were
        then extracted from each image.

        This data set comes with predefind test and training sets. The test set consists of the first 16,000 examples
        with the rest used for training.
    {MachineLearning,WineQuality}     Predict the subjectively reported quality of a white wine (on a scale of 1-10), given 11 physical features of the wine.
        These features include properties like the pH of the wine and its alcohol content.There are 4898 examples.
  • Proces uczenia
  • 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

    ProcesUczenia_1.gif ProcesUczenia_2.gif ProcesUczenia_3.gif ProcesUczenia_4.gif ProcesUczenia_5.gif ProcesUczenia_6.gif ProcesUczenia_7.gif ProcesUczenia_8.gif ProcesUczenia_9.gif ProcesUczenia_10.gif
    ProcesUczenia_11.gif ProcesUczenia_12.gif ProcesUczenia_13.gif ProcesUczenia_14.gif ProcesUczenia_15.gif ProcesUczenia_16.gif ProcesUczenia_17.gif ProcesUczenia_18.gif ProcesUczenia_19.gif ProcesUczenia_20.gif
    ProcesUczenia_21.gif ProcesUczenia_22.gif ProcesUczenia_23.gif ProcesUczenia_24.gif ProcesUczenia_25.gif ProcesUczenia_26.gif ProcesUczenia_27.gif ProcesUczenia_28.gif ProcesUczenia_29.gif ProcesUczenia_30.gif
    ProcesUczenia_31.gif ProcesUczenia_32.gif ProcesUczenia_33.gif ProcesUczenia_34.gif ProcesUczenia_35.gif ProcesUczenia_36.gif ProcesUczenia_37.gif ProcesUczenia_38.gif ProcesUczenia_39.gif ProcesUczenia_40.gif
    ProcesUczenia_41.gif ProcesUczenia_42.gif ProcesUczenia_43.gif ProcesUczenia_44.gif ProcesUczenia_45.gif ProcesUczenia_46.gif ProcesUczenia_47.gif ProcesUczenia_48.gif ProcesUczenia_49.gif ProcesUczenia_50.gif
    ProcesUczenia_51.gif ProcesUczenia_52.gif ProcesUczenia_53.gif ProcesUczenia_54.gif ProcesUczenia_55.gif ProcesUczenia_56.gif ProcesUczenia_57.gif ProcesUczenia_58.gif ProcesUczenia_59.gif ProcesUczenia_60.gif
    ProcesUczenia_61.gif ProcesUczenia_62.gif ProcesUczenia_63.gif ProcesUczenia_64.gif ProcesUczenia_65.gif ProcesUczenia_66.gif ProcesUczenia_67.gif ProcesUczenia_68.gif ProcesUczenia_69.gif ProcesUczenia_70.gif
    ProcesUczenia_71.gif ProcesUczenia_72.gif ProcesUczenia_73.gif ProcesUczenia_74.gif ProcesUczenia_75.gif ProcesUczenia_76.gif ProcesUczenia_77.gif ProcesUczenia_78.gif ProcesUczenia_79.gif ProcesUczenia_80.gif
    ProcesUczenia_81.gif ProcesUczenia_82.gif ProcesUczenia_83.gif ProcesUczenia_84.gif ProcesUczenia_85.gif ProcesUczenia_86.gif ProcesUczenia_87.gif ProcesUczenia_88.gif ProcesUczenia_89.gif ProcesUczenia_90.gif
    ProcesUczenia_91.gif ProcesUczenia_92.gif ProcesUczenia_93.gif ProcesUczenia_94.gif ProcesUczenia_95.gif ProcesUczenia_96.gif ProcesUczenia_97.gif ProcesUczenia_98.gif ProcesUczenia_99.gif ProcesUczenia_100.gif

    Podstawowa składnia komendy ProcesUczenia_101.png generuje funkcję ProcesUczenia_102.png.

    ProcesUczenia_103.png

    ProcesUczenia_104.gif

    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.

    ProcesUczenia_105.gif

    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.

    ProcesUczenia_106.gif

    ProcesUczenia_107.png

    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.

    młody uczy się 0 300 K duże ryzyko
    średni pracuje 2 1500 S duże ryzyko
    młody pracuje 4 2600 M brak ryzyka
    starszy pracuje 16 2300 D brak ryzyka
    średni pracuje 10 1900 M ryzyko przeciętne
    młody uczy się 0 700 W duże ryzyko
    średni bezrobotny 0 200 D duże ryzyko
    młody pracuje 3 1400 K ryzyko przeciętne
    średni pracuje 11 1400 D brak ryzyka
    starszy emeryt 0 1100 D ryzyko przeciętne
    młody uczy się 0 1500 W ryzyko przeciętne
    średni pracuje 17 2500 S ryzyko przeciętne
    młody bezrobotny 0 300 D duże ryzyko
    starszy pracuje 21 5000 S brak ryzyka
    młody pracuje 5 3700 M brak ryzyka

    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.

    ProcesUczenia_108.png

    ProcesUczenia_109.gif

    Poniżej pokazane zostało użycie wygenerowanej w poprzednim kroku funkcji klasyfikatora to oceny ryzyka dla nowego przypadku.

    ProcesUczenia_110.png

    ProcesUczenia_111.png

    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.

  • Prawdopodobieństwo decyzji
  • Rozpoznawanie cyfr pisanych ręcznie

    Klasyfikator

    Przypomnienie wyznaczonej wcześniej funkcji klasyfikatora rozpoznającego cyfry pisane ręcznie.

    PrawdopodobienstwoDecyzji_1.png

    PrawdopodobienstwoDecyzji_2.gif

    Klasyfikacja przy użyciu wyznaczonego klasyfikatora

    Poniżej użycie funkcji klasyfikatora do klasyfikacji nowego obiektu.

    PrawdopodobienstwoDecyzji_3.gif

    PrawdopodobienstwoDecyzji_4.png

    Poddamy nasz klasyfikator nowej próbie. Zmienna siedemPiatek zawiera siedem obrazków ręcznie pisanej cyfry 5. Sprawdzimy czy nasz klasyfikator rozpozna te cyfry.

    PrawdopodobienstwoDecyzji_5.png

    PrawdopodobienstwoDecyzji_6.gif

    PrawdopodobienstwoDecyzji_7.png

    PrawdopodobienstwoDecyzji_8.png

    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.

    PrawdopodobienstwoDecyzji_9.gif

    PrawdopodobienstwoDecyzji_10.png

    Klasy o trzech największych prawdopodobieństwach przypisanie wygląda następująco.

    PrawdopodobienstwoDecyzji_11.gif

    PrawdopodobienstwoDecyzji_12.png

    "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.

    PrawdopodobienstwoDecyzji_13.gif

    PrawdopodobienstwoDecyzji_14.png

    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.

    PrawdopodobienstwoDecyzji_15.png

    PrawdopodobienstwoDecyzji_16.gif

    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.

    PrawdopodobienstwoDecyzji_17.png

    PrawdopodobienstwoDecyzji_18.png

    PrawdopodobienstwoDecyzji_19.png

    PrawdopodobienstwoDecyzji_20.png

  • Metody uczenia klasyfikatora
  • 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”.

    MetodyUczenia_1.png

    MetodyUczenia_2.gif

    Klasyfikacja przy użyciu klasyfikatora trenowanego metodą domyślną

    MetodyUczenia_3.png

    MetodyUczenia_4.gif

    MetodyUczenia_5.png

    MetodyUczenia_6.png

    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.

    MetodyUczenia_7.png

    MetodyUczenia_8.gif

    ... i zastosujemy nowy klasyfikator do zbioru testowego siedmiu “piątek”.

    MetodyUczenia_9.png

    MetodyUczenia_10.png

    Już tylko w jednym przypadku wynik jest błędny. Zmiana metody uczenia klasyfikator poprawiła jego parametry.

    MetodyUczenia_11.gif

    MetodyUczenia_12.png

    Jednak ciągle z bardzo dużym prawdopodobieństwem klasyfikator utrzymuje, że “czwarta piątka” to cyfra 3. Musi się jeszcze trochę nauczyć.

  • Parametry klasyfikatora
  • 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

    ParametryKlasyfikatora_1.png

    ParametryKlasyfikatora_2.gif

    Raport parametrów klasyfikatora

    Skrótowa forma panelu informacyjnego na temat parametrów funkcji klasyfikatora.

    ParametryKlasyfikatora_3.png

    ParametryKlasyfikatora_4.png

    Pełny wykaz nazw parametrów pokazany został poniżej.

    ParametryKlasyfikatora_5.png

    ParametryKlasyfikatora_6.png

    Forma tabelaryczna wybranego zestawu parametrów klasyfikatora może być wyświetlona przy użyciu procedury Grid.

    Accuracy 0.671429±0.0768572
    BatchEvaluationSpeed ParametryKlasyfikatora_7.png
    BatchEvaluationTime
    Classes {0,1,2,3,4,5,6,7,8,9}
    ClassNumber 10
    ClassPriors Automatic
    EvaluationTime ParametryKlasyfikatora_8.png
    ExampleNumber 100
    FeatureNames {f1}
    FeatureNumber 1
    FunctionMemory ParametryKlasyfikatora_9.png
    FunctionProperties {Properties, Decision, Probabilities, LogProbabilities, ExpectedUtilities, TopProbabilities}
    IndeterminateThreshold 0
    L1Regularization 0
    L2Regularization 0.01
    LearningCurve ParametryKlasyfikatora_10.png
    MaxTrainingMemory ParametryKlasyfikatora_11.png
    MeanCrossEntropy 0.812478±0.234105
    Method LogisticRegression
    MethodOption Method→{LogisticRegression, L1Regularization→0, L2Regularization→0.01, OptimizationMethod→LBFGS, MaxIterations→30}
    OptimizationMethod LBFGS
    PerformanceGoal Automatic
    Properties {Accuracy, BatchEvaluationSpeed, BatchEvaluationTime, Classes, ClassNumber, ClassPriors, EvaluationTime, ExampleNumber, FeatureNames, FeatureNumber, FeatureTypes, FunctionMemory, FunctionProperties, IndeterminateThreshold, L1Regularization, L2Regularization, LearningCurve, MaxTrainingMemory, MeanCrossEntropy, Method, MethodDescription, MethodOption, OptimizationMethod, PerformanceGoal, Properties, TrainingClassPriors, TrainingTime, UtilityFunction}
    TrainingTime ParametryKlasyfikatora_12.png