Essentiële lineaire algebra voor datawetenschap en machine learning

Bronknooppunt: 1852280

Afbeelding door Benjamin O. Tayo.

Lineaire algebra is een tak van de wiskunde die uiterst nuttig is in datawetenschap en machinaal leren. Lineaire algebra is de belangrijkste wiskundige vaardigheid in machine learning. De meeste machine learning-modellen kunnen in matrixvorm worden uitgedrukt. Een dataset zelf wordt vaak weergegeven als een matrix. Lineaire algebra wordt gebruikt bij de voorverwerking van gegevens, gegevenstransformatie en modelevaluatie. Dit zijn de onderwerpen waarmee u bekend moet zijn:

  • vectoren
  • matrices
  • Transponeren van een matrix
  • Inverse van een matrix
  • Determinant van een matrix
  • Spoor van een matrix
  • Punt product
  • eigenwaarden
  • Eigenvectoren

In dit artikel illustreren we de toepassing van lineaire algebra in datawetenschap en machinaal leren met behulp van de dataset voor technische aandelen, die te vinden is hier.

1. Lineaire algebra voor gegevensvoorverwerking

 We beginnen met te illustreren hoe lineaire algebra wordt gebruikt bij de voorverwerking van gegevens.

1.1 Importeer de benodigde bibliotheken voor lineaire algebra

importeer numpy als np importeer panda's als pd importeer pylab importeer matplotlib.pyplot als plt importeer seaborn als sns 

 

1.2 Gegevensset lezen en functies weergeven

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

 tafel 1. Aandelenkoersen voor geselecteerde aandelenkoersen voor de eerste 16 dagen in april 2021.

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

 De data.vorm functie stelt ons in staat de grootte van onze dataset te kennen. In dit geval heeft de dataset vijf kenmerken (datum, AAPL, TSLA, GOOGL en AMZN) en heeft elk kenmerk elf observaties. Datum verwijst naar de handelsdagen in april 2021 (tot en met 16 april). AAPL, TSLA, GOOGL en AMZN zijn de slotkoersen van respectievelijk Apple, Tesla, Google en Amazon.

1.3 Datavisualisatie

Om datavisualisatie uit te voeren, moeten we definiëren kolommatrices voor de functies die moeten worden gevisualiseerd:

x = data['datum'] y = data['TSLA'] plt.plot(x,y) plt.xticks(np.array([0,4,9]), ['1 april','8 april ','15 april']) plt.title('Aandelenkoers Tesla (in dollars) voor april 2021',size=14) plt.show() 

Figuur 1. Aandelenkoers Tesla voor de eerste 16 dagen in april 2021.

2. Covariantiematrix

De covariantiematrix is een van de belangrijkste matrices in data science en machine learning. Het biedt informatie over co-beweging (correlatie) tussen kenmerken. Stel dat we een kenmerkenmatrix hebben met 4 Kenmerken en observaties zoals weergegeven in Tabel 2:

Tabel 2. Beschikt over een matrix met 4 variabelen en n observaties.

Om de correlaties tussen de kenmerken te visualiseren, kunnen we een spreidingspaarplot genereren:

cols=data.columns[1:5] print(cols) output = Index(['AAPL', 'TSLA', 'GOOGL', 'AMZN'], dtype='object') sns.pairplot(data[cols] , hoogte=3.0) 

Figuur 2. Verspreid pairplot voor geselecteerde technologieaandelen.

Om de mate van correlatie tussen kenmerken (multicollineariteit) te kwantificeren, kunnen we de covariantiematrix berekenen met behulp van deze vergelijking:

waar en zijn respectievelijk het gemiddelde en de standaardafwijking van feature . Deze vergelijking geeft aan dat wanneer kenmerken worden gestandaardiseerd, de covariantiematrix eenvoudigweg de punt product tussen kenmerken.

In matrixvorm kan de covariantiematrix worden uitgedrukt als een 4 x 4 reële en symmetrische matrix:

Deze matrix kan worden gediagonaliseerd door a uit te voeren unitaire transformatie, ook wel Principal Component Analysis (PCA)-transformatie genoemd, om het volgende te verkrijgen:

Aangezien de spoor van een matrix onveranderlijk blijft onder een unitaire transformatie, zien we dat de som van de eigenwaarden van de diagonale matrix gelijk is aan de totale variantie vervat in de kenmerken X1, X2, X3, en X4.

2.1 Berekening van de covariantiematrix voor technologieaandelen

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

Merk op dat dit gebruik maakt van de transponeren van de gestandaardiseerde matrix.

2.2 Visualisatie van covariantiematrix

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('Covariantiematrix toont correlatiecoëfficiënten') plt.tight_layout() plt.show() 

Figuur 3. Covariantiematrixplot voor geselecteerde technologieaandelen.

We zien uit figuur 3 dat AAPL sterk correleert met GOOGL en AMZN, en zwak met TSLA. TSLA correleert over het algemeen zwak met AAPL, GOOGL en AMZN, terwijl AAPL, GOOGL en AMZN sterk met elkaar correleren.

2.3 Bereken eigenwaarden van de covariantiematrix

