Elementy uczenia

53  Download (0)

Full text

(1)

Elementy uczenia maszynowego

Nguyen Sinh Hoa

e-mail: hoa@pjwstk.edu.pl

(2)

Plan wykładu

Typy algorytmów ML

Pełny proces budowania klasyfikatorów.

Metody próbkowania

Metody walidacji modelu

Przykład użycia.

(3)

Typy algorytmów ML

(4)

Typy algorytmów ML

(supervised vs. unsupervised)

(5)

Uczenie z nadzorem vs.

uczenie bez nadzoru

Uczennie z nadzorem (supervised learning)

Dane treningowe (obserwacje, pomiary, etc.) są podane z etykietami prezentującymi kategorię, do której należą

obserwacje.

Nowe dane są sklasyfikowane na podstawie danych treningowych.

(6)

Uczenie z nadzorem

(klasyfikacja/predykcja)

Dany jest zbiór przykładów (obserwacji)

Każdy przykład jest opisany zbiorem zmiennych niezależnych zwanych atrybutami objaśniającymi (zmienne objaśnione).

Wyróżniony jest jedna zmienna, zwana atrybutem docelowym (zmienna docelowa, objaśniona)

(7)

Klasyfikacja

Atrybut docelowy jest symboliczny.

Zbiór wartości jest skończony.

Zadaniem jest przypisanie nowych przykładów do właściwej kategorii.

Predykcja

Atrybut docelowy jest ciągły.

Zadaniem jest przewidywanie

Klasyfikacja vs. predykcja

(8)

Leniwe vs. gorliwe uczenie (lazzy vs. eager learning)

czas treningu

krótki długi

Eager Lazy

1. Uczenia się: Brak. Nie generuje się modelu (hipotezy) dla funkcji docelowej

2. Klasyfikacja: Odpowiedź jest kombinowana bezpośrednio ze danych treningowych

(9)

Gorliwe vs. leniwe

metody klasyfikacji

(10)

Plan wykładu

Klasyfikacja algorytmów ML/DM

Pełny proces budowania klasyfikatorów.

Metody próbkowania

Metody walidacji modelu

Przykład użycia

(11)

Ogólny proces klasyfikacji/predykcji

Etap I. Tworzenie modelu: modelowanie zmiennej docelowej

Klasyfikator: algorytm określenia wartości zmiennej docelowej na podstawie wartości zmiennych

objaśniających.

Klasyfikatory mogą być opisane za pomocą formuł logicznych, drzew decyzyjnych lub formuł

matematycznych.

(12)

Proces klasyfikacja/predykcji.

(13)

Klasyfikacja. Krok 1: Podział zbioru danych na treningowy i testowy

Results Known

++ -- +

THE PAST

Data

Training set

Testing set

(14)

Klasyfikacja. Krok 2:

Budowanie model dla zbioru treningowego

Training set Results Known

++ -- +

THE PAST

Data

Model Builder

Testing set

(15)

Klasyfikacja. Krok 3:

Ewaluacja (Re-train?)

Data

Predictions

Y N

Results Known

Training set

Testing set

++ -- +

Model Builder

Evaluate

+ - +

-

(16)

Strojenie parametrów

Zwykle alghorytm uczenia składa się z dwóch kroków:

Krok 1: budować model

Krok 2: optymalizować parametry

Uwaga: Dane testowe nie może być użyte do strojenia parametrów!

Właściwy algorytm uczenia wykorzystuje trzy zbiory:

zbiór treningowy, zbiór walidacyjny i zbiór testowy .

(17)

Klasyfikacja:

Train, Validation, Test split

Data

Predictions

Y N

Results Known

Training set

Validation set

++ -- +

Model Builder

Evaluate

+ - +

-

Model Builder

(18)

Plan wykładu

Klasyfikacja algorytmów ML/DM

Pełny proces budowania klasyfikatorów.

Metody próbkowania

Metody walidacji modelu

Przykład użycia

(19)

Metody próbkowania:

Dane niezbalansowane

W wielu zastosowaniach rozkład kategorii jest mocno niezbasansowane

Predykcja odejścia klienta: 97% zostaje, 3% odchodzi (miesięcznie).

Diagnoza medyczna: 99% zdrowych, 1% chorych.

eCommerce: 90% nie kupuje, 10% kupuje

Security: >99.9% ludności nie są terorystami

(20)

Metody próbkowania:

Dane niezbalansowane (1)

