Wprowadzenie do algorytmów uczenia maszynowego

Uczenie maszynowe to badanie analityki predykcyjnej, które działa na zasadzie, że komputery uczą się na podstawie danych z przeszłości, a następnie przewidują nowe dane. Pojawienie się algorytmów uczenia maszynowego było dawno temu, kiedy opracowano komputery. Jednak niedawny szum jest wynikiem dużej ilości generowanych danych i ogromnej mocy obliczeniowej, jaką dysponują współczesne komputery. Doprowadziło to do pojawienia się Deep Learning, podobszaru uczenia maszynowego, który rozwija się dzięki większej ilości danych. Działa jak ludzki mózg, w którym neurony są wykorzystywane do podejmowania lepszych decyzji. Podobnie w głębokim uczeniu się sieci neuronowe tworzą warstwy zgodne z zasadą przekazywania i wstecznej propagacji w celu podejmowania lepszych decyzji.

Kategorie algorytmów uczenia maszynowego

Dziedzinę algorytmów uczenia maszynowego można podzielić na:

  • Uczenie nadzorowane - w nauczaniu nadzorowanym zestaw danych jest oznaczony, tzn. Dla każdej cechy lub zmiennej niezależnej istnieją odpowiednie dane docelowe, których użylibyśmy do wyszkolenia modelu.
  • Uczenie nadzorowane przez ONZ - w przeciwieństwie do uczenia nadzorowanego, zestaw danych nie jest w tym przypadku oznaczony. Zatem technika grupowania jest używana do grupowania danych na podstawie ich podobieństwa między punktami danych w tej samej grupie.
  • Reinforcement Learning - specjalny rodzaj uczenia maszynowego, w którym model uczy się na podstawie każdego podjętego działania. Model jest nagradzany za każdą poprawną decyzję i karany za każdą złą decyzję, która pozwala mu nauczyć się wzorców i podejmować trafniejsze decyzje na podstawie nieznanych danych.

Podział algorytmów uczenia maszynowego

Problemy w algorytmach uczenia maszynowego można podzielić na:

  • Regresja - istnieje ciągły związek między zmiennymi zależnymi i niezależnymi. Zmienna docelowa ma charakter liczbowy, podczas gdy zmienne niezależne mogą być liczbowe lub kategoryczne.
  • Klasyfikacja - najczęstszym stwierdzeniem problemu, jakie można znaleźć w świecie rzeczywistym, jest klasyfikacja punktu danych w jakiejś klasie binarnej, wielomianowej lub porządkowej. W problemie z klasyfikacją binarną zmienna docelowa ma tylko dwa wyniki (Tak / Nie, 0/1, Prawda / Fałsz). W problemie klasyfikacji wielomianowej istnieje wiele klas w zmiennej docelowej (Apple / Orange / Mango itd.). W problemie z porządkowaniem porządkowym zmienna docelowa jest uporządkowana (np. - ocena uczniów).

Teraz, aby rozwiązać tego rodzaju problemy, programiści i naukowcy opracowali niektóre programy lub algorytmy, które można wykorzystać na danych do prognozowania. Algorytmy te można podzielić na algorytmy liniowe i nieliniowe lub oparte na drzewach. Algorytmy liniowe, takie jak regresja liniowa, regresja logistyczna, są na ogół stosowane, gdy istnieje liniowa zależność między cechą a zmienną docelową, podczas gdy dane wykazujące wzorce nieliniowe, metody oparte na drzewach, takie jak drzewo decyzyjne, las losowy, wzmocnienie gradientu, itp. są preferowane.

Jak dotąd mamy krótką intuicję na temat uczenia maszynowego. Teraz poznasz niektóre z jego wstępnie zaprogramowanych algorytmów, których możesz użyć w następnym projekcie.

Algorytmy

Istnieje wiele algorytmów uczenia maszynowego, które są obecnie dostępne na rynku i tylko wzrosną, biorąc pod uwagę ilość badań prowadzonych w tej dziedzinie. Regresja liniowa i logistyczna to na ogół pierwsze algorytmy, których uczysz się jako badacz danych, a następnie bardziej zaawansowane algorytmy.

Poniżej znajdują się niektóre algorytmy uczenia maszynowego wraz z przykładowymi fragmentami kodu w języku Python.

1. Regresja liniowa

Jak sama nazwa wskazuje, algorytm ten można zastosować w przypadkach, gdy zmienna docelowa, która ma charakter ciągły, jest liniowo zależna od zmiennych zależnych. Jest reprezentowany przez -

y = a * x + b + e, gdzie y jest zmienną docelową, którą próbujemy przewidzieć, a jest punktem przecięcia, a b jest nachyleniem, x jest naszą zmienną zależną użytą do wykonania prognozy. Jest to prosta regresja liniowa, ponieważ istnieje tylko jedna zmienna niezależna. W przypadku wielokrotnej regresji liniowej równanie wyglądałoby następująco:

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Tutaj e jest składnikiem błędu, a a1, a2 .. a (n) są współczynnikiem zmiennych niezależnych.

