E-book details

Python. Uczenie maszynowe

Python. Uczenie maszynowe

Sebastian Raschka

Ebook

Sprawdź drugie wydanie tej książki >>

---

Uczenie maszynowe, zajmujące się algorytmami analizującymi dane, stanowi chyba najciekawszą dziedzinę informatyki. W czasach, w których generuje się olbrzymie ilości danych, samouczące się algorytmy maszynowe stanowią wyjątkową metodę przekształcania tych danych w wiedzę. W ten sposób powstało wiele innowacyjnych technologii, a możliwości uczenia maszynowego są coraz większe. Nieocenioną pomoc w rozwijaniu tej dziedziny stanowią liczne nowe biblioteki open source, które pozwalają na budowanie algorytmów w języku Python, będącym ulubionym, potężnym i przystępnym narzędziem naukowców i analityków danych.

Niniejsza książka jest lekturą obowiązkową dla każdego, kto chce rozwinąć swoją wiedzę o danych naukowych i zamierza w tym celu wykorzystać język Python. Przystępnie opisano tu teoretyczne podstawy dziedziny i przedstawiono wyczerpujące informacje o działaniu algorytmów uczenia maszynowego, sposobach ich wykorzystania oraz metodach unikania poważnych błędów. Zaprezentowano również biblioteki Theano i Keras, sposoby przewidywania wyników docelowych za pomocą analizy regresywnej oraz techniki wykrywania ukrytych wzorców metodą analizy skupień. Nie zabrakło opisu technik przetwarzania wstępnego i zasad oceny modeli uczenia maszynowego.

W tej książce:

  • podstawowe rodzaje uczenia maszynowego i ich zastosowanie,
  • biblioteka scikit-learn i klasyfikatory uczenia maszynowego,
  • wydajne łączenie różnych algorytmów uczących,
  • analiza sentymentów — przewidywanie opinii osób na podstawie sposobu pisania,
  • praca z nieoznakowanymi danymi — uczenie nienadzorowane,
  • tworzenie i trenowanie sieci neuronowych.

Uczenie maszynowe — odkryj wiedzę, którą niosą dane!

Przedmowa (11)

Informacje o autorze (13)

Informacje o recenzentach (15)

Wstęp (17)

Rozdział 1. Umożliwianie komputerom uczenia się z danych (25)

  • Tworzenie inteligentnych maszyn służących do przekształcania danych w wiedzę (26)
  • Trzy różne rodzaje uczenia maszynowego (26)
    • Prognozowanie przyszłości za pomocą uczenia nadzorowanego (27)
    • Rozwiązywanie problemów interaktywnych za pomocą uczenia przez wzmacnianie (29)
    • Odkrywanie ukrytych struktur za pomocą uczenia nienadzorowanego (30)
  • Wprowadzenie do podstawowej terminologii i notacji (31)
  • Strategia tworzenia systemów uczenia maszynowego (33)
    • Wstępne przetwarzanie - nadawanie danym formy (34)
    • Trenowanie i dobór modelu predykcyjnego (35)
    • Ewaluacja modeli i przewidywanie wystąpienia nieznanych danych (36)
  • Wykorzystywanie środowiska Python do uczenia maszynowego (36)
    • Instalacja pakietów w Pythonie (36)
  • Podsumowanie (38)

Rozdział 2. Trenowanie algorytmów uczenia maszynowego w celach klasyfikacji (41)

  • Sztuczne neurony - rys historyczny początków uczenia maszynowego (42)
  • Implementacja algorytmu uczenia perceptronu w Pythonie (47)
    • Trenowanie modelu perceptronu na zestawie danych Iris (50)
  • Adaptacyjne neurony liniowe i zbieżność uczenia (54)
    • Minimalizacja funkcji kosztu za pomocą metody gradientu prostego (55)
    • Implementacja adaptacyjnego neuronu liniowego w Pythonie (57)
    • Wielkoskalowe uczenie maszynowe i metoda stochastycznego spadku wzdłuż gradientu (62)
  • Podsumowanie (67)