Metoda: Zrównoważyć dane niezbalansowane.

Dla danych o decyzjach binarnych:

Wylosuj wymaganą liczbę przykładów z klasy mnieszościowej.

Wylosuj tyle samo liczbę przykładów z klasy większościowej (dominującej).

(21)

Metody próbkowania:

Dane niezbalansowane (2)

I podejście: Dla danych o więcej niż dwóch klasach decyzyjnych:

Wylosuj przykłady z zachowaniem rozkładu klas decyzyjnych w zbiorze treningowym i testowym (stratified sampling).

(22)

Plan wykładu

Klasyfikacja algorytmów ML/DM

Pełny proces budowania klasyfikatorów.

Metody próbkowania

Metody walidacji modelu

Przykład użycia

(23)

Oceny klasyfikatorów

Metody:

Błąd klasyfikacji

Krzywa Lift

Krzywa ROC

F-measure

(24)

Błąd klasyfikacji

Error rate = l.błędów / l. przykł. testowych

Błąd klasyfikacji na zbiorze treningowym:

zbyt optymistyczny!

Powinniśmy sprawdzić na losowych danych.

(25)

Ocena klasyfikatorów:

Metoda Training and Test

Podział na trenining i test:

Zwykle: 2/3 na trening, 1/3 na test

Próbkowanie warstwowe (Stratified sampling):

Zapewnienie, że rozkład decyzji w zbiorze

treningowym i testowym jest zachowany.

(26)

Metoda walidacji krzyżowej

Walidacja krzyżowa (Cross-validation) rozwiązuje problem „overlapping”

I krok: Dane są podzielone na k równych części.

II krok: Każda część po kolej zostanie zbiorem testowym, a reszta zbiór treningowy.

Metoda się nazywa k-krotna walidacja.

(27)

Walidacja krzyżowa

Losowy podział zbioru danych na k grup

Zatrzymamy jedną grupę do testu a reszty używamy do treningu

Powtarzamy

Test

(28)

Metoda Leave-One-Out cross- validation

Leave-One-Out:

przypadek szczególny cross-validation

Liczba grup = liczba przykładów

Tzn., dla n obiektów budujemy klasyfikator n razy

Najlepiej ocenia klasyfikatora

Obliczeniowo kosztowna metoda

(wyjątek: NN)

(29)

Plan wykładu

Zagadnienie oceny klasyfikatorów

Błąd klasyfikacji

Krzywa Lift

Krzywa ROC

F-measure

(30)

Zagadnienie Direct Marketing

Promowanie przez bezpośredni kontakt z klientami.

Zadanie:

Szukanie potencjalnych klientów

Nie skontaktować ze wszystkimi klientami

Zastosowania:

Kampalnia promocyjna: wysłanie próbek produktu, katalogów, listów (e-maile).

Pozyskiwanie klientów, predykcja odejścia, zwiększanie

(31)

Krzywa Lift

Stosowany dla klasyfikatora binarnego.

Podejście

Budowanie modelu predykcyjnego

Oblicz prawdopodobieństwo, że przyszły klient należy do klasy pozytywnej i uporządkuj wyniki malejąco.

Wybierz pierwszych P% klientów na liście jako potencjalnych klientów akcji marketingowej.

(32)

Ocena wrażliwości modelu (Cost Sensitive Learning)

Macierz pomyłek:

Actual class

Yes No

Predicted class

Yes TP: True positive

FP: False positive No FN: False

negative

TN: True

negative

(33)

Lista rankingowa

No Score Target CustID Age

1 0.97 Y 1746

2 0.95 N 1024

3 0.94 Y 2478

4 0.93 Y 3820

5 0.92 N 4897

3 pozytywne

przykłady w top 5% listy

rankingowej.

Jeśli cała tablica zawiera 15

(34)

Skomulowany procent trafienia

0 10 20 30 40 50 60 70 80 90 100

5 15 25 35 45 55 65 75 85 95

Random

Pct list

Cumulative % Hits

CPH(P,M) = % pozytywnych przykładów na pierwszej P%

liście rankingowej (tworzonej przez model M)

CPH : Gain chart

Q: Ile wynosi CPH(P,Random) ?

CPH (Cumulative Percent Hits)

(35)

CPH: Random List vs.

Model-ranked list

0 10 20 30 40 50 60 70 80 90 100

5 15 25 35 45 55 65 75 85 95

Random Model

Pct list

