Uczenie maszynowe to nauka (i sztuka) programowania komputerów, aby mogły uczyć się na podstawie danych.
dziedzina nauki, która daje komputerom zdolność uczenia się bez wyraźnego programowania. – Arthur Samuel, 1959
lepsza definicja:
O programie komputerowym mówi się, że uczy się na podstawie doświadczenia E w odniesieniu do jakiegoś zadania T i jakiejś miary wydajności P, jeśli jego wydajność w T, mierzona przez P, poprawia się wraz z doświadczeniem E. – Tom Mitchell, 1997
Na przykład, twój filtr antyspamowy jest programem uczącym się maszynowo, który może nauczyć się oznaczać spam po otrzymaniu przykładów wiadomości spamowych, które są oznaczane przez użytkowników, oraz przykładów zwykłych wiadomości nie będących spamem (zwanych również „ham”). Przykłady, których system używa do nauki, nazywane są zbiorem treningowym. W tym przypadku, zadanie (T) polega na oznaczaniu spamu dla nowych wiadomości e-mail, doświadczenie (E) to dane treningowe, a miara wydajności (P) musi zostać zdefiniowana. Na przykład, można użyć współczynnika poprawnie sklasyfikowanych wiadomości e-mail jako P. Ta konkretna miara wydajności nazywa się dokładnością i jest często używana w zadaniach klasyfikacji, ponieważ jest to podejście uczenia nadzorowanego.
Zanurz się głębiejWprowadzenie do uczenia maszynowego dla początkujących
Uczenie nadzorowane
W uczeniu nadzorowanym, algorytmy uczą się z oznaczonych danych. Po zrozumieniu danych, algorytm określa, jaką etykietę należy nadać nowym danym poprzez skojarzenie wzorców z nowymi danymi bez etykiet.
Uczenie nadzorowane można podzielić na dwie kategorie: klasyfikację i regresję.
Klasyfikacja przewiduje kategorię, do której należą dane.
Niektóre przykłady klasyfikacji obejmują wykrywanie spamu, przewidywanie churn, analizę sentymentu, wykrywanie ras psów i tak dalej.
Regresja przewiduje wartość liczbową na podstawie wcześniej zaobserwowanych danych.
Niektóre przykłady regresji obejmują przewidywanie cen domów, przewidywanie cen akcji, przewidywanie wzrostu-wagi i tak dalej.
Dive DeeperA Tour of the Top 10 Algorithms for Machine Learning Newbies
Klasyfikacja
Klasyfikacja jest techniką określania, do której klasy należy zmienna zależna na podstawie jednej lub więcej zmiennych niezależnych.
Klasyfikacja jest używana do przewidywania dyskretnych odpowiedzi.
Regresja logistyczna
Regresja logistyczna jest trochę jak regresja liniowa, ale jest używana, gdy zmienna zależna nie jest liczbą, ale czymś innym (np, odpowiedź „tak/nie”). To się nazywa regresja, ale wykonuje klasyfikację w oparciu o regresję i klasyfikuje zmienną zależną do jednej z klas.
Regresja logistyczna jest używana do przewidywania danych wyjściowych, które są binarne, jak stwierdzono powyżej. Na przykład, jeśli firma obsługująca karty kredytowe buduje model, aby zdecydować, czy wydać kartę kredytową klientowi, będzie modelować, czy klient będzie „zalegał” czy „nie zalegał” ze spłatą swojej karty.
Po pierwsze, regresja liniowa jest wykonywana na związku między zmiennymi, aby uzyskać model. Próg dla linii klasyfikacyjnej przyjmuje się na poziomie 0,5.
K-Najbliżsi Sąsiedzi (K-NN)
Algorytm K-NN jest jednym z najprostszych algorytmów klasyfikacji i jest używany do identyfikacji punktów danych, które są rozdzielone na kilka klas, aby przewidzieć klasyfikację nowego punktu próbki. K-NN jest nieparametrycznym, leniwym algorytmem uczącym. Klasyfikuje on nowe przypadki w oparciu o miarę podobieństwa (tj, funkcji odległości).
K-NN działa dobrze z małą liczbą zmiennych wejściowych (p), ale zmaga się z problemami, gdy liczba zmiennych wejściowych jest bardzo duża.
Maszyna wektorów nośnych (SVM)
Maszyna wektorów nośnych jest używana zarówno do regresji, jak i klasyfikacji. Jest on oparty na koncepcji płaszczyzn decyzyjnych, które definiują granice decyzji. A decision plane (hyperplane) is one that separates between a set of objects having different class memberships.
I performs classification by finding the hyperplane that maximizes the margin between the two classes with the help of support vectors.
Uczenie hiperpłaszczyzny w SVM odbywa się poprzez przekształcenie problemu przy użyciu pewnej algebry liniowej (tj, powyższy przykład jest liniowym jądrem, które ma liniową separowalność między każdą zmienną).
Dla danych o wyższym wymiarze, inne jądra są używane jako punkty i nie mogą być łatwo sklasyfikowane. Są one określone w następnej sekcji.
Kernel SVM
Kernel SVM przyjmuje funkcję jądra w algorytmie SVM i przekształca ją w wymaganą formę, która odwzorowuje dane na wyższym wymiarze, który jest separowalny.
Typami funkcji jądra są:
- Liniowa SVM to ta, którą omówiliśmy wcześniej.
- W jądrze wielomianowym należy określić stopień wielomianu. Pozwala on na uzyskanie zakrzywionych linii w przestrzeni wejściowej.
- W jądrze radial basis function (RBF), jest ono stosowane dla zmiennych separowalnych nieliniowo. Dla odległości używana jest metryczna kwadratowa odległość euklidesowa. Użycie typowej wartości parametru może prowadzić do przepasowania naszych danych. Jest on domyślnie używany w sklearn.
- Kernel sigmoidalny, podobny do regresji logistycznej jest używany do klasyfikacji binarnej.
Kernel trick wykorzystuje funkcję jądra do transformacji danych do przestrzeni cech o wyższym wymiarze i umożliwia przeprowadzenie liniowej separacji dla klasyfikacji.
Radial Basis Function (RBF) Kernel
Region decyzyjny jądra RBF SVM jest w rzeczywistości również liniowym regionem decyzyjnym. To, co faktycznie robi jądro RBF SVM, to tworzenie nieliniowych kombinacji cech w celu podniesienia próbek do wyższego wymiaru przestrzeni cech, gdzie liniowa granica decyzyjna może być użyta do oddzielenia klas.
Więc, zasada kciuka brzmi: użyj liniowych SVM dla problemów liniowych, a nieliniowych jąder, takich jak jądro RBF dla problemów nieliniowych.
Naive Bayes
Klasyfikator naiwny Bayesa jest oparty na twierdzeniu Bayesa z założeniami niezależności między predyktorami (tj, zakłada, że obecność cechy w klasie nie jest związana z żadną inną cechą). Nawet jeśli cechy te zależą od siebie, lub od istnienia innych cech, wszystkie te właściwości występują niezależnie. Stąd nazwa naive Bayes.
Based on naive Bayes, Gaussian naive Bayes is used for classification based on the binomial (normal) distribution of data.
- P(class|data) is the posterior probability of class(target) given predictor(attribute). Prawdopodobieństwo, że punkt danych posiada którąś z klas, biorąc pod uwagę punkt danych. Jest to wartość, którą chcemy obliczyć.
- P(class) jest prawdopodobieństwem uprzednim klasy.
- P(data|class) jest prawdopodobieństwem, które jest prawdopodobieństwem predyktora biorąc pod uwagę klasę.
- P(dane) to prawdopodobieństwo predyktora lub prawdopodobieństwo krańcowe.
Kroki
1. Calculate Prior Probability
P(class) = Number of data points in the class/Total no. of observations
P(yellow) = 10/17
P(green) = 7/17
2. Oblicz prawdopodobieństwo krańcowe
P(dane) = Liczba punktów danych podobnych do obserwacji/Całkowita liczba obserwacji
P(?) = 4/17
Wartość występuje przy sprawdzaniu obu prawdopodobieństw.
3. Oblicz prawdopodobieństwo
P(dane/klasa) = Liczba podobnych obserwacji do klasy/Całkowita liczba punktów w klasie.
P(?/żółty) = 1/7
P(?/zielony) = 3/10
4. prawdopodobieństwo potomne dla każdej klasy
5. Klasyfikacja
Wyższe prawdopodobieństwo, klasa należy do tej kategorii, jak z powyżej 75% prawdopodobieństwa punkt należy do klasy zielonej.
Multinomial, Bernoulli naive Bayes są inne modele używane do obliczania prawdopodobieństw. Model naiwnego Bayesa jest łatwy do zbudowania, bez skomplikowanej iteracyjnej estymacji parametrów, co czyni go szczególnie użytecznym dla bardzo dużych zbiorów danych.
Klasyfikacja drzewa decyzyjnego
Drzewo decyzyjne buduje modele klasyfikacji lub regresji w postaci struktury drzewa. Rozbija zbiór danych na coraz mniejsze podzbiory, a jednocześnie powiązane z nim drzewo decyzyjne jest rozwijane przyrostowo. Efektem końcowym jest drzewo z węzłami decyzyjnymi i węzłami liści. It follows Iterative Dichotomiser 3(ID3) algorithm structure for determining the split.
Entropia i zysk informacyjny są wykorzystywane do konstrukcji drzewa decyzyjnego.
Entropia
Entropia jest stopniem lub ilością niepewności w losowości elementów. Innymi słowy, jest to miara nieczystości.
Intuicyjnie, mówi nam o przewidywalności pewnego zdarzenia. Entropia oblicza homogeniczność próbki. Jeśli próbka jest całkowicie jednorodna, entropia wynosi zero, a jeśli próbka jest równo podzielona, ma entropię równą jeden.
Zysk informacji
Zysk informacji mierzy względną zmianę entropii w odniesieniu do niezależnego atrybutu. Próbuje on oszacować informację zawartą w każdym atrybucie. Konstruowanie drzewa decyzyjnego polega na znalezieniu atrybutu, który zwraca największy przyrost informacji (tj, najbardziej jednorodne gałęzie).
Gdzie Gain(T, X) jest zyskiem informacyjnym poprzez zastosowanie cechy X. Entropia(T) jest entropią całego zbioru, podczas gdy drugi człon oblicza entropię po zastosowaniu cechy X.
Zysk informacyjny szereguje atrybuty do filtrowania w danym węźle drzewa. Ranking jest oparty na najwyższej entropii zysku informacyjnego w każdym podziale.
Wadą modelu drzewa decyzyjnego jest nadmierne dopasowanie, ponieważ próbuje dopasować model, wchodząc głębiej w zbiór treningowy, a tym samym zmniejszając dokładność testu.
Overfitting w drzewach decyzyjnych może być zminimalizowany przez przycinanie węzłów.
Ensemble Methods for Classification
Model ensemble to zespół modeli. Z technicznego punktu widzenia, modele zespołowe składają się z kilku modeli uczenia nadzorowanego, które są indywidualnie trenowane, a wyniki łączone na różne sposoby w celu uzyskania ostatecznej prognozy. Wynik ten ma wyższą moc predykcyjną niż wyniki któregokolwiek z tworzących go algorytmów uczenia się niezależnie.
klasyfikacja losowego lasu
Klasyfikator losowego lasu jest algorytmem zespołowym opartym na bagowaniu, tj. agregacji bootstrapowej. Metody ensemble łączą więcej niż jeden algorytm tego samego lub różnego rodzaju do klasyfikacji obiektów (np, Zespół SVM, naive Bayes lub drzew decyzyjnych, na przykład.)
Ogólna idea jest taka, że połączenie modeli uczenia zwiększa ogólny wybrany wynik.
Głębokie drzewa decyzyjne mogą cierpieć z powodu przepasowania, ale lasy losowe zapobiegają przepasowaniu poprzez tworzenie drzew na losowych podzbiorach. Głównym powodem jest to, że bierze średnią ze wszystkich przewidywań, co niweluje uprzedzenia.
Las losowy dodaje dodatkową losowość do modelu podczas wzrostu drzew. Zamiast szukać najważniejszej cechy podczas dzielenia węzła, szuka najlepszej cechy wśród losowego podzbioru cech. Dzięki temu uzyskuje się dużą różnorodność, która generalnie skutkuje lepszym modelem.
Klasyfikator Gradient Boosting
Klasyfikator Gradient Boosting jest metodą zespołu boostingu. Boosting jest sposobem łączenia (ensemble) słabych uczących, głównie w celu zmniejszenia błędu przewidywania. Zamiast tworzenia puli predyktorów, jak w przypadku baggingu, boosting tworzy kaskadę predyktorów, gdzie każde wyjście jest wejściem dla kolejnego uczącego. Zazwyczaj, w algorytmie baggingowym drzewa są hodowane równolegle, aby uzyskać średnią predykcję dla wszystkich drzew, gdzie każde drzewo jest budowane na próbce oryginalnych danych. Gradient boosting, z drugiej strony, przyjmuje sekwencyjne podejście do uzyskiwania przewidywań zamiast równoległego budowania drzew. W gradient boosting, każde drzewo decyzyjne przewiduje błąd poprzedniego drzewa decyzyjnego – tym samym zwiększając (poprawiając) błąd (gradient).
Working of Gradient Boosting
- Inicjalizacja przewidywań z prostym drzewem decyzyjnym.
- Oblicz wartość rezydualną (rzeczywista-przewidywana).
- Zbuduj kolejne płytkie drzewo decyzyjne, które przewiduje wartość rezydualną na podstawie wszystkich niezależnych wartości.
- Uaktualnij oryginalną prognozę za pomocą nowej prognozy pomnożonej przez współczynnik uczenia.
- Powtarzaj kroki od drugiego do czwartego przez określoną liczbę iteracji (liczba iteracji będzie równa liczbie drzew).
Checkout this post: Gradient Boosting From Scratch
Wyniki modeli klasyfikacyjnych
Macierz konfuzji
Macierz konfuzji to tabela, która jest często używana do opisania wydajności modelu klasyfikacyjnego na zbiorze danych testowych, dla których znane są prawdziwe wartości. Jest to tabela z czterema różnymi kombinacjami wartości przewidywanych i rzeczywistych w przypadku klasyfikatora binarnego.
Macierz konfuzji dla problemu klasyfikacji wieloklasowej może pomóc w określeniu wzorców błędów.
Dla klasyfikatora binarnego:
Prawdziwie pozytywny to wynik, w którym model poprawnie przewiduje klasę pozytywną. Podobnie, prawdziwy negatyw jest wynikiem, w którym model poprawnie przewiduje klasę negatywną.
Fałszywy pozytywny &fałszywy negatywny
Pojęcia fałszywy pozytywny i fałszywy negatywny są używane w określaniu, jak dobrze model przewiduje w odniesieniu do klasyfikacji. Fałszywy pozytywny to wynik, w którym model błędnie przewiduje klasę pozytywną. I fałszywy negatywny jest wynikiem, gdzie model nieprawidłowo przewiduje klasę negatywną. Im więcej wartości na głównej przekątnej, tym lepszy model, podczas gdy druga przekątna daje najgorszy wynik klasyfikacji.
Fałszywy pozytywny
Przykład, w którym model błędnie przewidział klasę pozytywną. Na przykład, model wywnioskował, że dana wiadomość e-mail jest spamem (klasa pozytywna), ale ta wiadomość e-mail w rzeczywistości nie była spamem. To jest jak znak ostrzegawczy, że błąd powinien zostać naprawiony, ponieważ nie jest to zbyt poważny problem w porównaniu z fałszywym negatywem.
Fałszywy pozytyw (błąd typu I) – kiedy odrzucasz prawdziwą hipotezę zerową
Fałszywy negatyw
Przykład, w którym model błędnie przewidział klasę negatywną. Na przykład, model wywnioskował, że dana wiadomość e-mail nie jest spamem (klasa negatywna), ale ta wiadomość e-mail faktycznie była spamem. Jest to jak znak niebezpieczeństwa, że błąd powinien być naprawiony wcześnie, ponieważ jest poważniejszy niż fałszywy pozytyw.
Fałszywy negatyw (błąd typu II) – kiedy przyjmujemy fałszywą hipotezę zerową.
To zdjęcie doskonale ilustruje powyższą metrykę. Wynik testu mężczyzny jest fałszywie pozytywny, ponieważ mężczyzna nie może być w ciąży. Wyniki testu kobiety są fałszywie negatywne, ponieważ jest ona w ciąży.
Z macierzy konfuzji możemy wywnioskować dokładność, precyzję, przywołanie i wynik F-1.
Precyzyjność
Precyzyjność to ułamek przewidywań, w których nasz model miał rację.
Dokładność może być również zapisana jako
Dokładność sama w sobie nie mówi wszystkiego, gdy pracujemy z zestawem danych niezrównoważonych klasowo, gdzie istnieje znaczna rozbieżność między liczbą etykiet pozytywnych i negatywnych. Precyzja i przywołanie są lepszymi metrykami do oceny problemów związanych z nierównowagą klas.
Precyzja
Precyzja jest to ilość przewidywanych przez nas poprawnych wyników dla wszystkich klas.
Precyzja powinna być jak najwyższa.
Przywołanie
Przywołanie jest to ilość przewidywanych przez nas poprawnych wyników dla wszystkich pozytywnych klas. Jest również nazywany czułością lub współczynnikiem TPR (ang. true positive rate).
Recall powinien być tak wysoki, jak to tylko możliwe.
F-1 Score
Często wygodnie jest połączyć precyzję i recall w jedną metrykę zwaną wynikiem F-1, szczególnie jeśli potrzebujemy prostego sposobu na porównanie dwóch klasyfikatorów. Wynik F-1 jest średnią harmoniczną precyzji i wycofania.
Średnia regularna traktuje wszystkie wartości jednakowo, podczas gdy średnia harmoniczna daje znacznie większą wagę niskim wartościom, karząc tym samym wartości skrajne bardziej. W rezultacie, klasyfikator otrzyma wysoki wynik F-1 tylko wtedy, gdy zarówno odwołanie jak i precyzja są wysokie.
Krzywa operatora odbiorcy (ROC) &Obszar pod krzywą (AUC)
Krzywa ROC jest ważną metryką oceny klasyfikacji. Mówi nam, jak dobrze model dokładnie przewidział. Krzywa ROC pokazuje czułość klasyfikatora poprzez wykreślenie wskaźnika prawdziwych pozytywów do wskaźnika fałszywych pozytywów. Jeśli klasyfikator jest wybitny, współczynnik prawdziwych pozytywów wzrośnie, a obszar pod krzywą będzie bliski jedności. Jeżeli klasyfikator jest podobny do losowego zgadywania, współczynnik prawdziwych wyników pozytywnych będzie rósł liniowo wraz ze współczynnikiem fałszywych wyników pozytywnych. Im lepsza miara AUC, tym lepszy model.
Krzywe profilu skumulowanej dokładności
WPR modelu przedstawia skumulowaną liczbę pozytywnych wyników wzdłuż osi y versus odpowiadającą jej skumulowaną liczbę parametrów klasyfikujących wzdłuż osi x. CAP różni się od charakterystyki operacyjnej odbiornika (ROC), która przedstawia współczynnik prawdziwie pozytywny w stosunku do współczynnika fałszywie pozytywnego. Krzywa CAP jest rzadko używana w porównaniu z krzywą ROC.
Rozważmy model, który przewiduje, czy klient kupi produkt. Jeśli klient zostanie wybrany losowo, istnieje 50% szans, że kupi produkt. Skumulowana liczba elementów, dla których klient dokona zakupu, będzie rosła liniowo w kierunku wartości maksymalnej odpowiadającej całkowitej liczbie klientów. Rozkład ten nazywany jest „losowym” CAP. Jest to niebieska linia na powyższym wykresie. Doskonała prognoza, z drugiej strony, dokładnie określa, który klient kupi produkt, tak że maksymalna liczba klientów kupujących nieruchomość zostanie osiągnięta przy minimalnej liczbie klientów wybierających spośród elementów. Tworzy to stromą linię na krzywej CAP, która pozostaje płaska po osiągnięciu maksimum, co jest „perfekcyjnym” CAP. Jest również nazywany „idealną” linią i jest szarą linią na rysunku powyżej.
W końcu model powinien przewidywać, gdzie maksymalizuje poprawne przewidywania i zbliża się do idealnej linii modelu.
.