W tym przewodniku, będziemy przechodzić przez 8 zabawnych projektów uczenia maszynowego dla początkujących. Projekty są jednymi z najlepszych inwestycji Twojego czasu. Będziesz czerpać przyjemność z nauki, pozostaniesz zmotywowany i zrobisz szybszy postęp.
Widzisz, że żadna ilość teorii nie zastąpi praktyki. Podręczniki i lekcje mogą wprowadzić Cię w fałszywe przekonanie, że jesteś mistrzem, ponieważ materiał jest przed Tobą. Ale kiedy spróbujesz go zastosować, może się okazać, że jest trudniejszy, niż się wydaje.
Projekty pomogą Ci szybko poprawić swoje umiejętności w zakresie uczenia maszynowego, a jednocześnie dadzą Ci szansę na zbadanie interesującego tematu.
Plus, możesz dodać projekty do swojego portfolio, co ułatwi Ci znalezienie pracy, możliwości rozwoju kariery, a nawet wynegocjowanie wyższej pensji.
Oto 8 zabawnych projektów uczenia maszynowego dla początkujących. Możesz ukończyć każdy z nich w jeden weekend, lub rozwinąć je w dłuższe projekty, jeśli ci się spodobają.
Table of Contents
- Machine Learning Gladiator
- Play Money Ball
- Predict Stock Prices
- Teach a Neural Network to Read Handwriting
- Investigate Enron
- Investigate Enron
- Wpisywanie algorytmów ML dla sieci neuronowych
- Przygotuj algorytmy ML dla sieci neuronowych.
- Write ML Algorithms from Scratch
- Mine Social Media Sentiment
- Improve Health Care
Machine Learning Gladiator
Czule nazywamy to „machine learning gladiator,”ale nie jest to nic nowego. Jest to jeden z najszybszych sposobów, aby zbudować praktyczną intuicję wokół uczenia maszynowego.
Celem jest wzięcie modeli out-of-the-box i zastosowanie ich do różnych zbiorów danych. Ten projekt jest niesamowity z 3 głównych powodów:
Po pierwsze, zbudujesz intuicję dopasowania modelu do problemu. Które modele są odporne na brak danych? Które modele dobrze radzą sobie z cechami kategorycznymi? Tak, możesz przekopać się przez podręczniki, aby znaleźć odpowiedzi, ale nauczysz się tego lepiej, widząc to w akcji.
Po drugie, ten projekt nauczy Cię bezcennej umiejętności szybkiego prototypowania modeli. W prawdziwym świecie często trudno jest stwierdzić, który model będzie działał najlepiej, jeśli się go po prostu nie wypróbuje.
Na koniec, to ćwiczenie pomoże Ci opanować przepływ pracy przy tworzeniu modeli. Na przykład, będziesz mógł przećwiczyć…
- Import danych
- Czyszczenie danych
- Podzielenie ich na zestawy trenujące/testujące lub walidację krzyżową
- Preprocessing
- Transformacje
- Inżynieria cech
Ponieważ będziesz używał gotowych modeli, będziesz miał szansę skupić się na doskonaleniu tych krytycznych kroków.
Sprawdź strony dokumentacji sklearn (Python) lub caret (R), aby uzyskać instrukcje. Powinieneś przećwiczyć algorytmy regresji, klasyfikacji i klasteryzacji.
Tutoriale
- Python: sklearn – Oficjalny samouczek dla pakietu sklearn
- Predicting wine quality with Scikit-Learn – Samouczek krok po kroku trenowania modelu uczenia maszynowego
- R: caret – Webinarium prowadzone przez autora pakietu caret
Źródła danych
- Repozytorium UCI Machine Learning Repository – 350+ przeszukiwalnych zbiorów danych obejmujących niemal każdą tematykę. Z pewnością znajdziesz tu dane, które Cię zainteresują.
- Kaggle Datasets – 100+ zestawów danych przesłanych przez społeczność Kaggle. Jest tu kilka naprawdę zabawnych zbiorów danych, w tym lokalizacje tarła PokemonGo i Burritos w San Diego.
- data.gov – Otwarte zbiory danych udostępniane przez rząd USA. Świetne miejsce do przeglądania, jeśli interesujesz się naukami społecznymi.
Zagraj w Money Ball
W książce Moneyball, Oakland A’s zrewolucjonizowali baseball dzięki analitycznemu skautingowi graczy. Zbudowali konkurencyjny skład, wydając tylko 1/3 tego, co zespoły z dużego rynku, takie jak Jankesi, płaciły za pensje.
Po pierwsze, jeśli jeszcze nie czytałeś tej książki, powinieneś ją sprawdzić. To jedna z naszych ulubionych książek!
Na szczęście świat sportu ma mnóstwo danych, z którymi można grać. Dane dotyczące drużyn, gier, wyników i zawodników są śledzone i swobodnie dostępne online.
Istnieje wiele ciekawych projektów uczenia maszynowego dla początkujących. Na przykład, możesz spróbować…
- Zakłady sportowe… Przewiduj wyniki meczów na podstawie danych dostępnych w czasie tuż przed każdym nowym meczem.
- Szukanie talentów… Użyj statystyk uczelni, aby przewidzieć, którzy gracze będą mieli najlepszą karierę zawodową.
- Ogólne zarządzanie… Tworzenie grup zawodników w oparciu o ich mocne strony w celu zbudowania dobrze zaokrąglonego zespołu.
Sport jest również doskonałą domeną do ćwiczenia wizualizacji danych i analizy eksploracyjnej. Możesz wykorzystać te umiejętności, aby pomóc sobie w podjęciu decyzji, które typy danych włączyć do swoich analiz.
Źródła danych
- Baza danych statystyk sportowych – Statystyki sportowe i dane historyczne obejmujące wiele sportów zawodowych i kilka uniwersyteckich. Czysty interfejs ułatwia skrobanie stron internetowych.
- Sports Reference – Kolejna baza danych statystyk sportowych. Bardziej zagmatwany interfejs, ale poszczególne tabele mogą być eksportowane jako pliki CSV.
- cricsheet.org – Dane Ball-by-ball dla międzynarodowych i IPL meczów krykieta. Dostępne są pliki CSV dla meczów IPL i T20 internationals.
Predict Stock Prices
Rynek akcji jest jak kraina cukierków dla każdego naukowca zajmującego się danymi, który choć trochę interesuje się finansami.
Po pierwsze, masz wiele typów danych, z których możesz wybierać. Możesz znaleźć ceny, dane fundamentalne, globalne wskaźniki makroekonomiczne, indeksy zmienności, itd… lista ciągnie się w nieskończoność.
Po drugie, dane mogą być bardzo granularne. Można łatwo uzyskać dane szeregów czasowych według dnia (lub nawet minuty) dla każdej spółki, co pozwala kreatywnie myśleć o strategiach handlowych.
Wreszcie, rynki finansowe mają zazwyczaj krótkie cykle zwrotne. Dlatego możesz szybko zweryfikować swoje przewidywania na nowych danych.
Kilka przykładów przyjaznych dla początkujących projektów uczenia maszynowego, które możesz wypróbować to…
- Ilościowe inwestowanie w wartość… Przewiduj 6-miesięczne ruchy cenowe w oparciu o wskaźniki fundamentalne z raportów kwartalnych spółek.
- Prognozowanie… Zbuduj modele szeregów czasowych, a nawet rekurencyjne sieci neuronowe, na podstawie delty pomiędzy zmiennością implikowaną a rzeczywistą.
- Arbitraż statystyczny… Znajdź podobne akcje na podstawie ich ruchów cenowych i innych czynników i poszukaj okresów, w których ich ceny są rozbieżne.
Oczywiste zastrzeżenie: Budowanie modeli transakcyjnych w celu ćwiczenia uczenia maszynowego jest proste. Zrobienie ich zyskownymi jest niezwykle trudne. Nic tutaj nie jest poradą finansową i nie zalecamy handlu prawdziwymi pieniędzmi.
Tutoriale
- Python: sklearn for Investing – seria wideo na YouTube na temat zastosowania uczenia maszynowego w inwestowaniu.
- R: Quantitative Trading with R – Szczegółowe notatki z zajęć na temat finansów ilościowych z wykorzystaniem R.
Źródła danych
- Quandl – Rynek danych, który dostarcza darmowe (i premium) dane finansowe i ekonomiczne. Na przykład, można masowo pobierać ceny akcji na koniec dnia dla ponad 3000 amerykańskich spółek lub dane ekonomiczne z Rezerwy Federalnej.
- Quantopian – Społeczność zajmująca się finansami ilościowymi, która oferuje darmową platformę do tworzenia algorytmów transakcyjnych. Zawiera zestawy danych.
- US Fundamentals Archive – 5 lat danych fundamentalnych dla ponad 5000 amerykańskich spółek.
Teach a Neural Network to Read Handwriting
Sieci neuronowe i głębokie uczenie to dwa sukcesy współczesnej sztucznej inteligencji. Doprowadziły one do znacznego postępu w rozpoznawaniu obrazów, automatycznym generowaniu tekstów, a nawet w samojeżdżących samochodach.
Aby zaangażować się w tę ekscytującą dziedzinę, należy zacząć od zarządzalnego zbioru danych.
Wyzwanie MNIST Handwritten Digit Classification Challenge jest klasycznym punktem wyjścia. Dane obrazowe są generalnie trudniejsze do pracy niż „płaskie” dane relacyjne. Dane MNIST są przyjazne dla początkujących i wystarczająco małe, aby zmieścić je na jednym komputerze.
Rozpoznawanie pisma ręcznego będzie wyzwaniem, ale nie wymaga dużej mocy obliczeniowej.
Na początek polecamy pierwszy rozdział poniższego samouczka. Dzięki niemu dowiesz się, jak zbudować od podstaw sieć neuronową, która rozwiąże zadanie MNIST z wysoką dokładnością.
Tutorial
- Sieci neuronowe i głębokie uczenie (książka online) – Rozdział 1 prowadzi przez to, jak napisać od podstaw sieć neuronową w Pythonie, aby sklasyfikować cyfry z MNIST. Autor podaje również bardzo dobre wyjaśnienie intuicji stojącej za sieciami neuronowymi.
Źródła danych
- MNIST – MNIST jest zmodyfikowanym podzbiorem dwóch zbiorów danych zebranych przez amerykański Narodowy Instytut Standardów i Technologii. Zawiera on 70 000 etykietowanych obrazów odręcznie napisanych cyfr.
Śledztwo w sprawie Enronu
Skandal i upadek Enronu był jedną z największych katastrof korporacyjnych w historii.
W 2000 roku Enron był jedną z największych firm energetycznych w Ameryce. Następnie, po tym jak został zdemaskowany za oszustwo, w ciągu roku doprowadził się do bankructwa.
Na szczęście dla nas, mamy bazę danych e-maili Enronu. Zawiera ona 500 tysięcy e-maili pomiędzy 150 byłymi pracownikami Enronu, głównie kierownictwem wyższego szczebla. Jest to również jedyna duża publiczna baza prawdziwych e-maili, co czyni ją jeszcze bardziej wartościową.
W rzeczywistości naukowcy od lat wykorzystują ten zbiór danych do celów edukacyjnych i badawczych.
Przykłady projektów uczenia maszynowego dla początkujących, które możesz wypróbować to…
- Detekcja anomalii… Mapuj rozkład wysyłanych i otrzymywanych e-maili w zależności od godziny i spróbuj wykryć nienormalne zachowanie prowadzące do publicznego skandalu.
- Analiza sieci społecznych… Zbuduj modele grafów sieciowych pomiędzy pracownikami, aby znaleźć kluczowych influencerów.
- Przetwarzanie języka naturalnego… Analizuj treść wiadomości w połączeniu z metadanymi emaili, aby sklasyfikować emaile na podstawie ich celów.
Źródła danych
- Enron Email Dataset – Jest to archiwum emaili Enronu hostowane przez CMU.
- Description of Enron Data (PDF) – Eksploracyjna analiza danych z poczty elektronicznej Enronu, która może pomóc Ci zdobyć podstawy.
Write ML Algorithms from Scratch
Pisanie algorytmów uczenia maszynowego od zera jest doskonałym narzędziem do nauki z dwóch głównych powodów.
Po pierwsze, nie ma lepszego sposobu na zbudowanie prawdziwego zrozumienia ich mechaniki. Będziesz zmuszony do zastanowienia się nad każdym krokiem, a to prowadzi do prawdziwego mistrzostwa.
Po drugie, nauczysz się przekładać instrukcje matematyczne na działający kod. Ta umiejętność przyda Ci się podczas adaptowania algorytmów z badań akademickich.
Na początek zalecamy wybranie algorytmu, który nie jest zbyt skomplikowany. Istnieją dziesiątki subtelnych decyzji, które będziesz musiał podjąć nawet w przypadku najprostszych algorytmów.
Po tym, jak poczujesz się komfortowo budując proste algorytmy, spróbuj rozszerzyć je o więcej funkcji. Na przykład, spróbuj rozszerzyć waniliowy algorytm regresji logistycznej do regresji lasso/ridge poprzez dodanie parametrów regularyzacji.
Na koniec, oto wskazówka, którą powinien znać każdy początkujący: Nie zniechęcaj się, jeśli twój algorytm nie jest tak szybki lub wymyślny jak te w istniejących pakietach. Te pakiety są owocem wielu lat rozwoju!
Tutoriale
- Python: Logistic Regression from Scratch
- Python: k-Nearest Neighbors from Scratch
- R: Logistic Regression from Scratch
Mine Social Media Sentiment
Media społecznościowe stały się niemal synonimem „big data” ze względu na samą ilość treści generowanych przez użytkowników.
Minięcie tych bogatych danych może okazać się bezprecedensowym sposobem na trzymanie ręki na pulsie w kwestii opinii, trendów i nastrojów społecznych. Facebook, Twitter, YouTube, WeChat, WhatsApp, Reddit… lista jest długa i długa.
Co więcej, każde pokolenie spędza w mediach społecznościowych jeszcze więcej czasu niż ich poprzednicy. Oznacza to, że dane z mediów społecznościowych staną się jeszcze bardziej istotne dla marketingu, brandingu i biznesu jako całości.
Pomimo, że istnieje wiele popularnych platform mediów społecznościowych, Twitter jest klasycznym punktem wejścia do praktyki uczenia maszynowego.
W przypadku danych z Twittera, otrzymujemy interesującą mieszankę danych (treść tweeta) i metadanych (lokalizacja, hashtagi, użytkownicy, re-tweety, itp.), które otwierają niemal nieskończone ścieżki analizy.
Tutoriale
- Python: Mining Twitter Data – Jak przeprowadzić analizę sentymentu na danych z Twittera
- R: Sentiment analysis with machine learning – Short and sweet sentiment analysis tutorial
Źródła danych
- Twitter API – Twitter API jest klasycznym źródłem danych strumieniowych. Możesz śledzić tweety, hashtagi i nie tylko.
- StockTwits API – StockTwits jest jak twitter dla inwestorów i traderów. Możesz rozszerzyć ten zbiór danych na wiele interesujących sposobów, łącząc go z zestawami danych szeregów czasowych za pomocą znacznika czasu i symbolu tickera.
Ulepsz opiekę zdrowotną
Kolejną branżą, która przechodzi szybkie zmiany dzięki uczeniu maszynowemu, jest globalne zdrowie i opieka zdrowotna.
W większości krajów, zostanie lekarzem wymaga wielu lat edukacji. Jest to wymagająca dziedzina z długimi godzinami pracy, wysokimi stawkami i jeszcze wyższą barierą wejścia.
W związku z tym ostatnio podjęto znaczne wysiłki w celu odciążenia lekarzy i poprawy ogólnej wydajności systemu opieki zdrowotnej z pomocą uczenia maszynowego.
Przypadki użycia obejmują:
- Opiekę prewencyjną… Przewidywanie epidemii chorób zarówno na poziomie indywidualnym, jak i społeczności.
- Opiekę diagnostyczną… Automatyczne klasyfikowanie danych obrazowych, takich jak skany, zdjęcia rentgenowskie itp.
- Ubezpieczenia… Dostosowywanie składek ubezpieczeniowych w oparciu o publicznie dostępne czynniki ryzyka.
Ponieważ szpitale kontynuują modernizację dokumentacji pacjentów i gromadzą coraz bardziej szczegółowe dane zdrowotne, pojawi się wiele możliwości, dzięki którym naukowcy zajmujący się danymi będą mogli coś zmienić.
Tutoriale
- R: Budowanie znaczących modeli uczenia maszynowego do przewidywania chorób
- Uczenie maszynowe w opiece zdrowotnej – Doskonała prezentacja Microsoft Research
.