Comment écrire un algorithme d'analyse en composantes principales PCA en Python ?
PCA (Principal Component Analysis) est un algorithme d'apprentissage non supervisé couramment utilisé pour réduire la dimensionnalité des données afin de mieux comprendre et analyser les données. Dans cet article, nous apprendrons comment écrire l'algorithme d'analyse des composantes principales PCA à l'aide de Python et fournirons des exemples de code spécifiques.
Les étapes de la PCA sont les suivantes :
Exemple de code :
import numpy as np def pca(X, k): # 1. 标准化数据 X_normalized = (X - np.mean(X, axis=0)) / np.std(X, axis=0) # 2. 计算协方差矩阵 covariance_matrix = np.cov(X_normalized.T) # 3. 计算特征值和特征向量 eigenvalues, eigenvectors = np.linalg.eig(covariance_matrix) # 4. 选择主成分 eig_indices = np.argsort(eigenvalues)[::-1] # 根据特征值的大小对特征向量进行排序 top_k_eig_indices = eig_indices[:k] # 选择前k个特征值对应的特征向量 top_k_eigenvectors = eigenvectors[:, top_k_eig_indices] # 5. 转换数据 transformed_data = np.dot(X_normalized, top_k_eigenvectors) return transformed_data # 示例数据 X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) # 使用PCA降低维度到1 k = 1 transformed_data = pca(X, k) print(transformed_data)
Dans le code ci-dessus, nous normalisons d'abord les données via np.mean
et np.std
. Ensuite, utilisez np.cov
pour calculer la matrice de covariance. Ensuite, utilisez np.linalg.eig
pour effectuer une décomposition des valeurs propres sur la matrice de covariance afin d'obtenir des valeurs propres et des vecteurs propres. Nous trions en fonction de la taille des valeurs propres et sélectionnons les vecteurs propres correspondant aux k valeurs propres supérieures. Enfin, nous multiplions les données normalisées avec le vecteur de caractéristiques sélectionné pour obtenir les données transformées. np.mean
和np.std
将数据标准化。然后,使用np.cov
计算协方差矩阵。接下来,使用np.linalg.eig
对协方差矩阵进行特征值分解,得到特征值和特征向量。我们根据特征值的大小进行排序,选择前k个特征值对应的特征向量。最后,我们将标准化后的数据与选择的特征向量相乘,得到转换后的数据。
在示例数据中,我们使用一个简单的2维数据作为示例。最后,我们将维度降低到1维,打印输出转换后的数据。
运行上述代码,输出结果如下:
[[-1.41421356] [-0.70710678] [ 0.70710678] [ 1.41421356]]
这个结果显示数据已经被成功地转换到了1维空间。
通过这个示例,你可以学习到如何使用Python编写PCA主成分分析算法,并使用np.mean
、np.std
、np.cov
和np.linalg.eig
np.mean
, np.std
, np .cov
et np.linalg.eig
et d'autres fonctions NumPy sont utilisées pour effectuer des calculs. J'espère que cet article pourra vous aider à mieux comprendre les principes et la mise en œuvre de l'algorithme PCA, et à pouvoir l'appliquer dans vos tâches d'analyse de données et d'apprentissage automatique. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!