Rozdział 3. Stosowanie klasyfikatorów uczenia maszynowego za pomocą biblioteki scikit-learn (69)

  • Wybór algorytmu klasyfikującego (70)
  • Pierwsze kroki z biblioteką scikit-learn (70)
    • Uczenie perceptronu za pomocą biblioteki scikit-learn (71)
  • Modelowanie prawdopodobieństwa przynależności do klasy za pomocą regresji logistycznej (76)
    • Teoretyczne podłoże regresji logistycznej i prawdopodobieństwa warunkowego (76)
    • Wyznaczanie wag logistycznej funkcji kosztu (79)
    • Uczenie modelu regresji logistycznej za pomocą biblioteki scikit-learn (81)
    • Zapobieganie nadmiernemu dopasowaniu za pomocą regularyzacji (84)
  • Wyznaczanie maksymalnego marginesu za pomocą maszyn wektorów nośnych (87)
    • Teoretyczne podłoże maksymalnego marginesu (87)
    • Rozwiązywanie przypadków nieliniowo rozdzielnych za pomocą zmiennych uzupełniających (88)
    • Alternatywne implementacje w interfejsie scikit-learn (90)
  • Rozwiązywanie nieliniowych problemów za pomocą jądra SVM (91)
    • Stosowanie sztuczki z funkcją jądra do znajdowania przestrzeni rozdzielających w przestrzeni o większej liczbie wymiarów (93)
  • Uczenie drzew decyzyjnych (97)
    • Maksymalizowanie przyrostu informacji - osiąganie jak największych korzyści (98)
    • Budowanie drzewa decyzyjnego (101)
    • Łączenie słabych klasyfikatorów w silne klasyfikatory za pomocą modelu losowego lasu (104)
  • Algorytm k-najbliższych sąsiadów - model leniwego uczenia (106)
  • Podsumowanie (109)

Rozdział 4. Tworzenie dobrych zbiorów uczących - wstępne przetwarzanie danych (111)

  • Kwestia brakujących danych (111)
    • Usuwanie próbek lub cech niezawierających wartości (113)
    • Wstawianie brakujących danych (114)
    • Estymatory interfejsu scikit-learn (114)
  • Przetwarzanie danych kategoryzujących (116)
    • Mapowanie cech porządkowych (116)
    • Kodowanie etykiet klas (117)
    • Kodowanie "gorącojedynkowe" cech nominalnych (z użyciem wektorów własnych) (118)
  • Rozdzielanie zestawu danych na podzbiory uczące i testowe (120)
  • Skalowanie cech (121)
  • Dobór odpowiednich cech (123)
    • Regularyzacja L1 (124)
    • Algorytmy sekwencyjnego wyboru cech (129)
  • Ocenianie istotności cech za pomocą algorytmu losowego lasu (134)
  • Podsumowanie (137)

Rozdział 5. Kompresja danych poprzez redukcję wymiarowości (139)

  • Nienadzorowana redukcja wymiarowości za pomocą analizy głównych składowych (140)
    • Wyjaśniona wariancja całkowita (141)
    • Transformacja cech (145)
    • Analiza głównych składowych w interfejsie scikit-learn (147)
  • Nadzorowana kompresja danych za pomocą liniowej analizy dyskryminacyjnej (150)
    • Obliczanie macierzy rozproszenia (151)
    • Dobór dyskryminant liniowych dla nowej podprzestrzeni cech (154)
    • Rzutowanie próbek na nową przestrzeń cech (156)
    • Implementacja analizy LDA w bibliotece scikit-learn (156)
  • Jądrowa analiza głównych składowych jako metoda odwzorowywania nierozdzielnych liniowo klas (158)
    • Funkcje jądra oraz sztuczka z funkcją jądra (160)
    • Implementacja jądrowej analizy głównych składowych w Pythonie (164)
    • Rzutowanie nowych punktów danych (170)
    • Algorytm jądrowej analizy głównych składowych w bibliotece scikit-learn (174)
  • Podsumowanie (175)

