Elementy uczenia maszynowego
Nguyen Sinh Hoa
e-mail: hoa@pjwstk.edu.pl
Plan wykładu
◼
Typy algorytmów ML
◼
Pełny proces budowania klasyfikatorów.
◼
Metody próbkowania
◼
Metody walidacji modelu
◼
Przykład użycia.
Typy algorytmów ML
Typy algorytmów ML
(supervised vs. unsupervised)
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.
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)
◼ 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
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
Gorliwe vs. leniwe
metody klasyfikacji
Plan wykładu
◼
Klasyfikacja algorytmów ML/DM
◼
Pełny proces budowania klasyfikatorów.
◼
Metody próbkowania
◼
Metody walidacji modelu
Przykład użycia
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.
Proces klasyfikacja/predykcji.
Klasyfikacja. Krok 1: Podział zbioru danych na treningowy i testowy
Results Known
++ -- +
THE PAST
Data
Training set
Testing set
Klasyfikacja. Krok 2:
Budowanie model dla zbioru treningowego
Training set Results Known
++ -- +
THE PAST
Data
Model Builder
Testing set
Klasyfikacja. Krok 3:
Ewaluacja (Re-train?)
Data
Predictions
Y N
Results Known
Training set
Testing set
++ -- +
Model Builder
Evaluate
+ - +
-
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 .
Klasyfikacja:
Train, Validation, Test split
Data
Predictions
Y N
Results Known
Training set
Validation set
++ -- +
Model Builder
Evaluate
+ - +
-
Model Builder
Plan wykładu
◼
Klasyfikacja algorytmów ML/DM
◼
Pełny proces budowania klasyfikatorów.
◼
Metody próbkowania
◼
Metody walidacji modelu
Przykład użycia
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
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).
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).
Plan wykładu
◼
Klasyfikacja algorytmów ML/DM
◼
Pełny proces budowania klasyfikatorów.
◼
Metody próbkowania
◼
Metody walidacji modelu
Przykład użycia
Oceny klasyfikatorów
◼
Metody:
◼
Błąd klasyfikacji
◼
Krzywa Lift
◼
Krzywa ROC
◼
F-measure
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.
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.
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.
Walidacja krzyżowa
— Losowy podział zbioru danych na k grup
— Zatrzymamy jedną grupę do testu a reszty używamy do treningu
— Powtarzamy
Test
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)
Plan wykładu
◼
Zagadnienie oceny klasyfikatorów
◼
Błąd klasyfikacji
◼
Krzywa Lift
◼
Krzywa ROC
◼
F-measure
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
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.
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
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
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)
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
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
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.
Plan wykładu
◼
Zagadnienie oceny klasyfikatorów
◼
Błąd klasyfikacji
◼
Krzywa Lift
◼
Krzywa ROC
◼
F-measure
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)
Krzykład krzywa ROC
AUC: Area under curve
Plan wykładu
◼
Podstawowe pojęcia
◼
Wybrane klasyfikatory
◼ W oparciu o przykładach (kNN)
◼ Bayesowski
◼
Metody oceniania klasyfikatorów
◼ Błąd klasyfikacji
◼ Krzywa Lift
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)
Plan wykładu
◼
Klasyfikacja algorytmów DM/ML
◼
Pełny proces budowania klasyfikatorów.
◼
Metody próbkowania
◼
Metody walidacji modelu
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)
Ł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
Ekstrakcja cech, przetwarzanie zmiennych
(sklearn.preprocessing)
Normalizacja zmiennych
numerycznych
Konwertowanie zmiennych symbolicznych
Zmienne symboliczne zostały konwertowane na binarne (one-hot method)
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',
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
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')
Predykcja decyzji dla nowego przykładu (pandas, sklearn)
I Input
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