Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie \ Python

Praktyczne uczenie nienadzorowane przy użyciu języka Python Język: 1

978-83-7541-426-4

Cena Brutto: 79.80

Cena netto: 76.00

Ilość:
Wersja: Drukowana
Autor Orin Thomas
Liczba_stron 362
Wydawnictwo O’Reilly
Oprawa miękka
Data_Wydania 2020-11-10
Praktyczne uczenie nienadzorowane przy użyciu języka Python


Jak budować użytkowe rozwiązania uczenia maszynowego na podstawie nieoznakowanych danych.

Wielu ekspertów branżowych uważa uczenie nienadzorowane za kolejną granicę w dziedzinie sztucznej inteligencji, która może stanowić klucz do pełnej sztucznej inteligencji. Ponieważ większość danych na świecie jest nieoznakowana, nie można do nich zastosować konwencjonalnego uczenia nadzorowanego. Z kolei uczenie nienadzorowane może być stosowane wobec nieoznakowanych zbiorów danych w celu odkrycia istotnych wzorców ukrytych głęboko w tych danych, które dla człowieka mogą być niemal niemożliwe do odkrycia.


Autor Ankur Patel pokazuje, jak stosować uczenie nienadzorowane przy wykorzystaniu dwóch prostych platform dla języka Python: Scikit-learn oraz TensorFlow (wraz z Keras). Dzięki dołączonemu kodowi i praktycznym przykładom analitycy danych będą mogli identyfikować trudne do znalezienia wzorce w danych i odkrywać dogłębne zależności biznesowe, wykrywać anomalie, przeprowadzać automatyczną selekcję zmiennych i generować syntetyczne zbiory danych. Wystarczy znajomość programowania i nieco doświadczenia w uczeniu maszynowym, aby zająć się:

  • Porównywaniem mocnych i słabych stron różnych podejść do uczenia maszynowego: uczenia nadzorowanego, nienadzorowanego i wzmacnianego.
  • Przygotowywaniem i zarządzaniem projektami uczenia maszynowego.
  • Budowaniem systemu wykrywania anomalii w celu wychwycenia oszustwa dotyczącego kard kredytowych.
  • Rozdzielaniem użytkowników na wydzielone i jednorodne grupy.
  • Przeprowadzaniem uczenia pół-nadzorowanego.
  • Opracowywaniem systemów polecania filmów z użyciem ograniczonych automatów Boltzmanna.
  • Generowaniem syntetycznych obrazów przy użyciu generujących sieci antagonistycznych.

Wstęp. . . . . . . . . . . xi

Część I. Podstawy uczenia nienadzorowanego

1. Uczenie nienadzorowane w ekosystemie uczenia maszynowego. . . . . . 3

Podstawowa terminologia związana z uczeniem maszynowym . . . . . . . . . . . . . 3

System oparty na zasadach a uczenie maszynowe . . . 4

Uczenie nadzorowane a nienadzorowane . . . . . . . . . . . 5

Mocne i słabe strony uczenia nadzorowanego . . . . 6

Mocne i słabe strony uczenia nienadzorowanego . 7

Używanie uczenia nienadzorowanego do poprawy rozwiązań wykorzystujących uczenie maszynowe. . 8

Bliższe spojrzenie na algorytmy nadzorowane. . . . . .10

Metody liniowe. . . . . . . .12

Metody oparte na sąsiedztwie . . . . . . . . . . . . . . . .13

Metody oparte na drzewach. . . . . . . . . . . . . . . . . .14

Maszyny wektorów nośnych. . . . . . . . . . . . . . . . . .16

Sieci neuronowe. . . . . . .16

Bliższe spojrzenie na algorytmy nienadzorowane . . .16

Redukcja wymiarowości . . . . . . . . . . . . . . . . . . . . .17

Analiza skupień . . . . . . .19

Wyodrębnianie cech. . . .21

Nienadzorowane uczenie głębokie . . . . . . . . . . . .22

Problemy z danymi sekwencyjnymi przy użyciu uczenia nienadzorowanego . . . . . . . . . . . . . . . . . . .24

Uczenie wzmacniane przy użyciu uczenia nienadzorowanego. . . . . . . . . . . . . .25