Rozdział 6. Najlepsze metody oceny modelu i strojenie parametryczne (177)

  • Usprawnianie cyklu pracy za pomocą kolejkowania (177)
    • Wczytanie zestawu danych Breast Cancer Wisconsin (178)
    • Łączenie funkcji transformujących i estymatorów w kolejce czynności (179)
  • Stosowanie k-krotnego sprawdzianu krzyżowego w ocenie skuteczności modelu (180)
    • Metoda wydzielania (181)
    • K-krotny sprawdzian krzyżowy (182)
  • Sprawdzanie algorytmów za pomocą krzywych uczenia i krzywych walidacji (186)
    • Diagnozowanie problemów z obciążeniem i wariancją za pomocą krzywych uczenia (186)
    • Rozwiązywanie problemów nadmiernego i niewystarczającego dopasowania za pomocą krzywych walidacji (189)
  • Dostrajanie modeli uczenia maszynowego za pomocą metody przeszukiwania siatki (191)
    • Strojenie hiperparametrów przy użyciu metody przeszukiwania siatki (192)
    • Dobór algorytmu poprzez zagnieżdżony sprawdzian krzyżowy (193)
  • Przegląd metryk oceny skuteczności (195)
    • Odczytywanie macierzy pomyłek (195)
    • Optymalizacja precyzji i pełności modelu klasyfikującego (197)
    • Wykres krzywej ROC (198)
    • Metryki zliczające dla klasyfikacji wieloklasowej (201)
  • Podsumowanie (202)

Rozdział 7. Łączenie różnych modeli w celu uczenia zespołowego (203)

  • Uczenie zespołów (203)
  • Implementacja prostego klasyfikatora wykorzystującego głosowanie większościowe (207)
    • Łączenie różnych algorytmów w celu klasyfikacji za pomocą głosowania większościowego (213)
  • Ewaluacja i strojenie klasyfikatora zespołowego (216)
  • Agregacja - tworzenie zespołu klasyfikatorów za pomocą próbek początkowych (221)
  • Usprawnianie słabych klasyfikatorów za pomocą wzmocnienia adaptacyjnego (226)
  • Podsumowanie (232)

Rozdział 8. Wykorzystywanie uczenia maszynowego w analizie sentymentów (235)

  • Zestaw danych IMDb movie review (235)
  • Wprowadzenie do modelu worka słów (237)
    • Przekształcanie słów w wektory cech (238)
    • Ocena istotności wyrazów za pomocą ważenia częstości termów - odwrotnej częstości w tekście (239)
    • Oczyszczanie danych tekstowych (241)
    • Przetwarzanie tekstu na znaczniki (243)
  • Uczenie modelu regresji logistycznej w celu klasyfikowania tekstu (245)
  • Praca z większą ilością danych - algorytmy sieciowe i uczenie pozardzeniowe (247)
  • Podsumowanie (250)

Rozdział 9. Wdrażanie modelu uczenia maszynowego do aplikacji sieciowej (251)

  • Serializacja wyuczonych estymatorów biblioteki scikit-learn (252)
  • Konfigurowanie bazy danych SQLite (254)
  • Tworzenie aplikacji sieciowej za pomocą środowiska Flask (256)
  • Nasza pierwsza aplikacja sieciowa (257)
    • Sprawdzanie i wyświetlanie formularza (258)
    • Przekształcanie klasyfikatora recenzji w aplikację sieciową (262)
  • Umieszczanie aplikacji sieciowej na publicznym serwerze (269)
    • Aktualizowanie klasyfikatora recenzji filmowych (271)
  • Podsumowanie (272)

Rozdział 10. Przewidywanie ciągłych zmiennych docelowych za pomocą analizy regresywnej (275)

  • Wprowadzenie do prostego modelu regresji liniowej (276)
  • Zestaw danych Housing (277)
    • Wizualizowanie ważnych elementów zestawu danych (278)
  • Implementacja modelu regresji liniowej wykorzystującego zwykłą metodę najmniejszych kwadratów (282)
    • Określanie parametrów regresywnych za pomocą metody gradientu prostego (283)
    • Szacowanie współczynnika modelu regresji za pomocą biblioteki scikit-learn (286)
  • Uczenie odpornego modelu regresywnego za pomocą algorytmu RANSAC (288)
  • Ocenianie skuteczności modeli regresji liniowej (291)
  • Stosowanie regularyzowanych metod regresji (294)
  • Przekształcanie modelu regresji liniowej w krzywą - regresja wielomianowa (295)
    • Modelowanie nieliniowych zależności w zestawie danych Housing (297)
    • Analiza nieliniowych relacji za pomocą algorytmu losowego lasu (300)
  • Podsumowanie (305)