Aby ocenić wydajność modelu, stosuje się metrykę, która w tym przypadku może być Pierwiastkowym błędem kwadratowym, który jest pierwiastkiem kwadratowym średniej z sumy różnicy między wartościami rzeczywistymi i przewidywanymi.

Celem regresji liniowej jest znalezienie linii najlepszego dopasowania, która zminimalizuje różnicę między faktycznymi a przewidywanymi punktami danych.

Regresję liniową można zapisać w Pythonie, jak poniżej -

2. Regresja logistyczna

Pod względem zachowania relacji liniowej jest to to samo, co regresja liniowa. Jednak w przeciwieństwie do regresji liniowej zmienna docelowa w regresji logistycznej ma charakter kategoryczny, tj. Binarny, wielomianowy lub porządkowy. Wybór funkcji aktywacji jest ważny w regresji logistycznej, ponieważ w przypadku problemów z klasyfikacją binarną wykorzystywany jest dziennik szans na korzyść, tj. Funkcja sigmoidalna.

W przypadku problemu wieloklasowego preferowana jest funkcja softmax, ponieważ funkcja sigmoidalna zajmuje dużo czasu obliczeniowego.

Miarą używaną do oceny problemu z klasyfikacją jest na ogół dokładność lub krzywa ROC. Im większy obszar pod ROC, tym lepszy model. Losowy wykres miałby AUC 0, 5. Wartość 1 oznacza największą dokładność, a 0 oznacza najmniejszą dokładność.

Regresję logistyczną można zapisać w nauce jako -


3. K-Najbliżsi sąsiedzi

Algorytmy uczenia maszynowego można zastosować zarówno do problemów z klasyfikacją, jak i regresją. Idea KNN polega na tym, że przewiduje ona wartość nowego punktu danych na podstawie jego K najbliższych sąsiadów. K jest zazwyczaj preferowana jako liczba nieparzysta, aby uniknąć konfliktu. Podczas klasyfikowania dowolnego nowego punktu danych brana jest pod uwagę klasa z najwyższym trybem w sąsiadach. Podczas gdy w przypadku problemu regresji średnia jest uważana za wartość.

Dowiedziałem się, że KNN jest napisany jako -


KNN służy do budowy silnika rekomendacji.

4. Obsługa maszyn wektorowych

Algorytm klasyfikacji, w którym hiperpłaszczyzna oddziela dwie klasy. W problemie z klasyfikacją binarną uważa się, że dwa wektory z dwóch różnych klas są znane jako wektory podporowe, a hiperpłaszczyzna jest rysowana w maksymalnej odległości od wektorów podporowych.

Jak widać, pojedynczy wiersz oddziela dwie klasy. Jednak w większości przypadków dane nie byłyby tak doskonałe, a prosta hiperpłaszczyzna nie byłaby w stanie oddzielić klas. Dlatego musisz dostroić parametry, takie jak regularyzacja, jądro, gamma i tak dalej.

Jądro może być liniowe lub wielomianowe w zależności od sposobu rozdzielenia danych. W tym przypadku jądro ma charakter liniowy. W przypadku regularyzacji należy wybrać optymalną wartość C, ponieważ wysoka wartość może prowadzić do przeregulowania, a niewielka wartość może nie odpowiadać modelowi. Wpływ pojedynczego przykładu treningowego określa Gamma. Punkty w pobliżu linii są rozpatrywane w wysokiej gamma i vice versa w przypadku niskiej gamma.

W sklearn SVM jest zapisany jako -


5. Naive Bayes

Działa na zasadzie twierdzenia Bayesa, która stwierdza prawdopodobieństwo zdarzenia, biorąc pod uwagę niektóre prawdziwe warunki. Twierdzenie Bayesa jest reprezentowane jako -

Algorytm nazywa się Naiwny, ponieważ uważa, że ​​wszystkie zmienne są niezależne, a obecność jednej zmiennej nie ma żadnego związku z innymi zmiennymi, co nigdy nie jest prawdą. Naive Bayes może być wykorzystywany w klasyfikacji spamu e-mail oraz w klasyfikacji tekstowej.

Naiwny kod Bayesa w Pythonie -

6. Drzewo decyzyjne

Algorytm drzewa decyzyjnego stosowany w przypadku problemów związanych z klasyfikacją i regresją jest jednym z najprostszych i łatwo interpretowalnych algorytmów uczenia maszynowego. Nie mają na niego wpływu wartości odstające ani brakujące wartości w danych i mogą uchwycić nieliniowe relacje między zmiennymi zależnymi i niezależnymi.

