Praktyczna algebra liniowa dla analityków danych. Od podstawowych koncepcji do użytecznych aplikacji w Pythonie - ebook
Praktyczna algebra liniowa dla analityków danych. Od podstawowych koncepcji do użytecznych aplikacji w Pythonie - ebook
Pozornie nie dzieje się nic złego, jeśli inżynier lub analityk danych nie rozumie algebry liniowej. Może korzystać z już istniejących narzędzi i nie przejmować się szczegółami ich implementacji. Warto jednak dokładnie poznać algorytmy używane w nauce o danych i dostosować do swoich potrzeb istniejące metody obliczeniowe, tutaj więc nowoczesna algebra liniowa okazuje się nieodzowna. Jeśli chcesz ją poznać w nowoczesnej, praktycznej formie, najlepiej posłużyć się kodem i zastosowaniem algebry liniowej w analizie danych czy symulacjach numerycznych.
To książka przeznaczona dla osób, które pracują ze zbiorami danych. Jest praktycznym przewodnikiem po koncepcjach algebry liniowej, pomyślanym tak, by ułatwić ich zrozumienie i zastosowanie w użytecznych obliczeniach. Poszczególne zagadnienia przedstawiono za pomocą kodu Pythona, wraz z przykładami ich wykorzystania w nauce o danych, uczeniu maszynowym, uczeniu głębokim, symulacjach i przetwarzaniu danych biomedycznych. Dzięki podręcznikowi nauczysz się arytmetyki macierzowej, poznasz istotne rozkłady macierzy, w tym LU i QR, a także rozkład według wartości osobliwych, zapoznasz się też z takimi zagadnieniami jak model najmniejszych kwadratów i analiza głównych składowych.
Spis treści
Wstęp
1. Wprowadzenie
- Co to jest algebra liniowa i dlaczego warto ją poznać?
- O książce
- Wymagania wstępne
- Matematyka
- Postawa
- Programowanie
- Dowody matematyczne kontra kod
- Kod pokazany w książce i do pobrania z sieci
- Ćwiczenia z programowania
- Jak korzystać z tej książki (dla nauczycieli i osób uczących się samodzielnie)?
2. Wektory - część I
- Tworzenie i wizualizacja wektorów w NumPy
- Geometryczna interpretacja wektorów
- Operacje na wektorach
- Dodawanie dwóch wektorów
- Geometryczne dodawanie i odejmowanie wektorów
- Mnożenie wektorów przez skalar
- Dodawanie wektorów i skalarów
- Transpozycja
- Broadcasting w Pythonie
- Moduł wektora i wektory jednostkowe
- Iloczyn skalarny wektorów
- Iloczyn skalarny jest rozdzielny względem dodawania
- Geometryczna interpretacja iloczynu skalarnego
- Inne sposoby mnożenia wektorów
- Iloczyn Hadamarda
- Iloczyn zewnętrzny
- Iloczyn wektorowy i mieszany
- Ortogonalny rozkład wektora
- Podsumowanie
- Ćwiczenia z programowania
3. Wektory - część II
- Zbiory wektorów
- Ważona kombinacja liniowa
- Niezależność liniowa
- Matematyka związana z niezależnością liniową
- Niezależność a wektor zerowy
- Podprzestrzeń i rozpinanie
- Baza
- Definicja bazy
- Podsumowanie
- Ćwiczenia z programowania
4. Zastosowania wektorów
- Korelacja i podobieństwo cosinusowe
- Filtrowanie szeregów czasowych i wykrywanie cech
- Klasteryzacja za pomocą algorytmu k-średnich
- Ćwiczenia z programowania
- Ćwiczenia z korelacji
- Ćwiczenia z filtrowania i wykrywania cech
- Ćwiczenia z algorytmu k-średnich
5. Macierze - część I
- Tworzenie i wizualizowanie macierzy w NumPy
- Wizualizowanie, indeksowanie i slicing
- Specjalne macierze
- Matematyka macierzy: dodawanie, mnożenie przez skalar i iloczyn Hadamarda
- Dodawanie i odejmowanie
- "Przesuwanie" macierzy
- Mnożenie przez skalar i iloczyn Hadamarda
- Standardowe mnożenie macierzy
- Kiedy można pomnożyć przez siebie dwie macierze?
- Mnożenie macierzy
- Mnożenie macierz - wektor
- Operacje na macierzach: transpozycja
- Iloczyn skalarny i iloczyn zewnętrzny - notacja
- Operacje na macierzach: LIVE EVIL (kolejność operacji)
- Macierze symetryczne
- Tworzenie macierzy symetrycznych z macierzy niesymetrycznych
- Podsumowanie
- Ćwiczenia z programowania
6. Macierze - część II
- Normy macierzowe
- Ślad macierzy i norma Frobeniusa
- Przestrzenie macierzowe (kolumnowa, wierszowa, jądro)
- Przestrzeń kolumnowa
- Przestrzeń wierszowa
- Jądro
- Rząd
- Rzędy specjalnych macierzy
- Rząd a dodawanie i mnożenie macierzy
- Rząd a przesuwanie macierzy
- Teoria a praktyka
- Zastosowania rzędu
- Czy wektor znajduje się w przestrzeni kolumnowej macierzy?
- Niezależność liniowa zbioru wektorów
- Wyznacznik
- Obliczanie wyznacznika
- Wyznacznik a zależność liniowa
- Wielomian charakterystyczny
- Podsumowanie
- Ćwiczenia z programowania
7. Zastosowania macierzy
- Wielowymiarowe macierze kowariancji danych
- Transformacje geometryczne za pomocą mnożenia macierz - wektor
- Wykrywanie cech na obrazie
- Podsumowanie
- Ćwiczenia z programowania
- Ćwiczenia z macierzy kowariancji i korelacji
- Ćwiczenia z transformacji geometrycznych
- Ćwiczenia z wykrywania cech w obrazach
8. Odwracanie macierzy
- Odwrotność macierzy
- Rodzaje odwrotności i warunki odwracalności
- Obliczanie odwrotności
- Odwrotność macierzy 2 × 2
- Odwrotność macierzy diagonalnej
- Odwracanie dowolnej macierzy kwadratowej o pełnym rzędzie
- Odwrotności jednostronne
- Unikalność odwrotności
- Pseudoodwrotność Moore'a-Penrose'a
- Stabilność numeryczna obliczania odwrotności
- Geometryczna interpretacja odwrotności
- Podsumowanie
- Ćwiczenia z programowania
9. Macierze ortogonalne i rozkład QR
- Macierze ortogonalne
- Ortogonalizacja Grama-Schmidta
- Rozkład QR
- Wymiary Q i R
- Rozkład QR i obliczanie odwrotności
- Podsumowanie
- Ćwiczenia z programowania
10. Przekształcenie do macierzy schodkowej i rozkład LU
- Układy równań
- Przekształcanie równań w macierze
- Praca z równaniami macierzowymi
- Sprowadzanie macierzy do postaci schodkowej
- Eliminacja Gaussa
- Eliminacja Gaussa-Jordana
- Odwracanie macierzy za pomocą eliminacji Gaussa-Jordana
- Rozkład LU
- Zamiana wierszy za pomocą macierzy permutacji
- Podsumowanie
- Ćwiczenia z programowania
11. Ogólne modele liniowe i metoda najmniejszych kwadratów
- Ogólne modele liniowe
- Terminologia
- Tworzenie ogólnego modelu liniowego
- Dopasowywanie ogólnego modelu liniowego
- Czy to rozwiązanie jest dokładne?
- Metoda najmniejszych kwadratów - perspektywa geometryczna
- Dlaczego metoda najmniejszych kwadratów działa?
- Prosty przykład ogólnego modelu liniowego
- Rozwiązywanie problemu najmniejszych kwadratów za pomocą rozkładu QR
- Podsumowanie
- Ćwiczenia z programowania
12. Zastosowania metody najmniejszych kwadratów
- Przewidywanie liczby wypożyczonych rowerów na podstawie pogody
- Tabela regresji z pakietu statsmodels
- Współliniowość
- Regularyzacja
- Regresja wielomianowa
- Znajdowanie parametrów modelu za pomocą przeszukiwania siatki
- Podsumowanie
- Ćwiczenia z programowania
- Zbiór danych z informacjami o wypożyczaniu rowerów
- Ćwiczenie ze współliniowości
- Ćwiczenie z regularyzacji
- Ćwiczenie z regresji wielomianowej
- Ćwiczenia z przeszukiwania siatki
13. Rozkład według wartości własnych
- Interpretacje wartości i wektorów własnych
- Interpretacja geometryczna
- Statystyka (analiza głównych składowych)
- Redukcja szumów
- Redukcja wymiarowości (kompresja danych)
- Znajdowanie wartości własnych
- Znajdowanie wektorów własnych
- Znak i skala nieokreśloności wektorów własnych
- Diagonalizacja macierzy kwadratowej
- Wyjątkowość macierzy symetrycznych
- Ortogonalne wektory własne
- Rzeczywiste wartości własne
- Rozkład według wartości własnych macierzy osobliwych
- Forma kwadratowa, określoność i wartości własne
- Forma kwadratowa macierzy
- Określoność
- ATA jest dodatnio (pół)określona
- Uogólniony rozkład według wartości własnych
- Podsumowanie
- Ćwiczenia z programowania
14. Rozkład według wartości osobliwych
- Spojrzenie na rozkład według wartości osobliwych z szerszej perspektywy
- Wartości osobliwe i rzędy macierzy
- Rozkład według wartości osobliwych w Pythonie
- Rozkład według wartości osobliwych i "warstwy" macierzy rzędu 1.
- Rozkład według wartości osobliwych z rozkładu według wartości własnych
- Rozkład według wartości osobliwych ATA
- Współczynnik uwarunkowania
- Rozkład według wartości osobliwych i pseudoodwrotność Moore'a-Penrose'a
- Podsumowanie
- Ćwiczenia z programowania
15. Zastosowania rozkładu według wartości własnych i rozkładu według wartości osobliwych
- Analiza głównych składowych za pomocą rozkładów według wartości własnych i osobliwych
- Matematyka analizy głównych składowych
- Kroki algorytmu analizy głównych składowych
- Analiza głównych składowych za pomocą rozkładu według wartości osobliwych
- Liniowa analiza dyskryminacyjna
- Aproksymacja macierzami niskiego rzędu za pomocą rozkładu według wartości osobliwych
- Wykorzystanie rozkładu według wartości osobliwych do usuwania szumów
- Podsumowanie
- Ćwiczenia z programowania
- Analiza głównych składowych
- Liniowa analiza dyskryminacyjna
- Aproksymacja macierzami niskiego rzędu za pomocą rozkładu według wartości osobliwych
- Wykorzystanie rozkładu według wartości osobliwych do usuwania szumów z obrazu
16. Wprowadzenie do programowania w Pythonie
- Dlaczego Python i jakie są alternatywy?
- IDE (zintegrowane środowiska programistyczne)
- Lokalny Python i Python dostępny w sieci
- Praca z plikami kodu w Google Colab
- Zmienne
- Typy danych
- Indeksowanie
- Funkcje
- Metody a funkcje
- Tworzenie własnych funkcji
- Biblioteki
- NumPy
- Indeksowanie i slicing w NumPy
- Wizualizacje
- Zamiana równań na kod
- Formatowanie wyjścia i f-stringi
- Przepływ sterowania
- Operatory porównania
- Klauzule if
- Pętle for
- Zagnieżdżone instrukcje kontrolne
- Pomiar czasu obliczeń
- Uzyskiwanie pomocy i więcej informacji
- Co robić, gdy coś idzie nie tak
- Podsumowanie
Skorowidz
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-289-0262-6 |
Rozmiar pliku: | 23 MB |