Python. Uczenie maszynowe - ebook
Python. Uczenie maszynowe - 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!
Spis treści
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)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-3614-8 |
Rozmiar pliku: | 18 MB |