Opis produktu: Matematyka dyskretna dla praktyków. Algorytmy i uczenie maszynowe w Pythonie - Ryan T. White, Archana Tikayat Ray
Książka jest kompleksowym wprowadzeniem do matematyki dyskretnej, przydatnym dla każdego, kto chce pogłębić i ugruntować swoje umiejętności informatyczne. W zrozumiały sposób przedstawiono tu metody matematyki dyskretnej i ich zastosowanie w algorytmach i analizie danych, włączając w to techniki uczenia maszynowego. Podręcznik prezentuje także zasady oceny złożoności obliczeniowej algorytmów i używania wyników tej oceny do zarządzania pracą procesora. Omówiono także sposoby przechowywania struktur grafowych, ich przeszukiwania i znajdywania ścieżek między wierzchołkami. Pokazano też, jak wykorzystać przedstawione informacje podczas posługiwania się bibliotekami Pythona, takimi jak scikit-learn i NumPy.
Informacje o autorze
Dr Ryan T. White jest naukowcem specjalizującym się w uczeniu maszynowym i teorii prawdopodobieństwa. Wykłada matematykę w Florida Institute of Technology. Zajmuje się analizą stochastyczną i jej algorytmami, kieruje też projektami z zakresu uczenia maszynowego.
Archana Tikayat Ray absolwentka Georgia Institute of Technology w Atlancie. Jej prace badawcze koncentrują się na uczeniu maszynowym i przetwarzaniu języka naturalnego (NLP). Interesuje się problematyką Data Science, Machine Learning i Natural Language Processing oraz ich zastosowaniami.
Informacje o książce
- Tytuł oryginalny: Practical Discrete Mathematics: Discover math principles that fuel algorithms for computer science and machine learning with Python
- Autor: Archana Tikayat Ray, Ryan T. White
- Tłumaczenie: Filip Kamiński
- ISBN: 978-83-283-8396-8
- Rok wydania: 2022
- Format: 168 x 237 mm
- Ilość stron: 272
- Oprawa: miękka
- Wydawnictwo: Helion S.A.
Spis treści
O autorach
O recenzencie
Wprowadzenie
I. Podstawowe pojęcia z obszaru matematyki dyskretnej
1. Podstawowe pojęcia, notacja, teoria mnogości, relacje i funkcje
- Czym jest matematyka dyskretna?
- Podstawowa teoria mnogości
- Definicja zbiory i ich notacja
- Definicja elementy zbiorów
- Definicja zbiór pusty
- Przykład kilka przykładowych zbiorów
- Definicja podzbiory i nadzbiory
- Definicja notacja konstrukcji zbiorów
- Przykład użycie notacji konstrukcji zbiorów
- Definicja podstawowe operacje na zbiorach
- Definicja zbiory rozłączne
- Przykład liczby parzyste i nieparzyste
- Twierdzenie prawa De Morgana
- Dowód
- Przykład prawo De Morgana
- Definicja moc zbioru
- Przykład moce zbiorów
- Funkcje i relacje
- Definicja relacje, dziedziny i przeciwdziedziny
- Definicja funkcje
- Przykłady relacje kontra funkcje
- Przykład funkcje w algebrze elementarnej
- Przykład funkcje w Pythonie i funkcje matematyczne
- Podsumowanie
2. Logika formalna i dowody matematyczne
- Logika formalna i dowodzenie za pomocą tablic prawdy
- Podstawy terminologii stosowanej w logice formalnej
- Przykład niepoprawny argument
- Przykład wszystkie pingwiny mieszkają w RPA!
- Podstawowe idee logiki formalnej
- Tablice prawdy
- Przykład implikacja odwrotna
- Przykład prawo przechodniości implikacji
- Przykład prawa De Morgana
- Przykład implikacja przeciwstawna
- Dowody wprost
- Przykład iloczyn parzystych i nieparzystych liczb całkowitych
- Przykład pierwiastki liczb parzystych
- Skrócenie dowodu za pomocą implikacji przeciwstawnej
- Dowody nie wprost
- Przykład czy istnieje najmniejsza dodatnia liczba wymierna?
- Przykład dowód, że 2 jest liczbą niewymierną
- Przykład ile jest liczb pierwszych?
- Dowodzenie przez indukcję matematyczną
- Przykład suma 1+2+...+n
- Przykład kształty wypełniające przestrzeń
- Przykład wzrost wykładniczy a wzrost w tempie silni
- Podsumowanie
3. Obliczenia w systemach o podstawie n
- Zrozumieć liczby o podstawie n
- Przykład liczby dziesiętne
- Definicja liczby o podstawie n
- Konwersje między różnymi podstawami
- Konwersja liczb o podstawie n na liczby dziesiętne
- Przykład wartość dziesiętna liczby o podstawie 6
- Konwersja z zapisu dziesiętnego na system o podstawie n
- Przykład konwersja liczby dziesiętnej na liczbę binarną (podstawa 2)
- Przykład konwersje z systemu dziesiętnego na binarny i szesnastkowy w Pythonie
- Liczby binarne i ich zastosowania
- Algebra Boolea
- Przykład użytkownicy Netfliksa
- Liczby szesnastkowe i ich zastosowanie
- Przykład położenie obiektów w pamięci komputera
- Przykład wyświetlanie komunikatów o błędach
- Przykład adresy MAC
- Przykład kolory w sieci
- Podsumowanie
4. Kombinatoryka z użyciem SciPy
- Podstawy zliczania
- Definicja iloczyn kartezjański
- Twierdzenie moc iloczynów kartezjańskich zbiorów skończonych
- Definicja iloczyn kartezjański n zbiorów
- Twierdzenie reguła mnożenia
- Przykład bajty
- Przykład kolory w komputerze
- Permutacje i kombinacje obiektów
- Definicja permutacja
- Przykład permutacje prostego zbioru
- Twierdzenie permutacje zbioru
- Przykład playlista
- Wzrost w tempie silni
- Twierdzenie wariacja bez powtórzeń
- Definicja kombinacja
- Przykład kombinacje kontra permutacje prostego zbioru
- Twierdzenie kombinacje ze zbioru
- Współczynniki dwumianowe
- Przykład tworzenie zespołu
- Przykład kombinacje kul
- Alokacja pamięci
- Przykład wstępne przydzielanie pamięci
- Skuteczność algorytmów siłowych
- Przykład szyfr Cezara
- Przykład problem komiwojażera
- Podsumowanie
5. Elementy prawdopodobieństwa dyskretnego
- Definicja doświadczenie losowe
- Definicje zdarzenia elementarne, zdarzenia losowe, przestrzenie prób
- Przykład rzut monetą
- Przykład rzut wieloma monetami
- Definicja miara probabilistyczna
- Twierdzenie podstawowe własności prawdopodobieństwa
- Przykład sport
- Twierdzenie monotoniczność
- Twierdzenie zasada włączeń i wyłączeń
- Definicja rozkład jednostajny
- Twierdzenie obliczanie prawdopodobieństwa
- Przykład rzut wieloma monetami
- Definicja zdarzenia niezależne
- Przykład rzucanie wieloma monetami
- Prawdopodobieństwo warunkowe i twierdzenie Bayesa
- Definicja prawdopodobieństwo warunkowe
- Przykład temperatury i opady
- Twierdzenie reguły mnożenia
- Twierdzenie twierdzenie o prawdopodobieństwie całkowitym
- Twierdzenie twierdzenie Bayesa
- Bayesowski filtr antyspamowy
Zmienne losowe, średnie i wariancja - Definicja zmienna losowa
- Przykład błędy przesyłania danych
- Przykład empiryczna zmienna losowa
- Definicja wartość oczekiwana
- Przykład empiryczna zmienna losowa
- Definicja wariancja i odchylenie standardowe
- Twierdzenie obliczanie wariancji w praktyce
- Przykład empiryczna zmienna losowa
- Google PageRank (część I)
- Podsumowanie
II. Zastosowania matematyki dyskretnej w analizie danych i informatyce
6. Algorytmy algebry liniowej
- Zrozumieć układy równań liniowych
- Definicja równanie liniowe dwóch zmiennych
- Definicja kartezjański układ współrzędnych
- Przykład równanie liniowe
- Definicja układ dwóch równań liniowych dwóch zmiennych
- Przykład układ oznaczony
- Przykład układ sprzeczny
- Przykład układ nieoznaczony
- Definicja układy równań liniowych i ich rozwiązania
- Definicja układy oznaczone, sprzeczne i nieoznaczone
- Macierze i macierzowe reprezentacje układów równań liniowych
- Definicja macierze i wektory
- Definicja dodawanie i odejmowanie macierzy
- Definicja mnożenie przez skalar
- Definicja transpozycja macierzy
- Definicja iloczyn skalarny wektorów
- Definicja mnożenie macierzy
- Przykład ręczne mnożenie macierzy i mnożenie macierzy w NumPy
- Rozwiązywanie małych układów równań liniowych za pomocą metody eliminacji Gaussa
- Definicja współczynnik wiodący
- Definicja zredukowana macierz schodkowa
- Przykład układ oznaczony z macierzą schodkową
- Przykład układ sprzeczny z macierzą schodkową
- Przykład układ nieoznaczony z macierzą schodkową
- Algorytm eliminacja Gaussa
- Przykład układ 3 równań liniowych z 3 niewiadomymi
- Rozwiązywanie dużych układów równań liniowych za pomocą NumPy
- Przykład układ 3 równań z 3 niewiadomymi (NumPy)
- Przykład sprzeczne i nieoznaczone układy równań w NumPy
- Przykład układ 10 równań z 10 niewiadomymi (NumPy)
- Podsumowanie
7. Złożoność algorytmów
- Złożoność obliczeniowa algorytmów
- Notacja dużego O
- Kiedy stałe mają znaczenie?
- Złożoność algorytmów zawierających podstawowe instrukcje sterujące
- Przepływ sekwencyjny
- Przepływ warunkowy
- Pętla
- Złożoność popularnych algorytmów wyszukiwania
- Algorytm wyszukiwania liniowego
- Algorytm wyszukiwania binarnego
- Popularne klasy złożoności obliczeniowej
- Podsumowanie
- Bibliografia
8. Przechowywanie i wyodrębnianie cech z grafów, drzew i sieci
- Zrozumieć grafy, drzewa i sieci
- Definicja graf
- Definicja stopień wierzchołka
- Definicja ścieżki
- Definicja cykle
- Definicja drzewa lub grafy acykliczne
- Definicja sieci
- Definicja grafy skierowane
- Definicja sieci skierowane
- Definicja wierzchołki sąsiednie
- Definicja grafy i składowe spójne
- Zastosowania grafów, drzew i sieci
- Przechowywanie grafów i sieci
- Definicja lista sąsiedztwa
- Definicja macierz sąsiedztwa
- Definicja macierz sąsiedztwa dla grafu skierowanego
- Wydajne przechowywanie danych sąsiedztwa
- Definicja macierz wag sieci
- Definicja macierz wag sieci skierowanej
- Wyodrębnianie cech z grafów
- Stopnie wierzchołków w grafie
- Liczba ścieżek o określonej długości między wierzchołkami
- Twierdzenie potęgi macierzy sąsiedztwa
- Potęgi macierzy w Pythonie
- Twierdzenie najkrótsza (pod względem liczby krawędzi) ścieżka pomiędzy vi i vj
- Podsumowanie
9. Przeszukiwanie struktur danych i znajdowanie najkrótszych ścieżek
- Przeszukiwanie struktur grafowych i drzew
- Algorytm przeszukiwania w głąb (DFS)
- Implementacja algorytmu przeszukiwania w głąb w Pythonie
- Problem najkrótszej ścieżki i jego warianty
- Najkrótsze ścieżki w sieciach
- Inne zastosowania najkrótszych ścieżek
- Definicja problemu najkrótszej ścieżki
- Sprawdzenie, czy istnieje rozwiązanie
- Znajdowanie najkrótszych ścieżek metodą siłową
- Algorytm Dijkstry znajdowania najkrótszych ścieżek
- Algorytm Dijkstry
- Algorytm Dijkstry zastosowany do małego problemu
- Implementacja algorytmu Dijkstry w Pythonie
- Przykład najkrótsze ścieżki
- Przykład sieć bez połączenia
- Podsumowanie
III. Praktyczne zastosowania matematyki dyskretnej
10. Analiza regresji za pomocą NumPy i scikit-learn
- Zbiór danych
- Linie najlepszego dopasowania i metoda najmniejszych kwadratów
- Zmienne
- Zależność liniowa
- Regresja
- Linia najlepszego dopasowania
- Metoda najmniejszych kwadratów i suma kwadratów błędów
- Dopasowywanie prostej metodą najmniejszych kwadratów w NumPy
- Dopasowywanie krzywych metodą najmniejszych kwadratów z użyciem NumPy i SciPy
- Dopasowanie płaszczyzn metodą najmniejszych kwadratów z użyciem NumPy i SciPy
- Podsumowanie
11. Wyszukiwanie w sieci za pomocą algorytmu PageRank
- Rozwój wyszukiwarek na przestrzeni lat
- Google PageRank (część II)
- Implementacja algorytmu PageRank w Pythonie
- Zastosowanie algorytmu na danych rzeczywistych
- Podsumowanie
12. Analiza głównych składowych za pomocą scikit-learn
- Wartości i wektory własne, bazy ortogonalne
- Redukcja wymiarowości za pomocą analizy głównych składowych
- Implementacja metody PCA z scikit-learn
- Zastosowanie metody PCA na rzeczywistych danych
- Podsumowanie
Przydatne linki |