Algèbre linéaire essentielle pour la science des données et l'apprentissage automatique

Nœud source: 1852280

Image de Benjamin O. Tayo.

L'algèbre linéaire est une branche des mathématiques extrêmement utile dans la science des données et l'apprentissage automatique. L'algèbre linéaire est la compétence mathématique la plus importante dans l'apprentissage automatique. La plupart des modèles d’apprentissage automatique peuvent être exprimés sous forme matricielle. Un ensemble de données lui-même est souvent représenté sous forme de matrice. L'algèbre linéaire est utilisée dans le prétraitement des données, la transformation des données et l'évaluation des modèles. Voici les sujets que vous devez connaître :

  • Vecteurs
  • Matrices
  • Transposée d'une matrice
  • Inverse d'une matrice
  • Déterminant d'une matrice
  • Trace d'une matrice
  • Produit scalaire
  • Valeurs propres
  • Vecteurs propres

Dans cet article, nous illustrons l'application de l'algèbre linéaire dans la science des données et l'apprentissage automatique à l'aide de l'ensemble de données sur les actions technologiques, que l'on peut trouver ici.

1. Algèbre linéaire pour le prétraitement des données

 Nous commençons par illustrer comment l'algèbre linéaire est utilisée dans le prétraitement des données.

1.1 Importer les bibliothèques nécessaires pour l'algèbre linéaire

importer numpy en tant que np importer des pandas en tant que pd importer pylab importer matplotlib.pyplot en tant que plt importer seaborn en tant que sns 

 