Uczenie pół-nadzorowane. .26

Udane zastosowania uczenia nienadzorowanego . . .26

Wykrywanie anomalii . .26

Podsumowanie. . .28

 

2. Kompleksowy projekt uczenia maszynowego. .29

Konfiguracja środowiska . . .29

Kontrola wersji: Git. . . . .29

Klonowanie repozytorium Git dla tej książki . . . .30

Biblioteki naukowe: dystrybucja Anaconda dla języka Python . . . . . . . . . .30

Sieci neuronowe: TensorFlow i Keras . . . . . . . . . . .30

Wzmacnianie gradientowe, wersja pierwsza: XGBoost. . . . . . . . . . . . . . . . .31

Wzmacnianie gradientowe, wersja druga: LightGBM . . . . . . . . . . . . . . . . . .31

Algorytmy analizy skupień (grupowania). . . . . . .32

Interaktywne środowisko obliczeniowe: Jupyter Notebook . . . . . . . . . . . . .32

Przegląd danych. .32

Przygotowanie danych. . . . .33

Pozyskiwanie danych. . .33

Badanie danych . . . . . . .35

Generowanie macierzy cech tablicy oznakowań .38

Konstruowanie cech i wybieranie cech . . . . . . . . .39

Wizualizacja danych. . . .40

Przygotowanie modelu . . . .41

Podział na zestaw szkoleniowy i testowy . . . . . . .41

Wybranie funkcji kosztu . . . . . . . . . . . . . . . . . . . . .41

Tworzenie zestawów k-krotnego sprawdzania krzyżowego. . . . . . . . . . . . .42

Modele uczenia maszynowego (część I) . . . . . . . . . . .43

Model #1: Regresja logistyczna . . . . . . . . . . . . . . .43

Metryki oceny. . . .46

Macierz pomyłek . . . . . .46

Krzywa precyzji-czułości . . . . . . . . . . . . . . . . . . . . .47

Krzywa ROC.. .49

Modele uczenia maszynowego (część II) . . . . . . . . . . .51

Model #2: Losowe lasy. .51

Model #3: Automat wzmacniania gradientowego (XGBoost) . . . . . . . . . . .54

Model #4: Automat wzmacniania gradientowego (LightGBM) . . . . . . . . . .57

Ocena czterech modeli przy użyciu zestawu testowego . . . . . . . . . . . . . . . . . . .60

Zespoły modeli. . .64

Układanie warstwowe. .65

Ostateczny wybór modelu. .68

Potok produkcyjny . . . . . . . .69

Podsumowanie. . .70

 

Część II. Uczenie nienadzorowane przy użyciu Scikit-Learn

3. Redukcja wymiarowości .73

Motywacja do redukcji wymiarowości. . . . . . . . . . . . .73

Baza danych MNIST . . . .74

Algorytmy redukcji wymiarowości. . . . . . . . . . . . . . . .78

Rzutowanie liniowe a uczenie rozmaitościowe . .78

Analiza głównych składowych . . . . . . . . . . . . . . . . . . .78

Pojęcie analizy PCA . . . .78

Analiza PCA w praktyce .79

Przyrostowa analiza PCA. . . . . . . . . . . . . . . . . . . . .84

Rzadka analiza PCA . . . .84

Rdzeniowa analiza PCA .86

Rozkład według wartości osobliwych . . . . . . . . . . . . .87

Losowe rzutowanie. . . . . . . .88

Losowe rzutowanie Gaussa. . . . . . . . . . . . . . . . . . .88

Rzadkie losowe rzutowanie . . . . . . . . . . . . . . . . . .89

Isomap. . . . . . . . . .90

Skalowanie wielowymiarowe. . . . . . . . . . . . . . . . . . . .91

Lokalnie liniowe osadzanie .92

Stochastyczne osadzanie sąsiadów z t-rozkładem . . .93

Inne metody redukcji wymiarowości . . . . . . . . . . . . . .95

Uczenie słownikowe. . . . . . .95

Analiza niezależnych składowych. . . . . . . . . . . . . . . . .96

Podsumowanie. . .97

 

4. Wykrywanie anomalii . . .99

Wykrywanie oszustw na kartach kredytowych . . . .100

