Algebra Lineare per la Data Science con Python
Algebra Lineare per la Data Science con Python Il Ponte tra Teoria e Pratica
L’Algebra Lineare, un ramo della matematica, è molto utile nella Scienza dei Dati. Possiamo operare matematicamente su grandi quantità di dati utilizzando l’Algebra Lineare.
La maggior parte degli algoritmi utilizzati nell’Apprendimento Automatico utilizza l’Algebra Lineare, in particolare matrici. La maggior parte dei dati è rappresentata in forma matriciale.
Ora che sappiamo come viene utilizzata l’A.L., andiamo al sodo!!! Iniziamo dalle basi – VETTORI
Vettori
“In matematica e fisica, il vettore è un termine che si riferisce colloquialmente a delle quantità che non possono essere espresse da un singolo numero, o agli elementi di uno spazio vettoriale.” [1]
- Questa ricerca sull’IA presenta MeshGPT un nuovo approccio alla generazione di forme che produce direttamente mesh come triangoli.
- Ricercatori dell’Università di Korea presentano HierSpeech++ un approccio innovativo dell’IA per la sintesi vocale e la conversione vocale ad alta fedeltà ed efficiente.
- Sfida di Google Foobar Livello 3
[1] è la definizione disponibile su Wikipedia. La maggior parte delle persone la comprende, ma per semplificarla si può dire semplicemente che un vettore è:
È un termine che si riferisce a una quantità che ha sia magnitudine che direzione.
È il blocco fondamentale dell’algebra lineare. Ora, se dai un’occhiata alla definizione da Wiki, puoi vedere che le quantità non possono essere espresse da un singolo numero. Ciò significa che hanno una dimensione che può essere qualsiasi.
La dimensionalità di un vettore è determinata dal numero di elementi numerici in quel vettore.
Esempio: Un vettore con 4 elementi avrà una dimensionalità di quattro.
La magnitudine di un vettore viene calcolata utilizzando la formula:
Ora un esempio per capire meglio.
Domanda: Una pallina sta viaggiando per aria e si conoscono le velocità della pallina, le sue direzioni x, y e z in un sistema di coordinate cartesiane standard. I valori dei componenti della velocità sono: x = -12, y = 8, z = -2. Converti le velocità in un vettore e trova la velocità totale della pallina.
Soluzione:
Applicazione dei Vettori utilizzando Python:
Gli array Numpy sono strutture dati di array n-dimensionali che possono essere utilizzati per rappresentare sia vettori che matrici.
import numpy as np v = np.array([1,2,3,4,5]) #vettore
Operazioni di Base sui Vettori:
Moltiplicazione Scalare:
Esempio con Python:
import numpy as np A = np.array([1,2,3,4]) #vettore print(A*4) #moltiplicazione scalare
Addizione e Sottrazione di Vettori:
Esempio con Python:
import numpy as np A = np.array([1,2,3,4]) #vettore1 B = np.array([-4,-3, -2, -1]) #vettore2 print(A+B) #addizione dei vettori print(A-B) #sottrazione dei vettori
Prodotti scalari vettoriali:
Il prodotto scalare prende due vettori di dimensioni uguali e restituisce un singolo valore scalare sommando i prodotti delle componenti corrispondenti dei vettori.
La formula è
Il prodotto scalare è sia commutativo che distributivo.
a.b = b.ca.(b+c) = a.b + a.c
Il valore scalare risultante rappresenta quanto un vettore entra nell’altro.
Se due vettori sono perpendicolari, allora il loro prodotto scalare è 0, poiché nessuno entra nell’altro. Il prodotto scalare può anche essere utilizzato per trovare la magnitudine di un vettore e l’angolo tra due vettori.
Guardiamo alcuni esempi di prodotti scalari.
Esempio per prodotto scalare usando Python:
import numpy as np A = np.array([1,2,3,4]) #vettore1 B = np.array([-4,-3, -2, -1]) #vettore2 print(np.dot(A, B)) #prodotto scalare
Esempio per la reperibilità dell’angolo:
Matrici:
Si tratta di una quantità con m righe e n colonne di dati. Possiamo combinare più vettori in una matrice, in cui ogni matrice è uno dei vettori. Le matrici sono utili perché ci consentono di eseguire operazioni su grandi quantità di dati, ad esempio rappresentando interi sistemi di equazioni in una quantità matriciale. Possiamo persino accedere agli elementi utilizzando i numeri di riga e di colonna.
Nell’esempio sopra, mostriamo anche come accedere agli elementi della matrice. Come A(1,2), che è la prima riga e la seconda colonna.
Esempio per matrice usando python:
import numpy as np A = np.array([[1,2],[3,4]]) #matrice print(A[1,1]) #accesso agli elementi della matrice A
Operazioni della matrice:
Addizione e sottrazione della matrice:
Possiamo farlo se due matrici hanno forme uguali.
Esempio con Python:
import numpy as np A = np.array([[1,2],[3,4]]) #matrice1 B = np.array([[-3,-2],[-4,-5]]) #matrice2 print(A+B) #Addizione print(A-B) #Sottrazione
Moltiplicazione di Matrici:
Funziona calcolando il prodotto scalare tra ogni riga della prima matrice e ogni colonna della seconda matrice.
Se le matrici hanno dimensioni m x n e k x l. Se n = k, solo allora siamo in grado di eseguire la moltiplicazione.
Esempio con Python:
Ci sono due modi per farlo. Uno è utilizzare il simbolo “@” e l’altro è utilizzare il .matmul()
dal modulo numpy
import numpy as np A = np.array([[1,2],[3,4]]) #matrice1 B = np.array([[-3,-2],[-4,-5]]) #matrice2 print(np.matmul(A, B)) print(A@B)
Entrambe le istruzioni di stampa restituiscono lo stesso risultato.
Matrici Speciali:
Esistono 3 tipi particolari di matrici.
Matrice Identità:
Una matrice quadrata con elementi diagonali pari a 1 e gli altri elementi pari a 0. Qualsiasi matrice moltiplicata per la matrice identità è uguale a se stessa.
In Python, possiamo creare una matrice identità utilizzando il metodo .eye()
di numpy
import numpy as np identity = np.eye(4) #crea una matrice 4x4.
Matrice Trasposta:
Viene calcolata scambiando le righe e le colonne di una matrice. Viene indicata con “T”
In Python, possiamo utilizzare .T per trasporre la matrice
import numpy as np A = np.array([[1,2],[3,4]]) #matrice A_trans = A.T
Matrice di Permutazione:
È una matrice quadrata che consente di invertire righe e colonne di una matrice separata. È simile all’identità, in cui ogni elemento è 0 tranne un elemento in una riga, che è 1.
Per invertire le righe in una matrice A moltiplichiamo una matrice di permutazione P a sinistra (PA). Per invertire le colonne, moltiplichiamo una matrice di permutazione P a destra (AP)
Fai clic qui per sapere come implementarlo in Python.
Sistema lineare in forma matriciale:
Un’applicazione estremamente utile delle matrici è la risoluzione di sistemi di equazioni lineari.
Diamo un’occhiata a un esempio.
Scriveremo le equazioni sopra nella forma di matrici mostrata di seguito.
Il nostro obiettivo finale è rappresentare il tutto nella forma Ax = b
Possiamo scrivere Ax = b
come [A|b]
Con il sottomodulo linalg di NumPy, possiamo farlo.
Esempio:
Abbiamo convertito il sistema di equazioni lineari sopra in matrici.
A = np.array([[1,4,-1],[-1,-3,-2],[2, -1, -2]]) b = np.array([-1,2,-2]) x, y, z = np.linalg.solve(A, b)
Matrice inversa:
“In algebra lineare, una matrice quadrata n-per-n A è chiamata invertibile (anche non singolare o non degenere), se esiste una matrice quadrata n-per-n B tale che AB = BA = I” [2]
[2] Wikipedia
Come accennato in precedenza, il prodotto della matrice inversa per se stessa è l’identità. Non tutte le matrici hanno una matrice inversa. Quelle che non ne hanno sono chiamate matrici singolari.
Esempio con Python:
import numpy as np A = np.array([[1,2],[3,4]]) print(np.linalg.inv(A))
Varie:
- possiamo creare una matrice o un vettore composto da zeri utilizzando
.zeros()
di NumPy
Esempio:
import numpy as np print(np.zeros((3,2)) #stampa una matrice di dimensioni 3x2.
- La “norma” di un vettore può essere trovata utilizzando il sottomodulo linalg di NumPy.
Esempio:
import numpy as np A = np.array([2,-4,1]) A_norm = np.linalg.norm(A) #dà 4.5825
Conclusioni:
In questo blog abbiamo imparato:
- cosa sono le matrici e i vettori.
- Le operazioni eseguite su di essi.
- Implementarli utilizzando il modulo NumPy di Python.
- Abbiamo persino visto diversi tipi di matrici.
Ecco tutto, ragazzi. Spero che lo abbiate trovato utile, se lo avete fatto, seguitemi su LinkedIn.
Se ti piace il mio lavoro, puoi offrirmi un caffè: dataguy6@ybl
Guarda i miei lavori recenti:
DagsHub è il modo migliore per i data scientist
Il modo migliore per iniziare e archiviare i tuoi progetti di data science!
VoAGI.com
Migliori risorse per imparare la data science
Stai pianificando di imparare la data science?🤩 Ma non hai idea di dove e come imparare?😫 Non preoccuparti perché ho la soluzione…
VoAGI.com