1.2 Lire l'ensemble de données et afficher les fonctionnalités

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

 lampe de table 1. Cours des actions pour les cours des actions sélectionnées pour les 16 premiers jours d'avril 2021.

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

 La données.forme La fonction nous permet de connaître la taille de notre ensemble de données. Dans ce cas, l'ensemble de données comporte 5 fonctionnalités (date, AAPL, TSLA, GOOGL et AMZN) et chaque fonctionnalité comporte 11 observations. Date fait référence aux jours de bourse d'avril 2021 (jusqu'au 16 avril). AAPL, TSLA, GOOGL et AMZN sont respectivement les cours de clôture des actions Apple, Tesla, Google et Amazon.

1.3 Visualisation des données

Pour effectuer la visualisation des données, nous aurions besoin de définir matrices de colonne pour les fonctionnalités à visualiser :

x = data['date'] y = data['TSLA'] plt.plot(x,y) plt.xticks(np.array([0,4,9]), ['1 avril','8 avril ','15 avril']) plt.title('Cours de l'action Tesla (en dollars) pour avril 2021',size=14) plt.show() 

Figure 1. Cours de l’action Tesla pour les 16 premiers jours d’avril 2021.

2. Matrice de covariance

La matrice de covariance est l'une des matrices les plus importantes en science des données et en apprentissage automatique. Il fournit des informations sur le co-mouvement (corrélation) entre les entités. Supposons que nous ayons une matrice de fonctionnalités avec 4 caractéristiques et observations comme indiqué dans Tableau 2:

Tableau 2. Matrice de caractéristiques avec 4 variables et n observations.

Pour visualiser les corrélations entre les caractéristiques, nous pouvons générer un nuage de points :

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

Figure 2. Diagramme de paires de nuages ​​de points pour les actions technologiques sélectionnées.

Pour quantifier le degré de corrélation entre les caractéristiques (multicolinéarité), nous pouvons calculer la matrice de covariance à l'aide de cette équation :

où et sont respectivement la moyenne et l'écart type de la caractéristique. Cette équation indique que lorsque les caractéristiques sont standardisées, la matrice de covariance est simplement la produit scalaire entre les fonctionnalités.

Sous forme matricielle, la matrice de covariance peut être exprimée sous la forme d'une matrice réelle et symétrique 4 x 4 :

Cette matrice peut être diagonalisée en effectuant une transformation unitaire, également appelée transformation Analyse en Composantes Principales (ACP), pour obtenir les éléments suivants :

Depuis l' trace d'une matrice reste invariant sous une transformation unitaire, on observe que la somme des valeurs propres de la matrice diagonale est égale à la variance totale contenue dans les caractéristiques X1X2X3et X4.

2.1 Calcul de la matrice de covariance pour les actions technologiques

à partir de 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, biais= True) 

Notez que cela utilise le transposer de la matrice standardisée.

2.2 Visualisation de la matrice de covariance

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('Matrice de covariance montrant les coefficients de corrélation') plt.tight_layout() plt.show() 

Figure 3. Graphique matriciel de covariance pour certaines actions technologiques.

Nous observons sur la figure 3 qu'AAPL est fortement corrélé avec GOOGL et AMZN, et faiblement avec TSLA. TSLA est généralement faiblement corrélé avec AAPL, GOOGL et AMZN, tandis que AAPL, GOOGL et AMZN sont fortement corrélés entre eux.

2.3 Calculer les valeurs propres de la matrice de covariance

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

On observe que la trace de la matrice de covariance est égale à la somme des valeurs propres comme prévu.

2.4 Calculer la variance cumulée

Puisque la trace d'une matrice reste invariante sous une transformation unitaire, on observe que la somme des valeurs propres de la matrice diagonale est égale à la variance totale contenue dans les caractéristiques X1X2X3et X4. On peut donc définir les quantités suivantes :

 

Remarquez que quand p = 4, la variance cumulée devient égale à 1 comme prévu.

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

 Nous observons à partir de la variance cumulée (cum_var) que 85 % de la variance est contenue dans la première valeur propre et 11 % dans la seconde. Cela signifie que lorsque l'ACP est mise en œuvre, seules les deux premières composantes principales pourraient être utilisées, car 97 % de la variance totale provient de ces 2 composantes. Cela peut essentiellement réduire la dimension de l'espace des fonctionnalités de 4 à 2 lorsque la PCA est implémentée.

3. Matrice de régression linéaire

Supposons que nous ayons un ensemble de données comportant 4 fonctionnalités de prédicteur et n observations, comme indiqué ci-dessous.

Tableau 3. Matrice de caractéristiques avec 4 variables et n observations. La colonne 5 est la variable cible (y).

Nous aimerions construire un modèle multi-régression pour prédire le y valeurs (colonne 5). Notre modèle peut donc s'exprimer sous la forme

Sous forme matricielle, cette équation peut s’écrire

De X est la matrice de caractéristiques ( nx 4), w est la matrice (4 x 1) représentant les coefficients de régression à déterminer, et y est la matrice (nx 1) contenant les n observations de la variable cible y.

Notez que X est une matrice rectangulaire, nous ne pouvons donc pas résoudre l'équation ci-dessus en prenant l'inverse de X.

Convertir X dans une matrice carrée, nous multiplions le côté gauche et le côté droit de notre équation par le transposer of X, C'est

Cette équation peut également être exprimée par

De

est la matrice de régression (4×4). On constate évidemment que R est une matrice réelle et symétrique. Notons qu'en algèbre linéaire, la transposée du produit de deux matrices obéit à la relation suivante

Maintenant que nous avons réduit notre problème de régression et l'avons exprimé en termes de matrice de régression (4 × 4) réelle, symétrique et inversible R, il est simple de montrer que la solution exacte de l’équation de régression est alors

Des exemples d'analyse de régression pour prédire des variables continues et discrètes sont donnés ci-dessous :

Bases de la régression linéaire pour les débutants absolus

Construction d'un classificateur Perceptron à l'aide de la méthode des moindres carrés

4. Matrice d'analyse discriminante linéaire

Un autre exemple de matrice réelle et symétrique en science des données est la matrice d'analyse discriminante linéaire (LDA). Cette matrice peut s'exprimer sous la forme :

De SW est la matrice de dispersion à l'intérieur des caractéristiques, et Sest la matrice de dispersion entre les fonctionnalités. Puisque les deux matrices SW ainsi que SB sont réels et symétriques, il s'ensuit que L est également réel et symétrique. La diagonalisation de L produit un sous-espace de fonctionnalités qui optimise la séparabilité des classes et réduit la dimensionnalité. Par conséquent, LDA est un algorithme supervisé, contrairement à PCA.

Pour plus de détails sur la mise en œuvre de LDA, veuillez consulter les références suivantes :

Apprentissage automatique : réduction de la dimensionnalité via l'analyse discriminante linéaire

Dépôt GitHub pour la mise en œuvre de LDA à l'aide de l'ensemble de données Iris

Python Machine Learning par Sebastian Raschka, 3e édition (Chapitre 5)

Résumé

En résumé, nous avons discuté de plusieurs applications de l'algèbre linéaire dans la science des données et l'apprentissage automatique. À l'aide de l'ensemble de données sur les actions technologiques, nous avons illustré des concepts importants tels que la taille d'une matrice, les matrices de colonnes, les matrices carrées, la matrice de covariance, la transposition d'une matrice, les valeurs propres, les produits scalaires, etc. L'algèbre linéaire est un outil essentiel en science des données et en machine. apprentissage. Ainsi, les débutants intéressés par la science des données doivent se familiariser avec les concepts essentiels de l'algèbre linéaire.

Connexe:

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

Horodatage:

Plus de KDnuggetsGenericName