Przygotowanie danych . . . . . . . . . . . . . . . . . . . . .100

Definiowanie funkcji oceniającej anomalie. . . . .100

Definiowanie metryk oceny . . . . . . . . . . . . . . . . .101

Definiowanie funkcji wykreślającej . . . . . . . . . . .103

Wykrywanie anomalii przy użyciu normalnej analizy PCA . . . . . . . . . . . . . . . .103

Składowe PCA równe liczbie oryginalnych wymiarów . . . . . . . . . . . . . . . .104

Szukanie optymalnej liczby głównych składowych. . . . . . . . . . . . . . . . . . .106

Wykrywanie anomalii przy użyciu rzadkiej analizy PCA . . . . . . . . . . . . . . . . . .108

Wykrywanie anomalii przy użyciu rdzeniowej analizy PCA . . . . . . . . . . . . . . .111

Wykrywanie anomalii przy użyciu losowego rzutowania Gaussa . . . . . . . . . .113

Wykrywanie anomalii przy użyciu rzadkiego losowego rzutowania . . . . . . . .115

Nieliniowe wykrywanie anomalii. . . . . . . . . . . . . . . .116

Wykrywanie anomalii przy użyciu uczenia słownikowego . . . . . . . . . . . . . . . .117

Wykrywanie anomalii przy użyciu ICA. . . . . . . . . . . .119

Wykrywanie oszustw na zestawie testowym . . . . . .120

Wykrywanie anomalii na zestawie testowym przy użyciu normalnej analizy PCA . . . . . . . . . . . . . .120

Wykrywanie anomalii na zestawie testowym przy użyciu analizy ICA . . .122

Wykrywanie anomalii na zestawie testowym przy użyciu uczenia słownikowego. . . . . . . . . . . . . .124

Podsumowanie. .125

 

5. Analiza skupień . . . . . . . .127

Zestaw danych MNIST . . . .128

Przygotowanie danych . . . . . . . . . . . . . . . . . . . . .128

Algorytmy analizy skupień (grupowania) . . . . . . . . .129

k-średnich. . . . . .130

Bezwładność k-średnich . . . . . . . . . . . . . . . . . . . .130

Ocena wyników grupowania . . . . . . . . . . . . . . . .131

Dokładność k-średnich.133

k-średnich a liczba głównych składowych . . . . .134

k-średnich na oryginalnym zestawie danych . . .136

Grupowanie hierarchiczne.137

Aglomeracyjne grupowanie hierarchiczne . . . . .138

Dendrogram.139

Ocena wyników grupowania . . . . . . . . . . . . . . . .141

DBSCAN. . . . . . . .143

Algorytm DBSCAN . . . .143

Zastosowanie DBSCAN wobec naszego zestawu danych. . . . . . . . . . . . . . .144

HDBSCAN.. . .145

Podsumowanie. .147

 

6. Segmentacja grup . . . . .149

Dane Lending Club . . . . . . .149

Przygotowanie danych . . . . . . . . . . . . . . . . . . . . .150

Przekształcenie formatu tekstowego w format liczbowy . . . . . . . . . . . . . .151

Przypisywanie brakujących wartości. . . . . . . . . .152

Konstruowanie cech. . .154

Wybieranie ostatecznego zestawu cech i przeprowadzanie skalowania .154

Wyznaczanie oznakowań do oceny . . . . . . . . . . .155

Ocena grup. . . . .156

Aplikacja k-średnich . . . . . .158

Aplikacja grupowania hierarchicznego . . . . . . . . . . .160

Aplikacja HDBSCAN. . . . . . .164

Podsumowanie. .166

 

Część III. Uczenie nienadzorowane przy użyciu TensorFlow i Keras

7. Autokodery. . . .169

Sieci neuronowe.170

TensorFlow. .171

Keras. . . . . . .172

Autokoder: koder i dekoder . . . . . . . . . . . . . . . . . . . . .173

Autokodery niezupełne . . .173

Autokodery nadmiarowe. .174

Gęste i rzadkie autokodery . . . . . . . . . . . . . . . . . . . . .175

Autokoder odszumiający . .175

Autokoder wariacyjny . . . .176

Podsumowanie. .176

 

