Algebră liniară esențială pentru știința datelor și învățarea automată

Nodul sursă: 1852280

Imagine de Benjamin O. Tayo.

Algebra liniară este o ramură a matematicii care este extrem de utilă în știința datelor și învățarea automată. Algebra liniară este cea mai importantă abilitate de matematică în învățarea automată. Majoritatea modelelor de învățare automată pot fi exprimate sub formă de matrice. Un set de date în sine este adesea reprezentat ca o matrice. Algebra liniară este utilizată în preprocesarea datelor, transformarea datelor și evaluarea modelului. Iată subiectele cu care trebuie să fii familiarizat:

  • Vectorii
  • matricelor
  • Transpunerea unei matrice
  • Inversa unei matrice
  • Determinant al unei matrice
  • Urma unei matrice
  • Produs punct
  • valori proprii
  • Vectori proprii

În acest articol, ilustrăm aplicarea algebrei liniare în știința datelor și învățarea automată folosind setul de date privind stocurile tehnologice, care poate fi găsit aici.

1. Algebră liniară pentru preprocesarea datelor

 Începem prin a ilustra modul în care algebra liniară este utilizată în preprocesarea datelor.

1.1 Importați bibliotecile necesare pentru algebra liniară

import numpy ca np import panda ca pd import pylab import matplotlib.pyplot ca plt import seaborn ca sns 

 

1.2 Citiți setul de date și caracteristicile de afișare

data = pd.read_csv("tech-stocks-04-2021.csv") data.head() 

 Tabel 1. Prețurile acțiunilor pentru prețurile acțiunilor selectate pentru primele 16 zile din aprilie 2021.

print(data.shape) output = (11,5) 

  date.formă funcția ne permite să cunoaștem dimensiunea setului nostru de date. În acest caz, setul de date are 5 caracteristici (data, AAPL, TSLA, GOOGL și AMZN) și fiecare caracteristică are 11 observații. Data se referă la zilele de tranzacționare din aprilie 2021 (până la 16 aprilie). AAPL, TSLA, GOOGL și AMZN sunt prețurile de închidere ale acțiunilor pentru Apple, Tesla, Google și, respectiv, Amazon.

1.3 Vizualizarea datelor

Pentru a realiza vizualizarea datelor, ar trebui să definim matrice coloane pentru a fi vizualizate caracteristicile:

x = date['data'] y = data['TSLA'] plt.plot(x,y) plt.xticks(np.array([0,4,9]), ['Apr 1','Apr 8' ','Apr 15']) plt.title('Prețul acțiunilor Tesla (în dolari) pentru aprilie 2021',size=14) plt.show() 

Figura 1. Prețul acțiunilor Tesla pentru primele 16 zile din aprilie 2021.

2. Matricea de covarianță

matricea de covarianță este una dintre cele mai importante matrice din știința datelor și învățarea automată. Oferă informații despre co-mișcarea (corelația) între caracteristici. Să presupunem că avem o matrice de caracteristici cu 4 caracteristici și observații așa cum se arată în Tabelul 2:

Tabelul 2. Matrice de caracteristici cu 4 variabile și n observații.

Pentru a vizualiza corelațiile dintre caracteristici, putem genera un scatter pairplot:

cols=data.columns[1:5] print(cols) output = Index(['AAPL', 'TSLA', 'GOOGL', 'AMZN'], dtype='object') sns.pairplot(data[cols] , înălțime=3.0) 

Figura 2. Scatter pairplot pentru stocurile tehnologice selectate.

Pentru a cuantifica gradul de corelație între caracteristici (multicoliniaritate), putem calcula matricea de covarianță folosind această ecuație:

unde și sunt media și, respectiv, abaterea standard a caracteristicii . Această ecuație indică faptul că atunci când caracteristicile sunt standardizate, matricea de covarianță este pur și simplu produs dot între caracteristici.

Sub formă de matrice, matricea de covarianță poate fi exprimată ca o matrice 4 x 4 reală și simetrică:

Această matrice poate fi diagonalizată efectuând a transformare unitară, denumită și transformarea Analizei componentelor principale (PCA), pentru a obține următoarele:

Deoarece urma unei matrice rămâne invariant la o transformare unitară, observăm că suma valorilor proprii ale matricei diagonale este egală cu varianța totală conținută în caracteristicile X1, X2, X3, și X4.

2.1 Calcularea matricei de covarianță pentru stocurile de tehnologie

din 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) 

Rețineți că aceasta folosește transpune a matricei standardizate.

2.2 Vizualizarea matricei de covarianță

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('Matricea de covarianță care arată coeficienții de corelație') plt.tight_layout() plt.show() 

Figura 3. Graficul matricei de covarianță pentru stocurile tehnologice selectate.

Observăm din figura 3 că AAPL se corelează puternic cu GOOGL și AMZN și slab cu TSLA. TSLA se corelează în general slab cu AAPL, GOOGL și AMZN, în timp ce AAPL, GOOGL și AMZN se corelează puternic între ele.

2.3 Calculează valorile proprii ale matricei de covarianță

np.linalg.eigvals(cov_mat) output = array([3.41582227, 0.4527295 , 0.02045092, 0.11099732]) np.sum(np.linalg.eigvals(cov_mat)) output =(cov_mat)4.000000000000006 ) ieșire = 4.000000000000001 

