Podstawowa algebra liniowa w nauce o danych i uczeniu maszynowym

Węzeł źródłowy: 1852280

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 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 Sjest 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:

Źródło: https://www.kdnuggets.com/2021/05/essential-linear-algebra-data-science-machine-learning.html

Znak czasu:

Więcej z Knuggety