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 n 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 SB is 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
- 11
- 2021
- 7
- 77
- 84
- 9
- absoluut
- algoritme
- Amazone
- onder
- analyse
- Apple
- Aanvraag
- toepassingen
- April
- dit artikel
- De Basis
- bouw
- Kolom
- bestanddeel
- Berekenen
- computergebruik
- bijgedragen
- gegevens
- data science
- data visualisatie
- dollar
- etc
- Kenmerk
- Voordelen
- Figuur
- Voornaam*
- formulier
- functie
- Kopen Google Reviews
- hier
- Hoe
- HTTPS
- informatie
- IT
- leren
- machine learning
- wiskunde
- wiskunde
- model
- Overige
- prijs
- Product
- Producten
- verminderen
- regressie
- Wetenschap
- gekozen
- Maat
- So
- OPLOSSEN
- Tussenruimte
- vierkant
- voorraad
- Aandelen
- doelwit
- tech
- Tesla
- Tesla-voorraad
- onderwerpen
- Handel
- Transformatie
- us
- visualisatie
- X