ksiazki24h.pl
wprowadź własne kryteria wyszukiwania książek: (jak szukać?)
Twój koszyk:   1 egz. / 72.45 68,83   zamówienie wysyłkowe >>>
Strona główna > opis książki

40 ALGORYTMÓW KTÓRE POWINIEN ZNAĆ KAŻDY PROGRAMISTA


AHMAD I.

wydawnictwo: HELION , rok wydania 2021, wydanie I

cena netto: 72.45 Twoja cena  68,83 zł + 5% vat - dodaj do koszyka

40 algorytmów, które powinien znać każdy programista

Nauka implementacji algorytmów w Pythonie


Wiedza o algorytmach jest niezbędna każdemu, kto rozwiązuje problemy programistyczne. Algorytmy są również ważne w teorii i praktyce obliczeń. Każdy programista powinien znać możliwie szeroki ich zakres. Powinien też umieć z nich korzystać przy rozwiązywaniu rzeczywistych problemów, w tym przy projektowaniu algorytmów, ich modyfikacji i implementacji. Niezależnie od tego, czy zajmujesz się sztuczną inteligencją, zabezpieczaniem systemów informatycznych lub inżynierią danych, musisz dobrze zrozumieć, czym właściwie są i jak działają algorytmy.

Ta książka jest praktycznym wprowadzeniem do algorytmów i ich zastosowania.

Znalazły się w niej podstawowe informacje i pojęcia dotyczące algorytmów, ich działania, a także ograniczeń, jakim podlegają. Opisano też techniki ich projektowania z uwzględnieniem wymagań dotyczących struktur danych. Zaprezentowano klasyczne algorytmy sortowania i wyszukiwania, algorytmy grafowe, jak również wiele zagadnień związanych ze sztuczną inteligencją: algorytmy uczenia maszynowego, sieci neuronowych i przetwarzania języka naturalnego. Ważną częścią publikacji są rozdziały poświęcone przetwarzaniu danych i kryptografii oraz algorytmom powiązanym z tymi zagadnieniami. Wartościowym podsumowaniem prezentowanych treści jest omówienie technik pracy z problemami NP-trudnymi.

W książce między innymi:

  • struktury danych i algorytmy w bibliotekach Pythona
  • algorytm grafowy służący do wykrywania oszustw w procesie analizy sieciowej
  • przewidywanie pogody przy użyciu algorytmów uczenia nadzorowanego
  • rozpoznawanie obrazu za pomocą syjamskich sieci neuronowych
  • tworzenie systemu rekomendacji filmów
  • szyfrowanie symetryczne i asymetryczne podczas wdrażania modelu uczenia maszynowego

O autorze 11
O recenzencie 13
Przedmowa 15

WSTĘP I PODSTAWOWE ALGORYTMY 21

Rozdział 1. Wprowadzenie do algorytmów 23

Co to jest algorytm? 24
Fazy algorytmu 24
Określenie logiki algorytmu 26
Zrozumienie pseudokodu 26
Korzystanie z fragmentów kodu (snippetów) 28
Stworzenie planu wykonania 28
Wprowadzenie do pakietów w Pythonie 29
Pakiety w Pythonie 30
Programowanie w Pythonie z Jupyter Notebook 31
Techniki projektowania algorytmów 31
Wymiar danych 33
Wymiar obliczeniowy 33
Analiza efektywności 35
Analiza pamięciowej złożoności obliczeniowej 35
Czasowa złożoność obliczeniowa 36
Szacowanie efektywności 37
Wybór algorytmu 37
Notacja dużego O 38
Walidacja algorytmu 41
Algorytmy dokładne, aproksymacyjne i randomizowane 41
Możliwość wyjaśnienia 43
Podsumowanie 43

Rozdział 2. Struktury danych w algorytmach 45

Struktury danych w Pythonie 46
Lista 46
Krotka 50
Słownik 51
Zbiór 52
Ramka danych 54
Macierz 56
Abstrakcyjne typy danych 57
Wektor 57
Stos 58
Kolejka 60
Kiedy używać stosów i kolejek? 62
Drzewo 62
Podsumowanie 65

Rozdział 3. Algorytmy sortowania wyszukiwania 67

Wprowadzenie do algorytmów sortowania 68
Zamiana wartości zmiennych w Pythonie 68
Sortowanie bąbelkowe 68
Sortowanie przez wstawianie 71
Sortowanie przez scalanie 72
Sortowanie Shella 74
Sortowanie przez wymianę 76
Wprowadzenie do algorytmów wyszukiwania 78
Wyszukiwanie liniowe 78
Wyszukiwanie binarne 79
Wyszukiwanie interpolacyjne 79
Praktyczne przykłady 80
Podsumowanie 83