Rozdział 11. Praca z nieoznakowanymi danymi - analiza skupień (307)

  • Grupowanie obiektów na podstawie podobieństwa przy użyciu algorytmu centroidów (308)
    • Algorytm k-means++ (311)
    • Klasteryzacja twarda i miękka (312)
    • Stosowanie metody łokcia do wyszukiwania optymalnej liczby skupień (315)
    • Ujęcie ilościowe jakości klasteryzacji za pomocą wykresu profilu (316)
  • Organizowanie skupień do postaci drzewa klastrów (320)
    • Przeprowadzanie hierarchicznej analizy skupień na macierzy odległości (323)
    • Dołączanie dendrogramów do mapy cieplnej (326)
    • Aglomeracyjna analiza skupień w bibliotece scikit-learn (328)
  • Wyznaczanie rejonów o dużej gęstości za pomocą algorytmu DBSCAN (328)
  • Podsumowanie (333)

Rozdział 12. Trenowanie sztucznych sieci neuronowych w rozpoznawaniu obrazu (335)

  • Modelowanie złożonych funkcji przy użyciu sztucznych sieci neuronowych (336)
    • Jednowarstwowa sieć neuronowa - powtórzenie (337)
    • Wstęp do wielowarstwowej architektury sieci neuronowych (338)
    • Aktywacja sieci neuronowej za pomocą propagacji w przód (340)
  • Klasyfikowanie pisma odręcznego (343)
    • Zestaw danych MNIST (344)
    • Implementacja wielowarstwowego perceptronu (348)
  • Trenowanie sztucznej sieci neuronowej (356)
    • Obliczanie logistycznej funkcji kosztu (356)
    • Uczenie sieci neuronowych za pomocą algorytmu wstecznej propagacji (359)
  • Ujęcie intuicyjne algorytmu wstecznej propagacji (361)
  • Usuwanie błędów w sieciach neuronowych za pomocą sprawdzania gradientów (363)
  • Zbieżność w sieciach neuronowych (368)
  • Inne architektury sieci neuronowych (370)
    • Splotowe sieci neuronowe (370)
    • Rekurencyjne sieci neuronowe (371)
  • Jeszcze słowo o implementacji sieci neuronowej (373)
  • Podsumowanie (373)

Rozdział 13. Równoległe przetwarzanie sieci neuronowych za pomocą biblioteki Theano (375)

  • Tworzenie, kompilowanie i uruchamianie wyrażeń w interfejsie Theano (376)
    • Czym jest Theano? (377)
    • Pierwsze kroki z Theano (378)
    • Konfigurowanie środowiska Theano (379)
    • Praca ze strukturami tablicowymi (381)
    • Przejdźmy do konkretów - implementacja regresji liniowej w Theano (384)
  • Dobór funkcji aktywacji dla jednokierunkowych sieci neuronowych (387)
    • Funkcja logistyczna - powtórzenie (388)
    • Szacowanie prawdopodobieństw w klasyfikacji wieloklasowej za pomocą znormalizowanej funkcji wykładniczej (390)
    • Rozszerzanie zakresu wartości wyjściowych za pomocą funkcji tangensa hiperbolicznego (391)
  • Skuteczne uczenie sieci neuronowych za pomocą biblioteki Keras (393)
  • Podsumowanie (398)

Skorowidz (401)

  • Title: Python. Uczenie maszynowe
  • Author: Sebastian Raschka
  • Original title: Python Machine Learning
  • Translation: Krzysztof Sawka
  • ISBN: 978-83-283-3614-8, 9788328336148
  • Date of issue: 2017-11-24
  • Format: Ebook
  • Item ID: pythum
  • Publisher: Helion