np.linalg.eigvals(cov_mat) uitvoer = array([3.41582227, 0.4527295 , 0.02045092, 0.11099732]) np.sum(np.linalg.eigvals(cov_mat)) uitvoer = 4.000000000000006 np.trace( cov_mat) uitvoer = 4.000000000000001 

We zien dat het spoor van de covariantiematrix zoals verwacht gelijk is aan de som van de eigenwaarden.

2.4 Bereken de cumulatieve variantie

Omdat het spoor van een matrix invariant blijft onder een unitaire transformatie, zien we dat de som van de eigenwaarden van de diagonale matrix gelijk is aan de totale variantie vervat in de kenmerken X1, X2, X3, en X4. Daarom kunnen we de volgende grootheden definiëren:

 

Merk op dat wanneer p = 4, wordt de cumulatieve variantie zoals verwacht gelijk aan 1.

eigen = np.linalg.eigvals(cov_mat) cum_var = eigen/np.sum(eigen) print(cum_var) uitvoer = [0.85395557 0.11318237 0.00511273 0.02774933] print(np.sum(cum_var)) uitvoer = 1.0 

 We observeren aan de hand van de cumulatieve variantie (cum_var) dat 85% van de variantie in de eerste eigenwaarde zit en 11% in de tweede. Dit betekent dat wanneer PCA wordt geïmplementeerd, alleen de eerste twee hoofdcomponenten kunnen worden gebruikt, aangezien 97% van de totale variantie wordt bijgedragen door deze twee componenten. Dit kan in wezen de dimensionaliteit van de kenmerkruimte verminderen van 2 naar 4 wanneer PCA wordt geïmplementeerd.

3. Lineaire regressiematrix

Stel dat we een dataset hebben met vier voorspellerfuncties en n observaties, zoals hieronder weergegeven.

Tabel 3. Beschikt over een matrix met 4 variabelen en n observaties. Kolom 5 is de doelvariabele (y).

We willen graag een multi-regressiemodel bouwen voor het voorspellen van de y waarden (kolom 5). Ons model kan dus in de vorm worden uitgedrukt

In matrixvorm kan deze vergelijking worden geschreven als

WAAR X is de (nx 4) kenmerkenmatrix, w is de (4 x 1) matrix die de te bepalen regressiecoëfficiënten weergeeft, en y is de (nx 1) matrix die de n waarnemingen van de doelvariabele y bevat.

Merk op dat X is een rechthoekige matrix, dus we kunnen de bovenstaande vergelijking niet oplossen door de inverse van te nemen X.

Om te zetten X in een vierkante matrix vermenigvuldigen we de linker- en rechterzijde van onze vergelijking met de transponeren of X, Did is

Deze vergelijking kan ook worden uitgedrukt als

WAAR

is de (4×4) regressiematrix. Het is duidelijk dat wij dat constateren R is een reële en symmetrische matrix. Merk op dat in lineaire algebra de transponering van het product van twee matrices aan de volgende relatie voldoet

Nu we ons regressieprobleem hebben verkleind en uitgedrukt in termen van de (4×4) reële, symmetrische en inverteerbare regressiematrix R, is het eenvoudig aan te tonen dat de exacte oplossing van de regressievergelijking dan is

Voorbeelden van regressieanalyse voor het voorspellen van continue en discrete variabelen worden hieronder gegeven:

Basisprincipes van lineaire regressie voor absolute beginners

Een Perceptron-classificator bouwen met behulp van de kleinste kwadratenmethode

4. Lineaire discriminantanalysematrix

Een ander voorbeeld van een echte en symmetrische matrix in de datawetenschap is de Linear Discriminant Analysis (LDA)-matrix. Deze matrix kan worden uitgedrukt in de vorm:

WAAR SW is de spreidingsmatrix binnen de kenmerken, en Sis de spreidingsmatrix tussen de kenmerken. Omdat beide matrices SW en SB reëel en symmetrisch zijn, volgt hieruit L is ook reëel en symmetrisch. De diagonalisering van L produceert een feature-subruimte die de scheidbaarheid van klassen optimaliseert en de dimensionaliteit vermindert. Daarom is LDA een algoritme onder toezicht, terwijl PCA dat niet is.

Voor meer details over de implementatie van LDA, zie de volgende referenties:

Machine Learning: vermindering van de dimensionaliteit via lineaire discriminantanalyse

GitHub-repository voor LDA-implementatie met behulp van de Iris-dataset

Python Machine Learning door Sebastian Raschka, 3e editie (hoofdstuk 5)

Samengevat

Samenvattend hebben we verschillende toepassingen van lineaire algebra in datawetenschap en machinaal leren besproken. Met behulp van de dataset voor technische aandelen illustreerden we belangrijke concepten zoals de grootte van een matrix, kolommatrices, vierkante matrices, covariantiematrix, transpositie van een matrix, eigenwaarden, puntproducten, enz. Lineaire algebra is een essentieel hulpmiddel in datawetenschap en machinebouw. aan het leren. Beginners die geïnteresseerd zijn in datawetenschap moeten dus vertrouwd raken met essentiële concepten in lineaire algebra.

Zie ook:

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

Tijdstempel:

Meer van KDnuggets