Machine learning Python i data
science
Wprowadzenie
Uczenie
maszynowe kojarzy się z dużymi firmami i rozbudowanymi zespołami.
Prawda jest taka, że obecnie można samodzielnie budować zaawansowane
rozwiązania uczenia maszynowego i korzystać do woli z olbrzymich
zasobów dostępnych danych. Trzeba tylko mieć pomysł i...
trochę podstawowej wiedzy. Tymczasem większość opracowań na temat
uczenia maszynowego i sztucznej inteligencji wymaga biegłości w
zaawansowanej matematyce. Utrudnia to naukę tego zagadnienia, mimo że
uczenie maszynowe jest coraz powszechniej stosowane w projektach
badawczych i komercyjnych.
Ta
praktyczna książka ułatwi Ci rozpoczęcie wdrażania rozwiązań
rzeczywistych problemów związanych z uczeniem maszynowym.
Zawiera przystępne wprowadzenie do uczenia maszynowego i sztucznej
inteligencji, a także sposoby wykorzystania Pythona i biblioteki
scikit-learn, uwzględniające potrzeby badaczy i analityków
danych oraz inżynierów pracujących nad aplikacjami
komercyjnymi. Zagadnienia matematyczne ograniczono tu do niezbędnego
minimum, zamiast tego skoncentrowano się na praktycznych aspektach
algorytmów uczenia maszynowego. Dokładnie opisano, jak
konkretnie można skorzystać z szerokiej gamy modeli zaimplementowanych
w dostępnych bibliotekach.
W książce między innymi:
- podstawowe informacje o
uczeniu maszynowym
- najważniejsze algorytmy
uczenia maszynowego
- przetwarzanie danych w
uczeniu maszynowym
- ocena modelu i dostrajanie
parametrów
- łańcuchy modeli i
hermetyzacja przepływu pracy
- przetwarzanie danych
tekstowych
Przedmowa
Kto powinien przeczytać tę książkę
Dlaczego napisaliśmy tę książkę
Jak poruszać się po książce
Zasoby online
Konwencje stosowane w książce
Korzystanie z przykładowego kodu
Podziękowania
Od Andreasa
Od Sarah
Rozdział 1.
Wprowadzenie
Dlaczego uczenie maszynowe?
Problemy, które może rozwiązać uczenie maszynowe
Znajomość zadania i znajomość danych
Dlaczego Python?
scikit-learn
Instalacja scikit-learn
Podstawowe biblioteki i narzędzia
Jupyter Notebook
NumPy
SciPy
matplotlib
pandas
mglearn
Python 2 a Python 3
Wersje użyte w tej książce
Pierwsza aplikacja: klasyfikacja gatunków irysa
Zapoznaj się z danymi
Sprawdzanie osiągnięcia sukcesu: dane treningowe i testowe
Najpierw najważniejsze: zapoznaj się z danymi
Budowa pierwszego modelu: k-najbliżsi sąsiedzi
Przewidywania
Ocena modelu
Podsumowanie i przegląd
Rozdział 2.
Nadzorowane uczenie maszynowe
Klasyfikacja i regresja
Uogólnianie, nadmierne dopasowanie i niedopasowanie
Relacja złożoności modelu do rozmiaru zestawu danych
Nadzorowane algorytmy uczenia maszynowego
Przykładowe zestawy danych
k-najbliższych sąsiadów
Klasyfikacja k-sąsiadów
Analiza KNeighborsClassifier
Regresja k-sąsiadów
Analiza KNeighborsRegressor
Mocne i słabe strony i parametry
Modele liniowe
Modele liniowe do regresji
Regresja liniowa (inaczej zwykła metoda najmniejszych
kwadratów)
Regresja grzbietowa
Model Lasso
Modele liniowe do klasyfikacji
Modele liniowe dla klasyfikacji wieloklasowej
Mocne, słabe punkty i parametry
Naiwne klasyfikatory Bayesa
Mocne i słabe strony oraz parametry
Drzewa decyzyjne
Budowanie drzew decyzyjnych
Kontrolowanie złożoności drzew decyzyjnych
Analiza drzew decyzyjnych
Ważność cech w drzewach
Mocne, słabe strony i parametry
Zespoły drzew decyzyjnych
Lasy losowe
Drzewa regresji ze wzmocnieniem gradientowym (maszyny ze wzmocnieniem
gradientowym)
Maszyny wektorów nośnych
Modele liniowe i cechy nieliniowe
Kernel trick
SVM
Dostrajanie parametrów SVM
Wstępne przetwarzanie danych dla maszyn SVM
Mocne i słabe strony oraz parametry
Sieci neuronowe (głębokie uczenie)
Model sieci neuronowej
Dostrajanie sieci neuronowych
Mocne i słabe strony oraz parametry
Szacunki niepewności na podstawie klasyfikatorów
Funkcja decyzyjna
Prognozy prawdopodobieństw
Niepewność w klasyfikacji wieloklasowej
Podsumowanie i przegląd
Rozdział 3.
Uczenie
nienadzorowane i przetwarzanie wstępne
Rodzaje nienadzorowanego uczenia maszynowego
Wyzwania związane z uczeniem nienadzorowanym
Przetwarzanie wstępne i skalowanie
Różne rodzaje przetwarzania wstępnego
Zastosowanie transformacji danych
Skalowanie danych treningowych i testowych w ten sam sposób
Wpływ przetwarzania wstępnego na uczenie nadzorowane
Redukcja wymiarowości, wyodrębnianie cech i wielorakie uczenie
Analiza głównych komponentów (PCA)
Zastosowanie PCA do zbioru danych Breast Cancer w celu wizualizacji
Powierzchnia własna do wyodrębniania cech
Nieujemna faktoryzacja macierzy (NMF)
Zastosowanie NMF do danych syntetycznych
Stosowanie NMF do obrazów twarzy
Manifold learning z t-SNE
Grupowanie
Grupowanie k-średnich
Przypadki awarii grupowania k-średnich
Kwantyzacja wektorowa lub postrzeganie grupowania k-średnich jako
dekompozycji
Grupowanie aglomeracyjne
Grupowanie hierarchiczne i dendrogramy
DBSCAN
Porównanie i ocena algorytmów grupowania
Ocenianie grupowania z prawdą podstawową
Ocenianie grupowania bez prawdy podstawowej
Porównanie algorytmów na zestawie danych twarzy
Podsumowanie metod grupowania
Podsumowanie i przegląd
Rozdział 4.
Reprezentacja
danych i cechy inżynierskie
Zmienne kategorialne
Kodowanie jeden-z-N (zmienne fikcyjne)
Sprawdzanie danych kategorialnych zakodowanych w postaci
ciągów znaków
Liczby mogą kodować zmienne kategorialne
Dzielenie, dyskretyzacja, modele liniowe i drzewa
Interakcje i wielomiany
Jednowymiarowe transformacje nieliniowe
Automatyczny wybór cechy
Statystyki jednoczynnikowe
Wybór cechy na podstawie modelu
Iteracyjny wybór cech
Wykorzystanie wiedzy eksperckiej
Podsumowanie i przegląd
Rozdział 5.
Ocena
i doskonalenie modelu
Walidacja krzyżowa
Walidacja krzyżowa w scikit-learn
Korzyści z walidacji krzyżowej
Stratyfikowana k-krotna walidacja krzyżowa i inne strategie
Większa kontrola nad walidacją krzyżową
Walidacja krzyżowa z pominięciem
Walidacja krzyżowa z podziałem losowym
Walidacja krzyżowa z grupami
Przeszukiwanie siatki
Proste przeszukiwanie siatki
Nadmierne dopasowanie parametrów i zestaw walidacyjny
Przeszukiwanie siatki z walidacją krzyżową
Analiza wyniku walidacji krzyżowej
Przeszukiwanie przestrzeni, które nie są siatkami
Korzystanie z różnych strategii walidacji krzyżowej z
przeszukiwaniem siatki
Zagnieżdżona walidacja krzyżowa
Równoległa walidacja krzyżowa i przeszukiwanie siatki
Wskaźniki oceny i punktacja
Pamiętaj o celu
Metryki klasyfikacji binarnej
Rodzaje błędów
Niezbalansowane zestawy danych
Macierze błędu
Branie pod uwagę niepewności
Krzywe precision-recall i krzywe ROC
Charakterystyka pracy odbiornika (ROC) i AUC
Metryki klasyfikacji wieloklasowej
Metryki regresji
Używanie metryk oceny w wyborze modelu
Podsumowanie i przegląd
Rozdział 6
.
Łańcuchy algorytmów i potoki
Wybór parametrów z przetwarzaniem wstępnym
Tworzenie potoków
Używanie potoków w przeszukiwaniu siatki
Ogólny interfejs potoku
Wygodne tworzenie potoków za pomocą funkcji make_pipeline
Dostęp do atrybutów kroku
Dostęp do atrybutów klasy GridSearchCV
Kroki przetwarzania wstępnego przeszukiwania siatki i parametry modelu
Przeszukiwanie siatki modeli
Podsumowanie i przegląd
Rozdział 7.
Praca z danymi tekstowymi
Typy danych przedstawione jako ciągi znaków
Przykładowe zastosowanie: analiza recenzji filmowych
Przedstawianie danych tekstowych w postaci worka słów
Stosowanie worka słów do przykładowego zestawu danych
Zastosowanie worka słów do recenzji filmowych
Słowa pomijalne
Skalowanie danych z tf-idf
Badanie współczynników modelu
Worek słów z więcej niż jednym słowem (n-gram)
Zaawansowana tokenizacja, stemming i lematyzacja
Modelowanie tematów i grupowanie dokumentów
Utajniona alokacja Dirichleta
Podsumowanie i przegląd
Rozdział 8.
Podsumowanie
Podejście do problemu uczenia maszynowego
Informowanie ludzi
Od prototypu do produkcji
Testowanie systemów na produkcji
Tworzenie własnego estymatora
Co dalej
Teoria
Inne narzędzia i pakiety do uczenia maszynowego
Ranking, systemy rekomendujące i inne rodzaje uczenia
Modelowanie probabilistyczne, wnioskowanie i programowanie
probabilistyczne
Sieci neuronowe
Skalowanie do większych zestawów danych
Doskonalenie umiejętności
Podsumowanie
O autorach
Kolofon
320
stron, Format: 16.6x24.0cm, oprawa miękka