Observăm că urma matricei de covarianță este egală cu suma valorilor proprii așa cum era de așteptat.

2.4 Calculați varianța cumulativă

Deoarece urma unei matrice rămâne invariantă sub o transformare unitară, observăm că suma valorilor proprii ale matricei diagonale este egală cu varianța totală conținută în caracteristicile X1, X2, X3, și X4. Prin urmare, putem defini următoarele mărimi:

 

Observați că atunci când p = 4, varianța cumulativă devine egală cu 1 așa cum era de așteptat.

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(cum_var.sum) output(cum_var.1.0) 

 Observăm din varianța cumulativă (cum_var) că 85% din varianță este conținută în prima valoare proprie și 11% în a doua. Aceasta înseamnă că atunci când este implementat PCA, doar primele două componente principale ar putea fi utilizate, deoarece 97% din variația totală este contribuită de aceste două componente. Acest lucru poate reduce în esență dimensionalitatea spațiului de caracteristici de la 2 la 4 atunci când este implementat PCA.

3. Matricea regresiei liniare

Să presupunem că avem un set de date care are 4 caracteristici de predictor și n observații, după cum se arată mai jos.

Tabelul 3. Matrice de caracteristici cu 4 variabile și n observații. Coloana 5 este variabila țintă (y).

Am dori să construim un model de regresie multiplă pentru prezicerea y valori (coloana 5). Modelul nostru poate fi astfel exprimat sub formă

Sub formă de matrice, această ecuație poate fi scrisă ca

Unde X este (nx 4) matricea de caracteristici, w este matricea (4 x 1) reprezentând coeficienții de regresie care trebuie determinați și y este matricea (nx 1) care conține n observații ale variabilei țintă y.

Rețineți că X este o matrice dreptunghiulară, deci nu putem rezolva ecuația de mai sus luând inversul lui X.

A converti X într-o matrice pătrată, multiplicăm partea stângă și partea dreaptă a ecuației noastre cu transpune of X, acesta este

Această ecuație poate fi exprimată și ca

Unde

este matricea de regresie (4×4). În mod clar, observăm asta R este o matrice reală și simetrică. Rețineți că în algebra liniară, transpunerea produsului a două matrice respectă următoarea relație

Acum că ne-am redus problema de regresie și am exprimat-o în termenii matricei de regresie reală, simetrică și inversabilă (4×4) R, este simplu să arătăm că soluția exactă a ecuației de regresie este atunci

Exemple de analiză de regresie pentru prezicerea variabilelor continue și discrete sunt date în următoarele:

Bazele regresiei liniare pentru începători absoluti

Construirea unui clasificator de perceptron folosind metoda celor mai mici pătrate

4. Matricea Analizei Discriminante Liniare

Un alt exemplu de matrice reală și simetrică în știința datelor este matricea Analizei Discriminante Liniare (LDA). Această matrice poate fi exprimată sub forma:

Unde SW este matricea de dispersie în interiorul caracteristicii și Seste matricea de dispersie între caracteristici. Deoarece ambele matrice SW și SB sunt reale și simetrice, rezultă că L este de asemenea reală și simetrică. Diagonalizarea L produce un subspațiu caracteristic care optimizează separabilitatea claselor și reduce dimensionalitatea. Prin urmare, LDA este un algoritm supravegheat, în timp ce PCA nu este.

Pentru mai multe detalii despre implementarea LDA, vă rugăm să consultați următoarele referințe:

Învățare automată: Reducerea dimensionalității prin analiza discriminantă liniară

Depozitul GitHub pentru implementarea LDA folosind setul de date Iris

Python Machine Learning de Sebastian Raschka, ediția a 3-a (Capitolul 5)

Rezumat

În rezumat, am discutat mai multe aplicații ale algebrei liniare în știința datelor și învățarea automată. Folosind setul de date privind stocurile tehnologice, am ilustrat concepte importante, cum ar fi dimensiunea unei matrice, matrice de coloane, matrice pătrată, matrice de covarianță, transpunerea unei matrice, valori proprii, produse punctiforme etc. Algebra liniară este un instrument esențial în știința datelor și a mașinilor. învăţare. Astfel, începătorii interesați de știința datelor trebuie să se familiarizeze cu conceptele esențiale din algebra liniară.

Related:

Sursa: https://www.kdnuggets.com/2021/05/essential-linear-algebra-data-science-machine-learning.html

Timestamp-ul:

Mai mult de la KDnuggets