E-book details

Uczenie maszynowe w Pythonie. Receptury. Od przygotowania danych do deep learningu. Wydanie II

Uczenie maszynowe w Pythonie. Receptury. Od przygotowania danych do deep learningu. Wydanie II

Kyle Gallatin, Chris Albon

Ebook

W ciągu ostatnich lat techniki uczenia maszynowego rozwijały się z niezwykłą dynamiką, rewolucjonizując pracę w różnych branżach. Obecnie do uczenia maszynowego najczęściej używa się Pythona i jego bibliotek. Znajomość najnowszych wydań tych narzędzi umożliwia efektywne tworzenie wyrafinowanych systemów uczących się.

Oto zaktualizowane wydanie popularnego przewodnika, dzięki któremu skorzystasz z ponad dwustu sprawdzonych receptur bazujących na najnowszych wydaniach bibliotek Pythona. Wystarczy, że skopiujesz i dostosujesz kod do swoich potrzeb. Możesz też go uruchamiać i testować za pomocą przykładowego zbioru danych. W książce znajdziesz receptury przydatne do rozwiązywania szerokiego spektrum problemów, od przygotowania i wczytania danych aż po trenowanie modeli i korzystanie z sieci neuronowych. W ten sposób wyjdziesz poza rozważania teoretyczne czy też matematyczne koncepcje i zaczniesz tworzyć aplikacje korzystające z uczenia maszynowego.

Poznaj receptury dotyczące:

  • pracy z danymi w wielu formatach, z bazami i magazynami danych
  • redukcji wymiarowości, jak również oceny i wyboru modelu
  • regresji liniowej i logistycznej, drzew i lasów, a także k-najbliższych sąsiadów
  • maszyn wektorów nośnych (SVM), naiwnej klasyfikacji bayesowskiej i klasteryzacji
  • udostępniania wytrenowanych modeli za pomocą wielu frameworków

Długo szukałam książki, która spójnie przedstawiałaby algorytm ANN, hiperpłaszczyzny i wybór cech za pomocą losowego lasu. I wtedy pojawiła się ta pozycja!

Vicki Boykis, inżynier uczenia maszynowego w Duo

Wprowadzenie

1. Wektor, macierz i tablica

  • 1.0. Wprowadzenie
  • 1.1. Tworzenie wektora
  • 1.2. Tworzenie macierzy
  • 1.3. Tworzenie macierzy rzadkiej
  • 1.4. Wstępna alokacja tablicy NumPy
  • 1.5. Pobieranie elementów
  • 1.6. Opisywanie macierzy
  • 1.7. Przeprowadzanie operacji na wszystkich elementach
  • 1.8. Znajdowanie wartości maksymalnej i minimalnej
  • 1.9. Obliczanie średniej, wariancji i odchylenia standardowego
  • 1.10. Zmiana kształtu tablicy
  • 1.11. Transponowanie wektora lub macierzy
  • 1.12. Spłaszczanie macierzy
  • 1.13. Znajdowanie rzędu macierzy
  • 1.14. Pobieranie przekątnej macierzy
  • 1.15. Obliczanie śladu macierzy
  • 1.16. Obliczanie iloczynu skalarnego
  • 1.17. Dodawanie i odejmowanie macierzy
  • 1.18. Mnożenie macierzy
  • 1.19. Odwracanie macierzy
  • 1.20. Generowanie liczb losowych

2. Wczytywanie danych

  • 2.0. Wprowadzenie
  • 2.1. Wczytywanie przykładowego zbioru danych
  • 2.2. Tworzenie symulowanego zbioru danych
  • 2.3. Wczytywanie pliku CSV
  • 2.4. Wczytywanie pliku Excela
  • 2.5. Wczytywanie pliku JSON
  • 2.6. Wczytywanie pliku Parquet
  • 2.7. Wczytywanie pliku Avro
  • 2.8. Wykonywanie zapytań do bazy danych SQLite
  • 2.9. Wykonywanie zapytań do zdalnej bazy danych SQL
  • 2.10. Wczytywanie danych z Google Sheets
  • 2.11. Wczytywanie danych z kubełka S3
  • 2.12. Wczytywanie danych nieposiadających struktury

3. Przygotowywanie danych

  • 3.0. Wprowadzenie
  • 3.1. Tworzenie ramki danych
  • 3.2. Opisywanie danych
  • 3.3. Poruszanie się po ramce danych
  • 3.4. Pobieranie wierszy na podstawie pewnych warunków
  • 3.5. Sortowanie wartości
  • 3.6. Zastępowanie wartości
  • 3.7. Zmiana nazwy kolumny
  • 3.8. Znajdowanie wartości minimalnej, maksymalnej, sumy, średniej i liczby elementów w kolumnie
  • 3.9. Znajdowanie unikatowych wartości
  • 3.10. Obsługa brakujących wartości
  • 3.11. Usuwanie kolumn
  • 3.12. Usuwanie wiersza
  • 3.13. Usuwanie powielonych wierszy
  • 3.14. Grupowanie wierszy według wartości
  • 3.15. Grupowanie wierszy według czasu
  • 3.16. Agregowanie operacji i danych statystycznych
  • 3.17. Iterowanie przez kolumnę
  • 3.18. Wywoływanie funkcji dla wszystkich elementów kolumny
  • 3.19. Wywoływanie funkcji dla grupy
  • 3.20. Konkatenacja obiektów typu DataFrame
  • 3.21. Złączanie obiektów typu DataFrame

4. Obsługa danych liczbowych

  • 4.0. Wprowadzenie
  • 4.1. Przeskalowywanie cechy
  • 4.2. Standaryzowanie cechy
  • 4.3. Normalizowanie obserwacji
  • 4.4. Generowanie cech wielomianowych i interakcji
  • 4.5. Transformacja cech
  • 4.6. Wykrywanie elementów odstających
  • 4.7. Obsługa elementów odstających
  • 4.8. Dyskretyzacja cech
  • 4.9. Grupowanie obserwacji przy użyciu klastra
  • 4.10. Usuwanie obserwacji, w których brakuje wartości
  • 4.11. Uzupełnianie brakujących wartości

5. Obsługa danych kategoryzujących

  • 5.0. Wprowadzenie
  • 5.1. Kodowanie nominalnych cech kategoryzujących
  • 5.2. Kodowanie porządkowych cech kategoryzujących
  • 5.3. Kodowanie słowników cech
  • 5.4. Wstawianie brakujących wartości klas
  • 5.5. Obsługa niezrównoważonych klas

6. Obsługa tekstu

  • 6.0. Wprowadzenie
  • 6.1. Oczyszczanie tekstu
  • 6.2. Przetwarzanie i oczyszczanie danych HTML
  • 6.3. Usuwanie znaku przestankowego
  • 6.4. Tokenizacja tekstu
  • 6.5. Usuwanie słów o małym znaczeniu
  • 6.6. Stemming słów
  • 6.7. Oznaczanie części mowy
  • 6.8. Rozpoznawanie nazwanych jednostek
  • 6.9. Kodowanie tekstu za pomocą modelu worka słów
  • 6.10. Określanie wagi słów
  • 6.11. Używanie wektorów tekstu do obliczania podobieństwa tekstu w zapytaniu wyszukiwania
  • 6.12. Używanie klasyfikatora analizy sentymentu

7. Obsługa daty i godziny

  • 7.0. Wprowadzenie
  • 7.1. Konwertowanie ciągu tekstowego na datę
  • 7.2. Obsługa stref czasowych
  • 7.3. Pobieranie daty i godziny
  • 7.4. Podział danych daty na wiele cech
  • 7.5. Obliczanie różnicy między datami
  • 7.6. Kodowanie dni tygodnia
  • 7.7. Tworzenie cechy opóźnionej w czasie
  • 7.8. Użycie okien upływającego czasu
  • 7.9. Obsługa brakujących danych w serii danych zawierających wartości daty i godziny

8. Obsługa obrazów

  • 8.0. Wprowadzenie
  • 8.1. Wczytywanie obrazu
  • 8.2. Zapisywanie obrazu
  • 8.3. Zmiana wielkości obrazu
  • 8.4. Kadrowanie obrazu
  • 8.5. Rozmywanie obrazu
  • 8.6. Wyostrzanie obrazu
  • 8.7. Zwiększanie kontrastu
  • 8.8. Izolowanie kolorów
  • 8.9. Progowanie obrazu
  • 8.10. Usuwanie tła obrazu
  • 8.11. Wykrywanie krawędzi
  • 8.12. Wykrywanie narożników w obrazie
  • 8.13. Tworzenie cech w uczeniu maszynowym
  • 8.14. Użycie histogramu koloru jako cechy
  • 8.15. Użycie wytrenowanych embeddingów jako cech
  • 8.16. Wykrywanie obiektów za pomocą OpenCV
  • 8.17. Klasyfikowanie obrazów za pomocą PyTorch

9. Redukcja wymiarowości za pomocą wyodrębniania cech

  • 9.0. Wprowadzenie
  • 9.1. Redukowanie cech za pomocą głównych składowych
  • 9.2. Redukowanie cech, gdy dane są liniowo nierozłączne
  • 9.3. Redukowanie cech przez maksymalizację rozłączności klas
  • 9.4. Redukowanie cech za pomocą rozkładu macierzy
  • 9.5. Redukowanie cech w rzadkich danych

10. Redukcja wymiarowości za pomocą wyboru cech

  • 10.0. Wprowadzenie
  • 10.1. Progowanie wariancji cechy liczbowej
  • 10.2. Progowanie wariancji cechy binarnej
  • 10.3. Obsługa wysoce skorelowanych cech
  • 10.4. Usuwanie nieistotnych dla klasyfikacji cech
  • 10.5. Rekurencyjne eliminowanie cech

11. Ocena modelu

  • 11.0. Wprowadzenie
  • 11.1. Modele sprawdzianu krzyżowego
  • 11.2. Tworzenie modelu regresji bazowej
  • 11.3. Tworzenie modelu klasyfikacji bazowej
  • 11.4. Ocena prognoz klasyfikatora binarnego
  • 11.5. Ocena progowania klasyfikatora binarnego
  • 11.6. Ocena prognoz klasyfikatora wieloklasowego
  • 11.7. Wizualizacja wydajności klasyfikatora
  • 11.8. Ocena modelu regresji
  • 11.9. Ocena modelu klasteryzacji
  • 11.10. Definiowanie niestandardowych współczynników oceny modelu
  • 11.11. Wizualizacja efektu wywieranego przez wielkość zbioru uczącego
  • 11.12. Tworzenie raportu tekstowego dotyczącego współczynnika oceny
  • 11.13. Wizualizacja efektu wywieranego przez zmianę wartości hiperparametrów

12. Wybór modelu

  • 12.0. Wprowadzenie
  • 12.1. Wybór najlepszych modeli przy użyciu wyczerpującego wyszukiwania
  • 12.2. Wybór najlepszych modeli za pomocą przeszukiwania losowego
  • 12.3. Wybór najlepszych modeli z wielu algorytmów uczenia maszynowego
  • 12.4. Wybór najlepszych modeli na etapie przygotowywania danych
  • 12.5. Przyspieszanie wyboru modelu za pomocą równoległości
  • 12.6. Przyspieszanie wyboru modelu przy użyciu metod charakterystycznych dla algorytmu
  • 12.7. Ocena wydajności po wyborze modelu

13. Regresja liniowa

  • 13.0. Wprowadzenie
  • 13.1. Wyznaczanie linii
  • 13.2. Obsługa wpływu interakcji
  • 13.3. Wyznaczanie zależności nieliniowej
  • 13.4. Redukowanie wariancji za pomocą regularyzacji
  • 13.5. Redukowanie cech za pomocą regresji metodą LASSO

14. Drzewa i lasy

  • 14.0. Wprowadzenie
  • 14.1. Trenowanie klasyfikatora drzewa decyzyjnego
  • 14.2. Trenowanie regresora drzewa decyzyjnego
  • 14.3. Wizualizacja modelu drzewa decyzyjnego
  • 14.4. Trenowanie klasyfikatora losowego lasu
  • 14.5. Trenowanie regresora losowego lasu
  • 14.6. Ocena losowego lasu za pomocą estymatora błędu out-of-bag
  • 14.7. Identyfikacja ważnych cech w losowych lasach
  • 14.8. Wybór ważnych cech w losowym lesie
  • 14.9. Obsługa niezrównoważonych klas
  • 14.10. Kontrolowanie wielkości drzewa
  • 14.11. Poprawa wydajności za pomocą wzmocnienia
  • 14.12. Wytrenowanie modelu XGBoost
  • 14.13. Poprawianie wydajności w czasie rzeczywistym za pomocą LightGBM

15. Algorytm k najbliższych sąsiadów

  • 15.0. Wprowadzenie
  • 15.1. Wyszukiwanie najbliższych sąsiadów obserwacji
  • 15.2. Tworzenie klasyfikatora k najbliższych sąsiadów
  • 15.3. Ustalanie najlepszej wielkości sąsiedztwa
  • 15.4. Tworzenie klasyfikatora najbliższych sąsiadów opartego na promieniu
  • 15.5. Wyszukiwanie przybliżonych najbliższych sąsiadów
  • 15.6. Ocena przybliżonych najbliższych sąsiadów

16. Regresja logistyczna

  • 16.0. Wprowadzenie
  • 16.1. Trenowanie klasyfikatora binarnego
  • 16.2. Trenowanie klasyfikatora wieloklasowego
  • 16.3. Redukcja wariancji poprzez regularyzację
  • 16.4. Trenowanie klasyfikatora na bardzo dużych danych
  • 16.5. Obsługa niezrównoważonych klas