8. Praktyczny autokoder . .179

Przygotowanie danych. . . .179

Elementy składowe autokodera . . . . . . . . . . . . . . . . .182

Funkcje aktywacji . . . . . . . .182

Nasz pierwszy autokoder. .183

Funkcja straty . . . . . . . .184

Optymalizator. . . . . . . .184

Szkolenie modelu. . . . .185

Ocenianie na zestawie testowym. . . . . . . . . . . . .187

Dwuwarstwowy, niezupełny autokoder z liniową funkcją aktywacji . . . . . . .190

Zwiększanie liczby węzłów . . . . . . . . . . . . . . . . . .193

Dodawanie więcej ukrytych warstw . . . . . . . . . .195

Autokoder nieliniowy. . . . .196

Nadmiarowy autokoder z aktywacją liniową . . . . . .198

Nadmiarowy autokoder z aktywacją liniową i wykluczaniem . . . . . . . . . . . . .201

Rzadki, nadmiarowy autokoder z aktywacją liniową. . . . . . . . . . . . . . . . . . . . .203

Rzadki, nadmiarowy autokoder z aktywacją liniową i wykluczaniem. . . . . . .205

Praca z zaszumionymi zestawami danych. . . . . . . . .207

Autokoder odszumiający . .208

Dwuwarstwowy, odszumiający, niezupełny autokoder z aktywacją liniową. . . . . . . . . . . . . . . . . . .208

Dwuwarstwowy, odszumiający, nadmiarowy autokoder z aktywacją liniową . . . . . . . . . . . . . . . . .211

Dwuwarstwowy, odszumiający, nadmiarowy autokoder z aktywacją ReLu . . . . . . . . . . . . . . . . . . .213

Podsumowanie. .215

 

9. Uczenie pół-nadzorowane . . . . . . . . . . . . . . . . . . .217

Przygotowanie danych. . . .217

Model nadzorowany. . . . . .220

viii | Spis treści

Model nienadzorowany . . .222

Model pół-nadzorowany . .224

Siła uczenia nadzorowanego i nienadzorowanego .226

Podsumowanie. .227

 

Część IV. Głębokie uczenie nienadzorowane przy użyciu TensorFlow i Keras

10. Systemy rekomendacyjne przy użyciu ograniczonych automatów Boltzmanna . . . . . . . . . . .231

Automaty Boltzmanna. . . .231

Ograniczone automaty Boltzmanna . . . . . . . . . .232

Systemy rekomendacyjne .233

Filtrowanie kolektywne. . . . . . . . . . . . . . . . . . . . .233

The Netflix Prize . . . . . .234

Zestaw danych MovieLens.234

Przygotowanie danych . . . . . . . . . . . . . . . . . . . . .234

Definiowanie funkcji kosztu: błąd średniokwadratowy. . . . . . . . . . . . . . . .238

Przeprowadzenie podstawowych eksperymentów. . . . . . . . . . . . . . . . . . .239

Rozkład macierzy . . . . . . . .240

Jeden utajony czynnik .241

Trzy utajone czynniki . .242

Pięć utajonych czynników. . . . . . . . . . . . . . . . . . .243

Filtrowanie kolektywne przy użyciu automatów RBM. . . . . . . . . . . . . . . . . . . .243

Architektura sieci neuronowej automatu RBM. .244

Budowanie składników klasy RBM. . . . . . . . . . . .245

Szkolenie systemu rekomendacyjnego opartego na automacie RBM. . . .248

Podsumowanie. .249

 

11. Wykrywanie cech przy użyciu sieci głębokiego przekonania . . . . . . . .251

Sieci głębokiego przekonania w szczegółach . . . . . .251

Klasyfikacja obrazów MNIST . . . . . . . . . . . . . . . . . . . .252

Ograniczone automaty Boltzmanna. . . . . . . . . . . . . .254

Budowanie składników klasy RBM. . . . . . . . . . . .254

Generowanie obrazów przy użyciu modelu RBM. . . . . . . . . . . . . . . . . . . . .257

Przeglądanie pośrednich detektorów cech . . . . .257

Szkolenie trzech automatów RBM dla sieci DBN. . . .258

Badanie detektorów cech . . . . . . . . . . . . . . . . . . .260

