Zdjęcie: Benjamin O. Tayo.
Algebra liniowa to dziedzina matematyki, która jest niezwykle przydatna w nauce o danych i uczeniu maszynowym. Algebra liniowa jest najważniejszą umiejętnością matematyczną w uczeniu maszynowym. Większość modeli uczenia maszynowego można wyrazić w postaci macierzy. Sam zestaw danych jest często reprezentowany jako macierz. Algebra liniowa jest używana we wstępnym przetwarzaniu danych, transformacji danych i ocenie modelu. Oto tematy, które musisz znać:
- Wektory
- Matryce
- Transpozycja macierzy
- Odwrotność macierzy
- Wyznacznik macierzy
- Ślad macierzy
- Produkt kropkowy
- Wartości własne
- Wektory własne
W tym artykule ilustrujemy zastosowanie algebry liniowej w nauce o danych i uczeniu maszynowym za pomocą zestawu danych akcji technologicznych, który można znaleźć tutaj.
1. Algebra liniowa do wstępnego przetwarzania danych
Zaczynamy od zilustrowania, w jaki sposób algebra liniowa jest wykorzystywana do wstępnego przetwarzania danych.
1.1 Importuj niezbędne biblioteki do algebry liniowej
import numpy as np import pandy as pd import pylab import matplotlib.pyplot as plt import seaborn as sns
1.2 Odczytaj zestaw danych i wyświetl funkcje
data = pd.read_csv ("tech-stocks-04-2021.csv") data.head ()
Stół 1. Ceny akcji dla wybranych notowań giełdowych z pierwszych 16 dni kwietnia 2021 r.
print (data.shape) output = (11,5)
Połączenia dane.kształt funkcja pozwala nam poznać rozmiar naszego zbioru danych. W tym przypadku zbiór danych ma 5 funkcji (data, AAPL, TSLA, GOOGL i AMZN), a każda funkcja ma 11 obserwacji. Data odnosi się do dni handlowych w kwietniu 2021 r. (do 16 kwietnia). AAPL, TSLA, GOOGL i AMZN to odpowiednio końcowe ceny akcji Apple, Tesla, Google i Amazon.
1.3 Wizualizacja danych
Aby wykonać wizualizację danych, musielibyśmy zdefiniować macierze kolumnowe aby wizualizować cechy:
x = data ['date'] y = data ['TSLA'] plt.plot (x, y) plt.xticks (np.array ([0,4,9]), ['1 kwietnia', '8 kwietnia ',' Apr 15 ']) plt.title (' Cena akcji Tesli (w dolarach) na kwiecień 2021 ', rozmiar = 14) plt.show ()
Postać 1. Kurs akcji Tesli przez pierwsze 16 dni w kwietniu 2021 r.
2. Macierz kowariancji
Połączenia macierz kowariancji to jedna z najważniejszych macierzy w data science i machine learning. Dostarcza informacji o wspólnym ruchu (korelacji) między cechami. Załóżmy, że mamy macierz funkcji z 4 cechy i funkcje n obserwacje, jak pokazano w Tabela 2:
Tabela 2. Funkcje macierz z 4 zmiennymi i n obserwacjami.
Aby zwizualizować korelacje między cechami, możemy wygenerować wykres punktowy:
cols = data.columns [1: 5] print (cols) output = Index (['AAPL', 'TSLA', 'GOOGL', 'AMZN'], dtype = 'object') sns.pairplot (data [cols] , wysokość=3.0)
Rysunek 2. Wykres punktowy dla wybranych akcji technologicznych.
Aby określić ilościowo stopień korelacji między cechami (współliniowość), możemy obliczyć macierz kowariancji za pomocą następującego równania:
gdzie i są odpowiednio średnią i odchyleniem standardowym cechy. To równanie wskazuje, że gdy cechy są znormalizowane, macierz kowariancji to po prostu produkt kropkowy między funkcjami.
W postaci macierzy macierz kowariancji można wyrazić jako rzeczywistą i symetryczną macierz 4 x 4:
Ta macierz może być diagonalizowana poprzez wykonanie a transformacja jednostkowa, określane również jako transformacja analizy głównych składników (PCA), w celu uzyskania:
Ponieważ ślad macierzy pozostaje niezmienna przy transformacji jednostkowej, obserwujemy, że suma wartości własnych macierzy diagonalnej jest równa całkowitej wariancji zawartej w cechach X1, X2, X3i X4.
2.1 Obliczanie macierzy kowariancji dla akcji technologicznych
from sklearn.preprocessing import StandardScaler stdsc = StandardScaler () X_std = stdsc.fit_transform (data [cols] .iloc [:, range (0,4)]. values) cov_mat = np.cov (X_std.T, bias = True)
Zauważ, że używa to transponować standaryzowanej matrycy.
2.2 Wizualizacja macierzy kowariancji
plt.figure (figsize = (8,8)) sns.set (font_scale = 1.2) hm = sns.heatmap (cov_mat, cbar = True, annot = True, square = True, fmt = '. 2f', annot_kws = { 'size': 12}, yticklabels = cols, xticklabels = cols) plt.title ('Macierz kowariancji pokazująca współczynniki korelacji') plt.tight_layout () plt.show ()
Rysunek 3. Wykres macierzy kowariancji dla wybranych akcji technologicznych.
Na rysunku 3 obserwujemy, że AAPL silnie koreluje z GOOGL i AMZN, a słabo z TSLA. TSLA generalnie słabo koreluje z AAPL, GOOGL i AMZN, podczas gdy AAPL, GOOGL i AMZN są ze sobą silnie skorelowane.
2.3 Oblicz wartości własne macierzy kowariancji
np.linalg.eigvals (cov_mat) output = array ([3.41582227, 0.4527295, 0.02045092, 0.11099732]) np.sum (np.linalg.eigvals (cov_mat)) output = 4.000000000000006 np.trace (cov_mat) output = 4.000000000000001
Obserwujemy, że ślad macierzy kowariancji jest równy sumie wartości własnych zgodnie z oczekiwaniami.
2.4 Oblicz skumulowaną wariancję
Ponieważ ślad macierzy pozostaje niezmienny przy transformacji jednostkowej, obserwujemy, że suma wartości własnych macierzy diagonalnej jest równa całkowitej wariancji zawartej w cechach X1, X2, X3i X4. Stąd możemy zdefiniować następujące wielkości:
Zauważ, że kiedy p = 4, skumulowana wariancja staje się równa 1 zgodnie z oczekiwaniami.
eigen = np.linalg.eigvals (cov_mat) cum_var = eigen / np.sum (eigen) print (cum_var) output = [0.85395557 0.11318237 0.00511273 0.02774933] print (np.sum (cum_var)) output = 1.0
Obserwujemy ze skumulowanej wariancji (zmienna_cum), że 85% wariancji jest zawarte w pierwszej wartości własnej, a 11% w drugiej. Oznacza to, że po wdrożeniu PCA można wykorzystać tylko pierwsze dwa główne składniki, ponieważ 97% całkowitej wariancji jest składane przez te 2 składniki. Może to zasadniczo zmniejszyć wymiary przestrzeni funkcji z 4 do 2, gdy zaimplementowany jest PCA.
3. Macierz regresji liniowej
Załóżmy, że mamy zbiór danych zawierający 4 funkcje predykcyjne i n obserwacje, jak pokazano poniżej.
Tabela 3. Macierz funkcji z 4 zmiennymi i n obserwacjami. Kolumna 5 to zmienna docelowa (y).
Chcielibyśmy zbudować model wieloregresyjny do przewidywania y wartości (kolumna 5). Nasz model można zatem wyrazić w postaci
W postaci macierzowej to równanie można zapisać jako
gdzie X jest ( nx 4) macierzą cech, w jest macierzą (4 x 1) reprezentującą współczynniki regresji, które mają zostać określone, i y jest macierzą (nx 1) zawierającą n obserwacji zmiennej docelowej y.
Należy pamiętać, że X jest macierzą prostokątną, więc nie możemy rozwiązać powyższego równania, biorąc odwrotność X.
Przekonwertować na X do macierzy kwadratowej mnożymy lewą i prawą stronę naszego równania przez transponować of X, to jest
To równanie można również wyrazić jako
gdzie
jest macierzą regresji (4 × 4). Najwyraźniej to obserwujemy R jest rzeczywistą i symetryczną macierzą. Zauważ, że w algebrze liniowej transpozycja iloczynu dwóch macierzy jest zgodna z następującą zależnością
Teraz, gdy zmniejszyliśmy nasz problem regresji i wyraziliśmy go w postaci (4 × 4) rzeczywistej, symetrycznej i odwracalnej macierzy regresji R, łatwo jest pokazać, że dokładne rozwiązanie równania regresji jest wtedy
Przykłady analizy regresji do przewidywania zmiennych ciągłych i dyskretnych podano poniżej:
Podstawy regresji liniowej dla absolutnie początkujących
Budowanie klasyfikatora perceptronowego metodą najmniejszych kwadratów
4. Macierz liniowej analizy dyskryminacyjnej
Innym przykładem rzeczywistej i symetrycznej macierzy w nauce o danych jest macierz liniowej analizy dyskryminacyjnej (LDA). Macierz tę można wyrazić w postaci:
gdzie SW jest macierzą rozproszenia wewnątrz funkcji, a SB jest macierzą rozproszenia między cechami. Ponieważ obie macierze SW i SB są rzeczywiste i symetryczne, wynika z tego L jest również rzeczywisty i symetryczny. Przekątna L tworzy podprzestrzeń funkcji, która optymalizuje rozdzielność klas i zmniejsza wymiarowość. Stąd LDA jest algorytmem nadzorowanym, podczas gdy PCA nie.
Aby uzyskać więcej informacji na temat wdrożenia LDA, zobacz następujące referencje:
Uczenie maszynowe: redukcja wymiarowości poprzez liniową analizę dyskryminacyjną
Repozytorium GitHub do implementacji LDA przy użyciu zbioru danych Iris
Uczenie maszynowe w języku Python autorstwa Sebastiana Raschki, wydanie trzecie (rozdział 3)
Podsumowanie
Podsumowując, omówiliśmy kilka zastosowań algebry liniowej w nauce o danych i uczeniu maszynowym. Korzystając z zestawu danych zasobów technologicznych, zilustrowaliśmy ważne pojęcia, takie jak rozmiar macierzy, macierze kolumnowe, macierze kwadratowe, macierz kowariancji, transpozycja macierzy, wartości własne, iloczyn skalarny itp. Algebra liniowa jest podstawowym narzędziem w nauce o danych i maszynach uczenie się. Dlatego początkujący zainteresowani nauką o danych muszą zapoznać się z podstawowymi pojęciami algebry liniowej.
Związane z:
- 11
- 2021
- 7
- 77
- 84
- 9
- bezwzględny
- algorytm
- Amazonka
- wśród
- analiza
- Apple
- Zastosowanie
- aplikacje
- kwiecień
- artykuł
- Podstawy
- budować
- Kolumna
- składnik
- obliczać
- computing
- przyczyniły
- dane
- nauka danych
- Wizualizacja danych
- dolarów
- itp
- Cecha
- Korzyści
- Postać
- i terminów, a
- Nasz formularz
- funkcjonować
- tutaj
- W jaki sposób
- HTTPS
- Informacja
- IT
- nauka
- uczenie maszynowe
- matematyka
- matematyka
- model
- Inne
- Cena
- Produkt
- Produkty
- zmniejszyć
- regresja
- nauka
- wybrany
- Rozmiar
- So
- ROZWIĄZANIA
- Typ przestrzeni
- Kwadratowa
- stany magazynowe
- Akcje
- cel
- tech
- Tesla
- Tesla
- tematy
- Handel
- Transformacja
- us
- wyobrażanie sobie
- X