Algebra Lineare per la Data Science con Python

Algebra Lineare per la Data Science con Python Il Ponte tra Teoria e Pratica

Immagine da pixabay

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]

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

Immagine di autore

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:

Immagine di autore

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:

Immagine di autore

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:

Immagine di autore

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 è

Immagine dell'autore

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.

Immagine da cuemath.com

Guardiamo alcuni esempi di prodotti scalari.

Immagine dell'autore

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:

Immagine dell'autore

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.

Immagine dell'autore

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.

Immagine dell'autore

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.

Immagine dell'autore
Immagine dell'autore

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.

Immagine da Wikipedia

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”

Immagine da Wikipedia

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.

Immagine da Wikipedia

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)

Immagine dell'autore

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.

Immagine dell'autore

Scriveremo le equazioni sopra nella forma di matrici mostrata di seguito.

Immagine dell'autore

Il nostro obiettivo finale è rappresentare il tutto nella forma Ax = b

Immagine dell'autore

Possiamo scrivere Ax = b come [A|b]

Immagine dell'autore

Con il sottomodulo linalg di NumPy, possiamo farlo.

Esempio:

Immagine dell'autore

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