Uczenie maszynowe w Pythonie. Receptury - ebook
Uczenie maszynowe w Pythonie. Receptury - ebook
Uczenie maszynowe jest dziś wykorzystywane w różnych dziedzinach życia: w biznesie, w polityce, w organizacjach non profit i oczywiście w nauce. Samouczące się algorytmy maszynowe stanowią wyjątkową metodę przekształcania danych w wiedzę. Powstało sporo książek wyjaśniających sposób działania tych algorytmów i prezentujących nieraz spektakularne przykłady ich wykorzystania. Do dyspozycji pozostają też narzędzia przeznaczone do tego rodzaju zastosowań, takie jak biblioteki Pythona, w tym pandas i scikit-learn. Problemem pozostaje implementacja rozwiązań codziennych problemów związanych z uczeniem maszynowym.
Z tej książki najwięcej skorzystają profesjonaliści, którzy znają podstawowe koncepcje związane z uczeniem maszynowym. Osoby te potraktują ją jako przewodnik ułatwiający rozwiązywanie konkretnych problemów napotykanych podczas codziennej pracy z uczeniem maszynowym. Dzięki zawartym tu recepturom takie zadania jak wczytywanie danych, obsługa danych tekstowych i liczbowych, wybór modelu czy redukcja wymiarowości staną się o wiele łatwiejsze do wykonania. Każda receptura zawiera kod, który można wstawić do swojego programu, połączyć lub zaadaptować według potrzeb. Przedstawiono także analizy wyjaśniające poszczególne rozwiązania i ich kontekst. Z tą książką płynnie przejdziesz od rozważań teoretycznych do opracowywania działających aplikacji i praktycznego korzystania z zalet uczenia maszynowego.
Receptury w tej książce dotyczą:
- wektorów, macierzy i tablic
- obsługi danych liczbowych i tekstowych, obrazów, a także związanych z datą i godziną
- redukcji wymiarowości za pomocą wyodrębniania i wyboru cech
- oceny i wyboru modelu oraz regresji liniowej i logistycznej
- maszyn wektorów nośnych (SVM), naiwnej klasyfikacji bayesowskiej, klasteryzacji i sieci neuronowych
- zapisywania i wczytywania wytrenowanych modeli
Uczenie maszynowe w Pythonie - użyj sprawdzonych receptur kodu!
Spis treści
Wprowadzenie 11
1. Wektor, macierz i tablica 15
- 1.0. Wprowadzenie 15
- 1.1. Tworzenie wektora 15
- 1.2. Tworzenie macierzy 16
- 1.3. Tworzenie macierzy rzadkiej 17
- 1.4. Pobieranie elementów 18
- 1.5. Opisywanie macierzy 20
- 1.6. Przeprowadzanie operacji na elementach 20
- 1.7. Znajdowanie wartości maksymalnej i minimalnej 21
- 1.8. Obliczanie średniej, wariancji i odchylenia standardowego 22
- 1.9. Zmiana kształtu tablicy 23
- 1.10. Transponowanie wektora lub macierzy 24
- 1.11. Spłaszczanie macierzy 25
- 1.12. Znajdowanie rzędu macierzy 25
- 1.13. Obliczanie wyznacznika macierzy 26
- 1.14. Pobieranie przekątnej macierzy 27
- 1.15. Obliczanie śladu macierzy 27
- 1.16. Znajdowanie wektorów i wartości własnych 28
- 1.17. Obliczanie iloczynu skalarnego 29
- 1.18. Dodawanie i odejmowanie macierzy 30
- 1.19. Mnożenie macierzy 31
- 1.20. Odwracanie macierzy 32
- 1.21. Generowanie liczb losowych 33
2. Wczytywanie danych 35
- 2.0. Wprowadzenie 35
- 2.1. Wczytywanie przykładowego zbioru danych 35
- 2.2. Tworzenie symulowanego zbioru danych 36
- 2.3. Wczytywanie pliku CSV 39
- 2.4. Wczytywanie pliku Excela 40
- 2.5. Wczytywanie pliku JSON 41
- 2.6. Wykonywanie zapytań do bazy danych SQL 42
3. Przygotowywanie danych 45
- 3.0. Wprowadzenie 45
- 3.1. Tworzenie ramki danych 46
- 3.2. Opisywanie danych 47
- 3.3. Poruszanie się po ramce danych 49
- 3.4. Pobieranie wierszy na podstawie pewnych warunków 51
- 3.5. Zastępowanie wartości 52
- 3.6. Zmiana nazwy kolumny 53
- 3.7. Znajdowanie wartości minimalnej, maksymalnej, sumy, średniej i liczby elementów w kolumnie 54
- 3.8. Znajdowanie unikatowych wartości 55
- 3.9. Obsługa brakujących wartości 56
- 3.10. Usuwanie kolumn 58
- 3.11. Usuwanie wiersza 59
- 3.12. Usuwanie powielonych wierszy 60
- 3.13. Grupowanie wierszy 62
- 3.14. Grupowanie wierszy według czasu 63
- 3.15. Iterowanie przez kolumnę 65
- 3.16. Wywoływanie funkcji dla wszystkich elementów kolumny 66
- 3.17. Wywoływanie funkcji dla grupy 67
- 3.18. Konkatenacja obiektów typu DataFrame 68
- 3.19. Złączanie obiektów typu DataFrame 69
4. Obsługa danych liczbowych 73
- 4.0. Wprowadzenie 73
- 4.1. Przeskalowywanie cechy 73
- 4.2. Standaryzowanie cechy 74
- 4.3. Normalizowanie obserwacji 76
- 4.4. Generowanie cech wielomianowych i interakcji 78
- 4.5. Transformacja cech 79
- 4.6. Wykrywanie elementów odstających 80
- 4.7. Obsługa elementów odstających 82
- 4.8. Dyskretyzacja cech 84
- 4.9. Grupowanie obserwacji przy użyciu klastra 85
- 4.10. Usuwanie obserwacji, w których brakuje wartości 87
- 4.11. Uzupełnianie brakujących wartości 88
5. Obsługa danych kategoryzujących 91
- 5.0. Wprowadzenie 91
- 5.1. Kodowanie nominalnych cech kategoryzujących 92
- 5.2. Kodowanie porządkowych cech kategoryzujących 94
- 5.3. Kodowanie słowników cech 96
- 5.4. Wstawianie brakujących wartości klas 98
- 5.5. Obsługa niezrównoważonych klas 99
6. Obsługa tekstu 103
- 6.0. Wprowadzenie 103
- 6.1. Oczyszczanie tekstu 103
- 6.2. Przetwarzanie i oczyszczanie danych HTML 105
- 6.3. Usuwanie znaku przestankowego 105
- 6.4. Tokenizacja tekstu 106
- 6.5. Usuwanie słów o małym znaczeniu 107
- 6.6. Stemming słów 108
- 6.7. Oznaczanie części mowy 109
- 6.8. Kodowanie tekstu za pomocą modelu worka słów 111
- 6.9. Określanie wagi słów 113
7. Obsługa daty i godziny 117
- 7.0. Wprowadzenie 117
- 7.1. Konwertowanie ciągu tekstowego na datę 117
- 7.2. Obsługa stref czasowych 118
- 7.3. Pobieranie daty i godziny 120
- 7.4. Podział danych daty na wiele cech 121
- 7.5. Obliczanie różnicy między datami 122
- 7.6. Kodowanie dni tygodnia 123
- 7.7. Tworzenie cechy opóźnionej w czasie 124
- 7.8. Użycie okien upływającego czasu 125
- 7.9. Obsługa brakujących danych w serii danych zawierających wartości daty i godziny 126
8. Obsługa obrazów 129
- 8.0. Wprowadzenie 129
- 8.1. Wczytywanie obrazu 129
- 8.2. Zapisywanie obrazu 132
- 8.3. Zmiana wielkości obrazu 133
- 8.4. Kadrowanie obrazu 134
- 8.5. Rozmywanie obrazu 135
- 8.6. Wyostrzanie obrazu 138
- 8.7. Zwiększanie kontrastu 138
- 8.8. Izolowanie kolorów 141
- 8.9. Progowanie obrazu 142
- 8.10. Usuwanie tła obrazu 145
- 8.11. Wykrywanie krawędzi 147
- 8.12. Wykrywanie narożników w obrazie 150
- 8.13. Tworzenie cech w uczeniu maszynowym 153
- 8.14. Użycie średniej koloru jako cechy 155
- 8.15. Użycie histogramu koloru jako cechy 157
9. Redukowanie wymiarowości za pomocą wyodrębniania cech 161
- 9.0. Wprowadzenie 161
- 9.1. Redukowanie cech za pomocą głównych składowych 161
- 9.2. Redukowanie cech, gdy dane są liniowo nierozłączne 164
- 9.3. Redukowanie cech przez maksymalizację rozłączności klas 166
- 9.4. Redukowanie cech za pomocą rozkładu macierzy 169
- 9.5. Redukowanie cech w rzadkich danych 170
10. Redukcja wymiarowości za pomocą wyboru cech 173
- 10.0. Wprowadzenie 173
- 10.1. Progowanie wariancji cechy liczbowej 173
- 10.2. Progowanie wariancji cechy binarnej 175
- 10.3. Obsługa wysoce skorelowanych cech 176
- 10.4. Usuwanie nieistotnych dla klasyfikacji cech 177
- 10.5. Rekurencyjne eliminowanie cech 179
11. Ocena modelu 183
- 11.0. Wprowadzenie 183
- 11.1. Modele sprawdzianu krzyżowego 183
- 11.2. Tworzenie modelu regresji bazowej 186
- 11.3. Tworzenie modelu klasyfikacji bazowej 188
- 11.4. Ocena prognoz klasyfikatora binarnego 189
- 11.5. Ocena progowania klasyfikatora binarnego 192
- 11.6. Ocena prognoz klasyfikatora wieloklasowego 195
- 11.7. Wizualizacja wydajności klasyfikatora 197
- 11.8. Ocena modelu regresji 199
- 11.9. Ocena modelu klasteryzacji 201
- 11.10. Definiowanie niestandardowych współczynników oceny modelu 202
- 11.11. Wizualizacja efektu wywieranego przez wielkość zbioru uczącego 204
- 11.12. Tworzenie raportu tekstowego dotyczącego współczynnika oceny 206
- 11.13. Wizualizacja efektu wywieranego przez zmianę wartości hiperparametrów 207
12. Wybór modelu 211
- 12.0. Wprowadzenie 211
- 12.1. Wybór najlepszych modeli przy użyciu wyczerpującego wyszukiwania 212
- 12.2. Wybór najlepszych modeli za pomocą przeszukiwania losowego 214
- 12.3. Wybór najlepszych modeli z wielu algorytmów uczenia maszynowego 216
- 12.4. Wybór najlepszych modeli na etapie przygotowywania danych 217
- 12.5. Przyspieszanie wyboru modelu za pomocą równoległości 219
- 12.6. Przyspieszanie wyboru modelu przy użyciu metod charakterystycznych dla algorytmu 220
- 12.7. Ocena wydajności po wyborze modelu 221
13. Regresja liniowa 225
- 13.0. Wprowadzenie 225
- 13.1. Wyznaczanie linii 225
- 13.2. Obsługa wpływu interakcji 227
- 13.3. Wyznaczanie zależności nieliniowej 228
- 13.4. Redukowanie wariancji za pomocą regularyzacji 230
- 13.5. Redukowanie cech za pomocą regresji metodą LASSO 232
14. Drzewa i lasy 235
- 14.0. Wprowadzenie 235
- 14.1. Trenowanie klasyfikatora drzewa decyzyjnego 235
- 14.2. Trenowanie regresora drzewa decyzyjnego 237
- 14.3. Wizualizacja modelu drzewa decyzyjnego 238
- 14.4. Trenowanie klasyfikatora losowego lasu 240
- 14.5. Testowanie regresora losowego lasu 241
- 14.6. Identyfikacja ważnych cech w losowych lasach 242
- 14.7. Wybór ważnych cech w losowym lesie 245
- 14.8. Obsługa niezrównoważonych klas 246
- 14.9. Kontrolowanie wielkości drzewa 247
- 14.10. Poprawa wydajności za pomocą wzmocnienia 248
- 14.11. Ocena losowego lasu za pomocą estymatora błędu out-of-bag 250
15. Algorytm k najbliższych sąsiadów 251
- 15.0. Wprowadzenie 251
- 15.1. Wyszukiwanie najbliższych sąsiadów obserwacji 251
- 15.2. Tworzenie klasyfikatora k najbliższych sąsiadów 253
- 15.3. Ustalanie najlepszej wielkości sąsiedztwa 255
- 15.4. Tworzenie klasyfikatora najbliższych sąsiadów opartego na promieniu 256
16. Regresja logistyczna 259
- 16.0. Wprowadzenie 259
- 16.1. Trenowanie klasyfikatora binarnego 259
- 16.2. Trenowanie klasyfikatora wieloklasowego 260
- 16.3. Redukcja wariancji poprzez regularyzację 262
- 16.4. Trenowanie klasyfikatora na bardzo dużych danych 263
- 16.5. Obsługa niezrównoważonych klas 264
17. Maszyna wektora nośnego 267
- 17.0. Wprowadzenie 267
- 17.1. Trenowanie klasyfikatora liniowego 267
- 17.2. Obsługa liniowo nierozdzielnych klas przy użyciu funkcji jądra 270
- 17.3. Określanie prognozowanego prawdopodobieństwa 273
- 17.4. Identyfikacja wektorów nośnych 275
- 17.5. Obsługa niezrównoważonych klas 276
18. Naiwny klasyfikator bayesowski 279
- 18.0. Wprowadzenie 279
- 18.1. Trenowanie klasyfikatora dla cech ciągłych 280
- 18.2. Trenowanie klasyfikatora dla cech dyskretnych lub liczebnych 282
- 18.3. Trenowanie naiwnego klasyfikatora bayesowskiego dla cech binarnych 283
- 18.4. Kalibrowanie prognozowanego prawdopodobieństwa 284
19. Klasteryzacja 287
- 19.0. Wprowadzenie 287
- 19.1. Klasteryzacja za pomocą k średnich 287
- 19.2. Przyspieszanie klasteryzacji za pomocą k średnich 290
- 19.3. Klasteryzacja za pomocą algorytmu meanshift 290
- 19.4. Klasteryzacja za pomocą algorytmu DBSCAN 292
- 19.5. Klasteryzacja za pomocą łączenia hierarchicznego 293
20. Sieci neuronowe 295
- 20.0. Wprowadzenie 295
- 20.1. Przygotowywanie danych dla sieci neuronowej 296
- 20.2. Projektowanie sieci neuronowej 297
- 20.3. Trenowanie klasyfikatora binarnego 300
- 20.4. Trenowanie klasyfikatora wieloklasowego 302
- 20.5. Trenowanie regresora 304
- 20.6. Generowanie prognoz 305
- 20.7. Wizualizacja historii trenowania 307
- 20.8. Redukcja nadmiernego dopasowania za pomocą regularyzacji wagi 310
- 20.9. Redukcja nadmiernego dopasowania za pomocą techniki wcześniejszego zakończenia procesu uczenia 311
- 20.10. Redukcja nadmiernego dopasowania za pomocą techniki porzucenia 313
- 20.11. Zapisywanie postępu modelu uczącego 315
- 20.12. K-krotny sprawdzian krzyżowy sieci neuronowej 316
- 20.13. Dostrajanie sieci neuronowej 318
- 20.14. Wizualizacja sieci neuronowej 320
- 20.15. Klasyfikacja obrazów 322
- 20.16. Poprawa wydajności przez modyfikację obrazu 325
- 20.17. Klasyfikowanie tekstu 327
21. Zapisywanie i wczytywanie wytrenowanych modeli 331
- 21.0. Wprowadzenie 331
- 21.1. Zapisywanie i wczytywanie modelu biblioteki scikit-learn 331
- 21.2. Zapisywanie i wczytywanie modelu biblioteki Keras 332
Skorowidz 335
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-5051-9 |
Rozmiar pliku: | 3,1 MB |