Cumulative % Hits

(36)

Krzywa Lift

0.5 1 1.5 2 2.5 3 3.5 4 4.5

Lift

Lift(P,M) = CPH(P,M) / P

Lift (przy 5%)

= 20% / 5%

= 4

Interpretacja:

Trafność

modelu jest 4 razy większa

(37)

Własności funkcji Lift

Lift(P, Random) = P (wartość oczekiwana)

Lift(100%, M) = Lift(100%, Random) = 1

Im lepszy model, tym wyższa jest krzywa

Lift.

(38)

Plan wykładu

Zagadnienie oceny klasyfikatorów

Błąd klasyfikacji

Krzywa Lift

Krzywa ROC

F-measure

(39)

Detekcja sygnałów.

Krzywa ROC

Krzywa ROC

Skrót od “Receiver Operating Characteristic”

Wskaźnik pokazujący trade-off między procentem prawidłowych alarmów i fałszywych alarmów (TP vs. FP).

Wykres ROC:

Oś x: FP Rate FPR = FP/(FP+TN) (1-specificity)

(40)

Krzykład krzywa ROC

AUC: Area under curve

(41)

Plan wykładu

Podstawowe pojęcia

Wybrane klasyfikatory

W oparciu o przykładach (kNN)

Bayesowski

Metody oceniania klasyfikatorów

Błąd klasyfikacji

Krzywa Lift

(42)

Pozyskiwanie informacji.

F-measure (klasyfikator binarny)

Liczba prawidłowo sklasyfikowanych pozytywnych przykładów do liczby

przykładów sklasyfikowanych do klasy pozytywnej:

precision=TP/(TP+FP)

Liczba prawidłowo sklasyfikowanych pozytywnych przykładów do liczby przykładów faktycznie pozytywnych:

recall =TP/(TP+FN)

(43)

Plan wykładu

Klasyfikacja algorytmów DM/ML

Pełny proces budowania klasyfikatorów.

Metody próbkowania

Metody walidacji modelu

(44)

Cel badania

Dane: informacje o studentach: ogólna ocena ze studiów, zachowanie, ocena badań, ocena projektów.

Cel: Przewidywanie, czy wniosek o grant będzie pozytywnie rozpatrywany.

Name (the student name)

OverallGrade (overall grade obtained)

Obedient (whether they were diligent during their course of stay)

ResearchScore (marks obtained in their research work)

(45)

Ładowanie danych (pandas, plik CSV)

In [1]: import pandas as pd ...: # turn of warning messages

...: pd.options.mode.chained_assignment = None # default='warn' ...: # get data

...: df = pd.read_csv('student_records.csv') ...: df

(46)

Ekstrakcja cech, przetwarzanie zmiennych

(sklearn.preprocessing)

(47)

Normalizacja zmiennych

numerycznych

(48)

Konwertowanie zmiennych symbolicznych

Zmienne symboliczne zostały konwertowane na binarne (one-hot method)

(49)

Modelowanie

(Regresja logistyczna, sklearn)

In [9]: from sklearn.linear_model import LogisticRegression ...: import numpy as np

...: # fit the model

...: lr = LogisticRegression()

...: model = lr.fit(training_features, np.array(outcome_labels['Recommend']))

...:# view model parameters

Out[9]: LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True, intercept_scaling=1, max_iter=100,

multi_class='ovr', n_jobs=1, penalty='l2',

(50)

Ocena modelu (sklearn.metrics)

Accuracy: 100.0 % Classification Stats:

precision recall f1-score support

No 1.00 1.00 1.00 5

Yes 1.00 1.00 1.00 3

avg / total 1.00 1.00 1.00 8

(51)

Zapisanie modelu (Model

deployment, sklearn.externals)

In [11]: from sklearn.externals import joblib ...: import os

...: # save models to be deployed on your server ...: if not os.path.exists('Model'):

...: os.mkdir('Model')

...: if not os.path.exists('Scaler'):

...: os.mkdir('Scaler')

(52)

Predykcja decyzji dla nowego przykładu (pandas, sklearn)

I Input

(53)

Literatura

D. Sarkar, R. Bali, T. Sharma. Practical Machine Learning with Python: Problem-solver’s Guide to Building Real World Inteligent Systems. A Pro

L. Breiman, J. Friedman, R. Olshen, and C. Stone.

Classification and Regression Trees. Wadsworth International Group, 1984

Figure

Updating...

References

Related subjects :