Rozdział 4. Projektowanie algorytmów 85

Wprowadzenie do projektowania algorytmów 86
Kwestia 1: Czy algorytm zwraca rezultat, jakiego oczekujemy? 87
Kwestia 2: Czy robi to w optymalny sposób? 87
Kwestia 3: Jak efektywny będzie ten algorytm zastosowany do większych zbiorów danych? 90
Strategie algorytmiczne 91
Strategia "dziel i rządź" 91
Strategia programowania dynamicznego 93
Strategia algorytmu zachłannego 93
Praktyczny przykład - rozwiązanie problemu komiwojażera 94
Metoda siłowa 95
Zastosowanie algorytmu zachłannego 98
Algorytm PageRank 99
Definicja problemu 100
Implementacja algorytmu PageRank 100
Programowanie liniowe 102
Definicja problemu w programowaniu liniowym 102
Praktyczny przykład - planowanie przepustowości za pomocą programowania liniowego 103
Podsumowanie 105

Rozdział 5. Algorytmy grafowe 107

Reprezentacja grafów 108
Rodzaje grafów 109
Specjalne rodzaje krawędzi 111
Sieci egocentryczne 112
Analiza sieciowa 112
Wprowadzenie do teorii analizy sieciowej 113
Najkrótsza ścieżka 113
Określanie sąsiedztwa 114
Wskaźnik centralności 115
Obliczanie wskaźników centralności w Pythonie 117
Trawersowanie grafu 119
Wyszukiwanie wszerz 119
Wyszukiwanie w głąb 121
Studium przypadku - analiza oszustw 125
Prosta analiza pod kątem oszustwa 127
Podejście strażnicy 128
Podsumowanie 130

ALGORYTMY UCZENIA MASZYNOWEGO 131

Rozdział 6. Algorytmy nienadzorowanego uczenia maszynowego 133

Wprowadzenie do nienadzorowanego uczenia maszynowego 134
Uczenie nienadzorowane w cyklu życia eksploracji danych 134
Trendy badawcze w zakresie uczenia nienadzorowanego 137
Praktyczne przykłady 137
Algorytmy klasteryzacji 138
Wyliczanie podobieństw 139
Grupowanie hierarchiczne 145
Ocena klastrów 147
Zastosowania klasteryzacji 148
Redukcja wymiarów 148
Analiza głównych składowych 149
Ograniczenia analizy głównych składowych 151
Reguły asocjacyjne 151
Przykłady użycia 151
Analiza koszykowa 152
Reguły asocjacyjne 153
Wskaźniki reguł 154
Algorytmy analizy asocjacyjnej 156
Praktyczny przykład - grupowanie podobnych tweetów 160
Modelowanie tematów 161
Klasteryzacja 162
Algorytmy wykrywania odchyleń 162
Wykorzystanie klastrów 162
Wykorzystanie wykrywania odchyleń opartego na gęstości 162
Wykorzystanie maszyny wektorów nośnych 163
Podsumowanie 163

Rozdział 7. Tradycyjne algorytmy uczenia nadzorowanego 165

Nadzorowane uczenie maszynowe 166
Żargon nadzorowanego uczenia maszynowego 166
Warunki konieczne 168
Rozróżnienie między klasyfikatorami a regresorami 169
Algorytmy klasyfikujące 169
Wyzwanie dla klasyfikatorów 170
Inżynieria cech w przetwarzaniu potokowym 171
Ocena klasyfikatorów 173
Określenie faz klasyfikacji 177
Algorytm drzewa decyzyjnego 178
Metody zespolone 181
Regresja logistyczna 185
Maszyna wektorów nośnych 187
Naiwny klasyfikator bayesowski 189
Zwycięzcą wśród algorytmów klasyfikacji jest... 192
Algorytmy regresji 193
Wyzwanie dla regresji 193
Regresja liniowa 195
Algorytm drzewa regresji 199
Regresyjny algorytm wzmocnienia gradientowego 199
Zwycięzcą wśród algorytmów regresji jest... 200
Praktyczny przykład, jak przewidywać pogodę 201
Podsumowanie 203

Rozdział 8. Algorytmy sieci neuronowych 205