Przeglądanie wygenerowanych obrazów . . . . . .261

Pełna sieć DBN.. .265

Jak działa szkolenie sieci DBN. . . . . . . . . . . . . . . .269

Szkolenie sieci DBN . . .269

Jak uczenie nienadzorowane pomaga uczeniu nadzorowanemu. . . . . . . . . . .270

Generowanie obrazów do zbudowania lepszego klasyfikatora obrazów .271

Klasyfikator obrazów wykorzystujący LightGBM . . .278

Tylko nadzorowany . . .278

Rozwiązanie nienadzorowane i nadzorowane . .279

Podsumowanie. .280

 

12. Generujące sieci antagonistyczne . . . . . . . . . . . .283

Pojęcie sieci GAN. . . . . . . . .283

Siła sieci GAN . . . . . . . .284

Głębokie splotowe sieci GAN . . . . . . . . . . . . . . . . . . . .284

Splotowe sieci neuronowe.285

Powrót do sieci DCGAN. . . .289

Generator sieci DCGAN.290

Dyskryminator sieci DCGAN. . . . . . . . . . . . . . . . . .291

Modele dyskryminatora i antagonistyczny. . . . .292

Sieć DCGAN dla zestawu danych MNIST. . . . . . . .293

Sieć DCGAN dla MNIST w działaniu. . . . . . . . . . . . . . .295

Generowanie syntetycznych obrazów . . . . . . . . .296

Podsumowanie. .297

 

13. Grupowanie szeregów czasowych . . . . . . . . . . . .299

Dane z EKG.. . . . .300

Podejście do grupowania szeregów czasowych . . . .300

k-kształtów..300

Grupowanie szeregów czasowych przy użyciu k-kształtów na danych ECGFiveDays . . . . . . . . . . . . . . . .301

Przygotowanie danych . . . . . . . . . . . . . . . . . . . . .301

Szkolenie i ocena . . . . .306

Grupowanie szeregów czasowych przy użyciu k-kształtów na danych ECG5000 . . . . . . . . . . . . . . . . . . .307

Przygotowanie danych . . . . . . . . . . . . . . . . . . . . .307

Szkolenie i ocena . . . . .311

Grupowanie szeregów czasowych przy użyciu k-średnich na danych ECG5000 . . . . . . . . . . . . . . . . . . . .313

Grupowanie szeregów czasowych przy użyciu hierarchicznego DBSCAN na danych ECG5000 . . . . . . . .314

Porównanie algorytmów grupowania szeregów czasowych . . . . . . . . . . . . . .314

Pełny przebieg dla algorytmu k-kształtów. . . . .315

Pełny przebieg dla algorytmu k-średnich . . . . . .317

Pełny przebieg dla algorytmu HDBSCAN. . . . . . .318

Porównanie wszystkich trzech podejść do grupowania szeregów czasowych . . . . . . . . . . . . . . . . . .319

Podsumowanie. .321

 

14. Podsumowanie . . . . . . . .323

Uczenie nadzorowane . . . .324

Uczenie nienadzorowane. .324

Scikit-Learn..325

TensorFlow i Keras . . . .325

Uczenie wzmacniane . . . . .326

Najbardziej obiecujące obecnie obszary uczenia nienadzorowanego . . . . . . .327

Przyszłość uczenia nienadzorowanego . . . . . . . . . . .328

Ostatnia uwaga..329

Indeks.. . . . . . . . .331

O autorze. . . . . . .339

Kolofon.. . . . . . . .339

powrót
 
Produkty Podobne
Python dla DevOps. Naucz się bezlitośnie skutecznej automatyzacji
Python i Asyncio. Programowanie asynchroniczne
Python. Nowoczesne programowanie w prostych krokach. Wydanie II
Praktyczne uczenie nienadzorowane przy użyciu języka Python
Python. Dobre praktyki profesjonalistów
Python dla programistów. Big Data i AI. Studia przypadków
Uczenie maszynowe w Pythonie dla każdego
Zacznij od Pythona. Pierwsze kroki w programowaniu
Python. Wprowadzenie. Wydanie V
Uczenie maszynowe w Pythonie. Leksykon kieszonkowy
Więcej produktów