Facebook - konwersja
  • promocja

40 algorytmów, które powinien znać każdy programista. Nauka implementacji algorytmów w Pythonie - ebook

Wydawnictwo:
Data wydania:
19 lipca 2021
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

40 algorytmów, które powinien znać każdy programista. Nauka implementacji algorytmów w Pythonie - ebook

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

Oto algorytm: poznaj, zaimplementuj, zastosuj!

Spis treści

 

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
Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-283-7778-3
Rozmiar pliku: 17 MB

BESTSELLERY

Kategorie: