AI z Pythonem - Machine Learning
Uczenie się oznacza zdobywanie wiedzy lub umiejętności poprzez naukę lub doświadczenie. Na tej podstawie możemy zdefiniować uczenie maszynowe (ML) w następujący sposób -
Można ją zdefiniować jako dziedzinę informatyki, a dokładniej zastosowania sztucznej inteligencji, która zapewnia systemom komputerowym zdolność uczenia się na podstawie danych i doskonalenia się na podstawie doświadczenia bez konieczności bezpośredniego programowania.
Zasadniczo głównym celem uczenia maszynowego jest umożliwienie komputerom uczenia się automatycznie bez interwencji człowieka. Teraz pojawia się pytanie, jak można rozpocząć i przeprowadzić taką naukę? Można to rozpocząć od obserwacji danych. Dane mogą być przykładami, instrukcjami lub bezpośrednimi doświadczeniami. Następnie na podstawie tych danych wejściowych maszyna podejmuje lepszą decyzję, szukając pewnych wzorców w danych.
Rodzaje uczenia maszynowego (ML)
Algorytmy uczenia maszynowego pomagają systemowi komputerowemu uczyć się bez konieczności bezpośredniego programowania. Algorytmy te są podzielone na nadzorowane lub nienadzorowane. Zobaczmy teraz kilka algorytmów -
Nadzorowane algorytmy uczenia maszynowego
Jest to najczęściej używany algorytm uczenia maszynowego. Nazywa się to nadzorowanym, ponieważ proces uczenia algorytmu ze zbioru danych szkoleniowych można traktować jako nauczyciela nadzorującego proces uczenia się. W tego rodzaju algorytmie ML możliwe wyniki są już znane, a dane treningowe są również oznaczone poprawnymi odpowiedziami. Można to rozumieć następująco:
Załóżmy, że mamy zmienne wejściowe x i zmienną wyjściową y i zastosowaliśmy algorytm, aby nauczyć się funkcji mapowania od wejścia do wyjścia, na przykład -
Y = f(x)
Teraz głównym celem jest przybliżenie funkcji mapowania tak dobrze, że mając nowe dane wejściowe (x), możemy przewidzieć zmienną wyjściową (Y) dla tych danych.
Głównie nadzorowane problemy z pochylaniem można podzielić na dwa rodzaje problemów -
Classification - Problem jest nazywany problemem klasyfikacyjnym, gdy mamy skategoryzowane dane wyjściowe, takie jak „czarny”, „uczący”, „nieuczący” itp.
Regression - Problem nazywany jest problemem regresji, gdy mamy rzeczywiste wartości wyjściowe, takie jak „odległość”, „kilogram” itp.
Drzewo decyzyjne, las losowy, knn, regresja logistyczna to przykłady nadzorowanych algorytmów uczenia maszynowego.
Algorytmy uczenia maszynowego bez nadzoru
Jak sama nazwa wskazuje, tego rodzaju algorytmy uczenia maszynowego nie mają żadnego nadzorcy, który by udzielał jakichkolwiek wskazówek. Właśnie dlatego nienadzorowane algorytmy uczenia maszynowego są ściśle powiązane z tym, co niektórzy nazywają prawdziwą sztuczną inteligencją. Można to rozumieć następująco:
Załóżmy, że mamy zmienną wejściową x, wtedy nie będzie odpowiadających zmiennych wyjściowych, jak w algorytmach nadzorowanego uczenia się.
W prostych słowach możemy powiedzieć, że w uczeniu się bez nadzoru nie będzie poprawnej odpowiedzi ani nauczyciela, który mógłby udzielać wskazówek. Algorytmy pomagają odkrywać interesujące wzorce w danych.
Problemy z uczeniem się bez nadzoru można podzielić na dwa rodzaje:
Clustering- W przypadku problemów związanych z klastrami, musimy odkryć nieodłączne grupowanie danych. Na przykład grupowanie klientów według ich zachowań zakupowych.
Association- Problem nazywany jest problemem skojarzenia, ponieważ tego rodzaju problemy wymagają odkrycia reguł opisujących duże porcje naszych danych. Na przykład znalezienie klientów, którzy kupują obax i y.
K-średnie dla grupowania, algorytm Apriori dla asocjacji to przykłady nienadzorowanych algorytmów uczenia maszynowego.
Wzmacniające algorytmy uczenia maszynowego
Tego rodzaju algorytmy uczenia maszynowego są używane bardzo rzadziej. Algorytmy te uczą systemy podejmowania określonych decyzji. Zasadniczo maszyna jest narażona na działanie środowiska, w którym nieustannie się uczy, stosując metodę prób i błędów. Algorytmy te uczą się na podstawie wcześniejszych doświadczeń i próbują uchwycić możliwie najlepszą wiedzę, aby podejmować trafne decyzje. Proces decyzyjny Markowa jest przykładem wzmacniających algorytmów uczenia maszynowego.
Najpopularniejsze algorytmy uczenia maszynowego
W tej sekcji dowiemy się o najpopularniejszych algorytmach uczenia maszynowego. Algorytmy opisano poniżej -
Regresja liniowa
Jest to jeden z najbardziej znanych algorytmów statystyki i uczenia maszynowego.
Podstawowa koncepcja - głównie regresja liniowa to model liniowy, który zakłada liniową zależność między zmiennymi wejściowymi, powiedzmy x, a pojedynczą zmienną wyjściową powiedz y. Innymi słowy, możemy powiedzieć, że y można obliczyć z liniowej kombinacji zmiennych wejściowych x. Zależność między zmiennymi można ustalić, dopasowując najlepszą linię.
Rodzaje regresji liniowej
Regresja liniowa ma dwa typy:
Simple linear regression - Algorytm regresji liniowej nazywany jest prostą regresją liniową, jeśli ma tylko jedną zmienną niezależną.
Multiple linear regression - Algorytm regresji liniowej nazywany jest wielokrotną regresją liniową, jeśli ma więcej niż jedną zmienną niezależną.
Regresja liniowa jest używana głównie do szacowania wartości rzeczywistych na podstawie zmiennych ciągłych. Na przykład całkowitą sprzedaż sklepu w ciągu jednego dnia na podstawie wartości rzeczywistych można oszacować metodą regresji liniowej.
Regresja logistyczna
Jest to algorytm klasyfikacyjny, znany również jako logit regresja.
Głównie regresja logistyczna jest algorytmem klasyfikacyjnym używanym do oszacowania wartości dyskretnych, takich jak 0 lub 1, prawda lub fałsz, tak lub nie, na podstawie danego zestawu zmiennych niezależnych. Zasadniczo przewiduje prawdopodobieństwo, dlatego jego wynik mieści się między 0 a 1.
Drzewo decyzyjne
Drzewo decyzyjne to nadzorowany algorytm uczenia się, który jest najczęściej używany do rozwiązywania problemów klasyfikacyjnych.
Zasadniczo jest to klasyfikator wyrażony jako partycja rekurencyjna na podstawie zmiennych niezależnych. Drzewo decyzyjne ma węzły, które tworzą drzewo zakorzenione. Ukorzenione drzewo to ukierunkowane drzewo z węzłem zwanym „korzeniem”. Root nie ma żadnych przychodzących krawędzi, a wszystkie inne węzły mają jedną przychodzącą krawędź. Te węzły nazywane są liśćmi lub węzłami decyzyjnymi. Na przykład, rozważ następujące drzewo decyzyjne, aby zobaczyć, czy dana osoba jest sprawna, czy nie.
Maszyna wektorów wsparcia (SVM)
Jest używany zarówno do problemów klasyfikacyjnych, jak i regresyjnych. Ale głównie jest używany do problemów klasyfikacyjnych. Główną koncepcją SVM jest wykreślenie każdego elementu danych jako punktu w przestrzeni n-wymiarowej, przy czym wartość każdej cechy jest wartością określonej współrzędnej. Tutaj n byłoby cechami, które mielibyśmy. Poniżej znajduje się prosta reprezentacja graficzna, aby zrozumieć koncepcję SVM -
Na powyższym diagramie mamy dwie cechy, dlatego najpierw musimy wykreślić te dwie zmienne w przestrzeni dwuwymiarowej, gdzie każdy punkt ma dwie współrzędne, zwane wektorami nośnymi. Linia dzieli dane na dwie różne sklasyfikowane grupy. Ta linia byłaby klasyfikatorem.
Naïve Bayes
Jest to również technika klasyfikacyjna. Logika stojąca za tą techniką klasyfikacji polega na wykorzystaniu twierdzenia Bayesa do budowy klasyfikatorów. Zakłada się, że predyktory są niezależne. W prostych słowach zakłada, że obecność określonej cechy w klasie nie ma związku z obecnością jakiejkolwiek innej cechy. Poniżej znajduje się równanie twierdzenia Bayesa -
$$ P \ left (\ frac {A} {B} \ right) = \ frac {P \ left (\ frac {B} {A} \ right) P \ left (A \ right)} {P \ left ( B \ right)} $$
Model Naïve Bayes jest łatwy do zbudowania i szczególnie przydatny w przypadku dużych zbiorów danych.
K-Nearest Neighbors (KNN)
Służy zarówno do klasyfikacji, jak i regresji problemów. Jest szeroko stosowany do rozwiązywania problemów klasyfikacyjnych. Główną koncepcją tego algorytmu jest to, że przechowywał on wszystkie dostępne przypadki i klasyfikował nowe przypadki większością głosów k sąsiadów. Sprawa jest następnie przypisywana do klasy, która jest najbardziej powszechna wśród K najbliższych sąsiadów, mierzonej funkcją odległości. Funkcją odległości może być odległość Euklidesa, Minkowskiego i Hamminga. Aby użyć KNN, weź pod uwagę następujące kwestie -
Obliczeniowo KNN są drogie niż inne algorytmy używane do rozwiązywania problemów klasyfikacyjnych.
Wymagana normalizacja zmiennych, w przeciwnym razie zmienne z wyższego zakresu mogą ją zniekształcić.
W KNN musimy pracować na etapie wstępnego przetwarzania, takim jak usuwanie hałasu.
Grupowanie K-średnich
Jak sama nazwa wskazuje, służy do rozwiązywania problemów związanych z klastrami. Zasadniczo jest to rodzaj uczenia się bez nadzoru. Główną logiką algorytmu grupowania K-średnich jest klasyfikacja zbioru danych za pomocą kilku klastrów. Wykonaj następujące kroki, aby utworzyć klastry metodą K -
K-oznacza wybiera liczbę k punktów dla każdego klastra zwanego centroidami.
Teraz każdy punkt danych tworzy klaster z najbliższymi centroidami, tj. K klastrów.
Teraz znajdzie centroidy każdego klastra na podstawie istniejących członków klastra.
Musimy powtarzać te kroki, aż nastąpi konwergencja.
Losowy las
Jest to nadzorowany algorytm klasyfikacji. Zaletą algorytmu losowego lasu jest to, że można go stosować zarówno do klasyfikacji, jak i do problemów regresyjnych. Zasadniczo jest to zbiór drzew decyzyjnych (np. Las) lub można powiedzieć zbiór drzew decyzyjnych. Podstawowa koncepcja lasu losowego polega na tym, że każde drzewo nadaje klasyfikację, a las wybiera spośród nich najlepsze klasyfikacje. Oto zalety algorytmu Random Forest -
Losowy klasyfikator lasu może być używany zarówno do zadań klasyfikacji, jak i regresji.
Potrafią obsłużyć brakujące wartości.
Nie przesadzi z modelem, nawet jeśli mamy więcej drzew w lesie.