Aby zbudować Drzewo decyzyjne, najpierw brane są pod uwagę wszystkie funkcje, ale funkcja o maksymalnym zysku informacji jest traktowana jako końcowy węzeł główny, na podstawie którego dokonuje się kolejnego podziału. To dzielenie jest kontynuowane w węźle potomnym na podstawie maksymalnych kryteriów informacyjnych i zatrzymuje się, aż wszystkie wystąpienia zostaną sklasyfikowane lub danych nie będzie można dalej podzielić. Drzewa decyzyjne są często podatne na nadmierne dopasowanie, dlatego konieczne jest dostrojenie hiperparametru, takiego jak maksymalna głębokość, minimalne węzły liści, minimalne próbki, maksymalne cechy i tak dalej. Aby zmniejszyć nadmierne dopasowanie, istnieje zachłanne podejście, które określa ograniczenia na każdym etapie i wybiera najlepsze możliwe kryteria dla tego podziału. Istnieje inne lepsze podejście, nazywane Przycinaniem, w którym drzewo najpierw buduje się na określoną wcześniej głębokość, a następnie zaczynając od dołu, węzły są usuwane, jeśli nie poprawi modelu.

W sklearn drzewa decyzyjne są kodowane jako -



7. Losowy las

Aby zmniejszyć nadmierne dopasowanie w drzewie decyzyjnym, konieczne jest zmniejszenie wariancji modelu, dlatego też wprowadzono koncepcję workowania. Tworzenie worków jest techniką, w której dane wyjściowe kilku klasyfikatorów są brane pod uwagę w celu uzyskania wyniku końcowego. Losowy las jest jedną z takich metod grupowania, w której zestaw danych jest próbkowany do wielu zestawów danych, a funkcje są wybierane losowo dla każdego zestawu. Następnie do każdego próbkowanego danych stosuje się algorytm drzewa decyzyjnego, aby uzyskać dane wyjściowe z każdego trybu. W przypadku problemu regresji brana jest średnia wyników wszystkich modeli, podczas gdy w przypadku problemu klasyfikacji klasa, która uzyska maksymalny głos, jest brana pod uwagę przy klasyfikacji punktu danych. Na Losowy Las nie mają wpływu wartości odstające, brakujące wartości w danych, a także pomaga to w zmniejszeniu wymiarowości. Nie można jednak zinterpretować, która wada losowego lasu. W Pythonie możesz kodować Losowy Las jako -


8. K-oznacza Clustering

Do tej pory pracowaliśmy z nadzorowanymi problemami z uczeniem się, w których dla każdego wkładu występuje odpowiedni wynik. Teraz dowiedzielibyśmy się o uczeniu się bez nadzoru, w którym dane są nieoznaczone i muszą zostać pogrupowane w określone grupy. Dostępnych jest kilka technik grupowania. Jednak najczęstszym z nich jest grupowanie środków typu K. Atramentowe, k oznacza liczbę klastrów, które należy ustawić przed utrzymaniem maksymalnej wariancji w zbiorze danych. Po ustawieniu k centroidy są inicjowane. Centroidy są następnie wielokrotnie dostosowywane, tak aby odległość między punktami danych w środku ciężkości była maksymalna, a odległość między dwoma oddzielnymi elementami była maksymalna. Odległość euklidesowa, odległość na Manhattanie itp. To niektóre ze stosowanych w tym celu formuł odległości.

Wartość k można znaleźć w metodzie łokciowej.

Klastrowanie K-średnich jest stosowane w branżach e-commerce, w których klienci są grupowani w oparciu o ich wzorce zachowań. Można go również wykorzystać w analizie ryzyka. Poniżej znajduje się kod python -


Wniosek: algorytmy uczenia maszynowego

Data Scientist to najseksowniejsza praca w XXI wieku, a uczenie maszynowe jest z pewnością jednym z kluczowych obszarów specjalizacji. Aby zostać naukowcem danych, trzeba dogłębnie zrozumieć wszystkie te algorytmy, a także kilka innych nowych technik, takich jak głębokie uczenie się.

Polecane artykuły

Jest to przewodnik po algorytmach uczenia maszynowego. Tutaj omówiliśmy Pojęcie, kategorie, problemy i różne algorytmy języka maszynowego. Możesz także przejrzeć nasze inne Sugerowane artykuły, aby dowiedzieć się więcej -

  1. Techniki uczenia maszynowego
  2. Co to jest głębokie uczenie się
  3. Data Scientist vs. Machine Learning
  4. Uczenie nadzorowane a uczenie się bez nadzoru
  5. Uczenie maszynowe hiperparametrów
  6. Co to jest nauka zbrojenia?
  7. Najczęściej stosowane techniki uczenia się w zespole
  8. Kompletny przewodnik po przykładach algorytmu C ++
  9. Przewodnik po etapach cyklu uczenia maszynowego

Kategoria: