PCA 主成分分析アルゴリズムを Python で記述するにはどうすればよいですか?
PCA (主成分分析) は、データの次元を削減してデータをよりよく理解して分析するために使用される、一般的に使用される教師なし学習アルゴリズムです。この記事では、Python を使用して PCA 主成分分析アルゴリズムを作成する方法を学び、具体的なコード例を示します。
PCA の手順は次のとおりです。
コード例:
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)
上記のコードでは、まず 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
およびその他の NumPy 関数は、計算の実行に使用されます。この記事が、PCA アルゴリズムの原理と実装をより深く理解し、データ分析や機械学習のタスクに適用できるようになることを願っています。
以上がPython で PCA 主成分分析アルゴリズムを記述するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。