17. Maszyna wektora nośnego

  • 17.0. Wprowadzenie
  • 17.1. Trenowanie klasyfikatora liniowego
  • 17.2. Obsługa liniowo nierozdzielnych klas przy użyciu funkcji jądra
  • 17.3. Określanie prognozowanego prawdopodobieństwa
  • 17.4. Identyfikacja wektorów nośnych
  • 17.5. Obsługa niezrównoważonych klas

18. Naiwny klasyfikator bayesowski

  • 18.0. Wprowadzenie
  • 18.1. Trenowanie klasyfikatora dla cech ciągłych
  • 18.2. Trenowanie klasyfikatora dla cech dyskretnych lub liczebnych
  • 18.3. Trenowanie naiwnego klasyfikatora bayesowskiego dla cech binarnych
  • 18.4. Kalibrowanie prognozowanego prawdopodobieństwa

19. Klasteryzacja

  • 19.0. Wprowadzenie
  • 19.1. Klasteryzacja za pomocą k średnich
  • 19.2. Przyspieszanie klasteryzacji za pomocą k średnich
  • 19.3. Klasteryzacja za pomocą algorytmu meanshift
  • 19.4. Klasteryzacja za pomocą algorytmu DBSCAN
  • 19.5. Klasteryzacja za pomocą łączenia hierarchicznego

20. Tensory w PyTorch

  • 20.0. Wprowadzenie
  • 20.1. Utworzenie tensora
  • 20.2. Utworzenie tensora z poziomu NumPy
  • 20.3. Utworzenie tensora rzadkiego
  • 20.4. Wybór elementów tensora
  • 20.5. Opisanie tensora
  • 20.6. Przeprowadzanie operacji na elementach tensora
  • 20.7. Wyszukiwanie wartości minimalnej i maksymalnej
  • 20.8. Zmiana kształtu tensora
  • 20.9. Transponowanie tensora
  • 20.10. Spłaszczanie tensora
  • 20.11. Obliczanie iloczynu skalarnego
  • 20.12. Mnożenie tensorów

21. Sieci neuronowe

  • 21.0. Wprowadzenie
  • 21.1. Używanie silnika Autograd frameworka PyTorch
  • 21.2. Przygotowywanie danych dla sieci neuronowej
  • 21.3. Projektowanie sieci neuronowej
  • 21.4. Trenowanie klasyfikatora binarnego
  • 21.5. Trenowanie klasyfikatora wieloklasowego
  • 21.6. Trenowanie regresora
  • 21.7. Generowanie prognoz
  • 21.8. Wizualizacja historii trenowania
  • 21.9. Redukcja nadmiernego dopasowania za pomocą regularyzacji wagi
  • 21.10. Redukcja nadmiernego dopasowania za pomocą techniki wcześniejszego zakończenia procesu uczenia
  • 21.11. Redukcja nadmiernego dopasowania za pomocą techniki porzucenia
  • 21.12. Zapisywanie postępu modelu uczącego
  • 21.13. Dostrajanie sieci neuronowej
  • 21.14. Wizualizacja sieci neuronowej

22. Sieci neuronowe dla danych pozbawionych struktury

  • 22.0. Wprowadzenie
  • 22.1. Wytrenowanie sieci neuronowej na potrzeby klasyfikacji obrazów
  • 22.2. Wytrenowanie sieci neuronowej na potrzeby klasyfikacji tekstu
  • 22.3. Dostrajanie wytrenowanego modelu na potrzeby klasyfikacji obrazu
  • 22.4. Dostrajanie wytrenowanego modelu na potrzeby klasyfikacji tekstu

23. Zapisywanie, wczytywanie i udostępnianie wytrenowanych modeli

  • 23.0. Wprowadzenie
  • 23.1. Zapisywanie i wczytywanie modelu biblioteki scikit-learn
  • 23.2. Zapisywanie i wczytywanie modelu biblioteki TensorFlow
  • 23.3. Zapisywanie i wczytywanie modelu PyTorch
  • 23.4. Udostępnianie modeli scikit-learn
  • 23.5. Udostępnianie modeli TensorFlow
  • 23.6. Udostępnianie modeli PyTorch za pomocą Seldon
  • Title: Uczenie maszynowe w Pythonie. Receptury. Od przygotowania danych do deep learningu. Wydanie II
  • Author: Kyle Gallatin, Chris Albon
  • Original title: Machine Learning with Python Cookbook: Practical Solutions from Preprocessing to Deep Learning, 2nd Edition
  • Translation: Robert Górczyński
  • ISBN: 978-83-289-0812-3, 9788328908123
  • Date of issue: 2024-04-23
  • Format: Ebook
  • Item ID: uczma2
  • Publisher: Helion