Wprowadzenie do sieci neuronowych 206
Ewolucja sieci neuronowych 207
Trenowanie sieci neuronowej 209
Anatomia sieci neuronowej 209
Definicja gradientu prostego 210
Funkcje aktywacji 212
Narzędzia i modele 217
Keras 217
TensorFlow 220
Rodzaje sieci neuronowych 222
Uczenie transferowe 224
Studium przypadku - użycie uczenia głębokiego do wykrywania oszustw 225
Metodologia 225
Podsumowanie 228

Rozdział 9. Algorytmy przetwarzania języka naturalnego 231

Wprowadzenie do przetwarzania języka naturalnego 232
Terminologia przetwarzania języka naturalnego 232
NLTK 234
Model bag-of-words 234
Wektorowe przedstawienie słów 237
Otoczenie słowa 237
Właściwości wektorowego przedstawienia słów 237
Użycie rekurencyjnych sieci neuronowych do przetwarzania języka naturalnego 238
Wykorzystanie przetwarzania języka naturalnego do analizy sentymentu 239
Studium przypadku - analiza sentymentu w recenzjach filmowych 241
Podsumowanie 243

Rozdział 10. Silniki poleceń 245

Wprowadzenie do silników poleceń 245
Rodzaje silników poleceń 246
Silniki poleceń oparte na treści 246
Silniki poleceń oparte na filtrowaniu kooperacyjnym 248
Hybrydowe silniki poleceń 250
Ograniczenia systemów poleceń 252
Zimny start 252
Wymagania dotyczące metadanych 252
Problem rzadkości danych 253
Tendencyjność ze względu na wpływ społeczny 253
Ograniczone dane 253
Obszary praktycznych zastosowań 253
Przykład praktyczny - stworzenie silnika poleceń 254
Podsumowanie 256

ZAGADNIENIA ZAAWANSOWANE 257

Rozdział 11. Algorytmy danych 259

Wprowadzenie do algorytmów danych 259
Klasyfikacja danych 260
Algorytmy przechowywania danych 261
Strategie przechowywania danych 261
Algorytmy strumieniowania danych 263
Zastosowania strumieniowania 264
Algorytmy kompresji danych 264
Algorytmy kompresji bezstratnej 264
Przykład praktyczny - analiza sentymentu na Twitterze 266
Podsumowanie 269

Rozdział 12. Kryptografia 271

Wprowadzenie do kryptografii 271
Waga najsłabszego ogniwa 272
Terminologia 272
Wymagania bezpieczeństwa 273
Podstawy projektowania szyfrów 275
Rodzaje technik kryptograficznych 278
Kryptograficzna funkcja skrótu 278
Szyfrowanie symetryczne 281
Szyfrowanie asymetryczne 283
Przykład - kwestie bezpieczeństwa we wdrażaniu modelu uczenia maszynowego 286
Atak man-in-the-middle 287
Obrona przed techniką masquerading 289
Szyfrowanie danych i modelu 289
Podsumowanie 291

Rozdział 13. Algorytmy przetwarzania danych w dużej skali 293

Wprowadzenie do algorytmów przetwarzania danych w dużej skali 294
Definicja dobrze zaprojektowanego algorytmu przetwarzania danych w dużej skali 294
Terminologia 294
Projektowanie algorytmów równoległych 295
Prawo Amdahla 295
Szczegółowość podprocesów 298
Równoważenie obciążenia 298
Przetwarzanie lokalne 299
Procesy współbieżne w Pythonie 299
Tworzenie strategii przetwarzania na puli zasobów 299
Architektura CUDA 300
Obliczenia w klastrze 303
Strategia hybrydowa 305
Podsumowanie 305

Rozdział 14. Uwagi praktyczne 307

Wprowadzenie do uwag praktycznych 308
Smutna historia bota sztucznej inteligencji na Twitterze 308
Transparentność algorytmu 309
Algorytmy uczenia maszynowego i transparentność 309
Etyka i algorytmy 313
Problemy z algorytmami uczącymi się 313
Znaczenie kwestii etycznych 313
Ograniczanie stronniczości modeli 315
Problemy NP-trudne 316
Uproszczenie problemu 316
Dopasowanie dobrze znanego rozwiązania podobnego problemu 316
Metoda probabilistyczna 317
Kiedy używać algorytmów 317
Praktyczny przykład - teoria czarnego łabędzia 318
Podsumowanie 320

320 stron, Format: 17.0x24.0cm, oprawa miękka

Po otrzymaniu zamówienia poinformujemy,
czy wybrany tytuł polskojęzyczny lub anglojęzyczny jest aktualnie na półce księgarni.

 
Wszelkie prawa zastrzeżone PROPRESS sp. z o.o. 2012-2022