Articles

Python Programming Tutorials

Praktyczny samouczek uczenia maszynowego z Pythonem Wprowadzenie

Co będzie potrzebne do tej serii samouczków:
  • Instalacja numpy, matplotlib, pandas, sklearn wraz z ich zależnościami

pip install numpy

pip install scipy

pip install scikit-learn

pip install scikit-learn

pip install matplotlib

pip install pandas

Potrzebujesz pomocy w instalacji pakietów za pomocą pip? zobacz samouczek pip install

Witajcie dziewczyny i chłopaki, witamy w dogłębnym i praktycznym kursie uczenia maszynowego.

Celem tego kursu jest danie ci całościowego zrozumienia uczenia maszynowego, obejmującego teorię, zastosowanie i wewnętrzne działanie algorytmów nadzorowanych, nienadzorowanych i głębokiego uczenia.

W tej serii, będziemy obejmować regresję liniową, K Nearest Neighbors, Support Vector Machines (SVM), płaskie klastery, hierarchiczne klastery i sieci neuronowe.

Dla każdego z głównych algorytmów, które omówimy, omówimy intuicje wysokiego poziomu algorytmów i jak są one logicznie przeznaczone do pracy. Następnie, zastosujemy algorytmy w kodzie, używając rzeczywistych zbiorów danych wraz z modułem, takim jak Scikit-Learn. Wreszcie, będziemy nurkować do wnętrza każdego z algorytmów poprzez odtworzenie ich w kodzie, od podstaw, sami, w tym wszystkich matematyki zaangażowanych. To powinno dać ci pełne zrozumienie, jak dokładnie działają te algorytmy, jak można je podrasować, jakie są ich zalety i jakie są ich wady.

Aby podążać za tą serią, sugeruję, abyś miał przynajmniej podstawowe zrozumienie Pythona. Jeśli nie, sugeruję, abyś przynajmniej podążał za samouczkiem Python 3 Podstawy, aż do instalacji modułu za pomocą pip. Jeśli masz podstawowe zrozumienie Pythona i chęć do nauki/zadawania pytań, będziesz w stanie podążać za nim bez żadnych problemów. Większość algorytmów uczenia maszynowego jest w rzeczywistości dość prosta, ponieważ muszą być one w celu skalowania do dużych zbiorów danych. Matematyka to zazwyczaj algebra liniowa, ale zrobię co w mojej mocy, aby nadal wyjaśniać wszystkie matematyki. Jeśli jesteś zdezorientowany/zagubiony/zaciekawiony czymkolwiek, zapytaj w sekcji komentarzy na YouTube, społeczności tutaj, lub wysyłając do mnie e-mail. Będziesz także potrzebował zainstalowanych Scikit-Learn i Pandas, wraz z innymi, które złapiemy po drodze.

Uczenie maszynowe zostało zdefiniowane w 1959 roku przez Arthura Samuela jako „dziedzina nauki, która daje komputerom zdolność do uczenia się bez bycia wyraźnie zaprogramowanym”. Oznacza to wpojenie wiedzy maszynom bez jej twardego zakodowania. Z tego, co osobiście zauważyłem, ludzie spoza społeczności programistów wierzą głównie, że inteligencja maszyn jest zakodowana na sztywno, zupełnie nie zdając sobie sprawy z rzeczywistości tej dziedziny. Jednym z największych wyzwań, jakie miałem z uczeniem maszynowym, była obfitość materiałów na temat części poświęconej uczeniu się. Można znaleźć wzory, wykresy, równania i mnóstwo teorii na temat uczenia maszynowego, ale bardzo niewiele na temat rzeczywistej części „maszynowej”, gdzie faktycznie programuje się maszynę i uruchamia algorytmy na prawdziwych danych. Wynika to głównie z historii. W latach 50-tych, maszyny były dość słabe, i w bardzo małej podaży, która pozostała bardzo dużo przez pół wieku. Uczenie maszynowe było zdegradowane do bycia głównie teoretycznym i rzadko faktycznie stosowanym. Support Vector Machine (SVM), na przykład, został stworzony przez Vladimir Vapnik w Związku Radzieckim w 1963 roku, ale w dużej mierze przeszedł niezauważony aż do lat 90-tych, kiedy Vapnik został scooped ze Związku Radzieckiego do Stanów Zjednoczonych przez Bell Labs. Sieć neuronowa została wymyślona w latach 40-tych, ale komputery w tym czasie nie były wystarczająco wydajne, aby je dobrze uruchomić i nie były aż do stosunkowo niedawnych czasów.

„Pomysł” uczenia maszynowego wchodził i wychodził z łask kilka razy w historii, za każdym razem pozostawiając ludzi myślących, że to tylko fanaberia. To jest naprawdę bardzo niedawno, że byliśmy w stanie umieścić wiele z uczenia maszynowego do dowolnego przyzwoitego testu. Obecnie, można uruchomić i wynająć klaster procesorów graficznych o wartości 100 000 dolarów za kilka dolarów na godzinę, co jeszcze 10 lat temu było przedmiotem marzeń doktorantów. Uczenie maszynowe zyskało kolejny impuls w połowie lat 2000 i od tego czasu wciąż rośnie, korzystając również z prawa Moore’a. Poza tym, istnieje wiele zasobów, aby pomóc Ci w podróży z uczenia maszynowego, jak ten samouczek. Możesz po prostu wyszukać w Google temat i znaleźć więcej niż wystarczająco dużo informacji, aby utrzymać cię zajęty przez jakiś czas.

Jest to tak bardzo do punktu, w którym mamy teraz moduły i API do naszej dyspozycji, i można zaangażować się w uczenie maszynowe bardzo łatwo bez prawie żadnej wiedzy, jak to działa. Z domyślnych z Scikit-learn, można uzyskać 90-95% dokładności na wiele zadań od razu po wejściu. Uczenie maszynowe jest jak samochód, nie musisz wiedzieć zbyt wiele o tym, jak działa, aby uzyskać niesamowitą ilość użyteczności z niego. Jeśli chcesz przesunąć granice wydajności i efektywności, jednak trzeba kopać w pod maską, która jest bardziej, jak ten kurs jest nastawiony. Jeśli szukasz szybkiego samouczka na temat zastosowania uczenia maszynowego na danych, mam już prosty przykład klasyfikacji i prosty przykład klastrowania (uczenie maszynowe bez nadzoru), który możesz sprawdzić.

Pomimo pozornego wieku i dojrzałości uczenia maszynowego, powiedziałbym, że nie ma lepszego czasu niż teraz, aby się go nauczyć, ponieważ można go faktycznie użyć. Maszyny są dość potężne, ten, nad którym pracujesz, może prawdopodobnie szybko zrobić większość tej serii. Dane są również bardzo obfite w ostatnim czasie.

Pierwszym tematem, który poruszymy jest Regresja, którą zajmiemy się w następnym tutorialu. Upewnij się, że masz zainstalowanego Pythona 3, wraz z Pandas i Scikit-Learn.

Następny tutorial: Regresja – Wstęp i dane

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *