PCA算法的主要步驟是:
(1) 對(duì)向量X進(jìn)行去中心化
(2) 計(jì)算向量X的協(xié)方差矩陣,自由度可以選擇0或1
(3)計(jì)算協(xié)方差矩陣的特征值和特征向量
(4)選取最大的k個(gè)特征值及其特征向量
(5)用X與特征向量相乘
python實(shí)現(xiàn):
from sklearn.datasets import load_iris
import numpy as np
def pca(X, k):
? ? X = X - X.mean(axis=0)
? ? X_cov = np.cov(X.T, ddof = 0)
? ? eigenvalues, eigenvectors = eig(X_cov)
? ? klarge_index = eigenvalues.argsort()[-k:][::-1]
? ? k_eigenvectors = eigenvectors[klarge_index]
? ? return np.dor(X, k_eigenvectors.T)
? ? iris = load_iris()
? ? X = iris.data
? ? k = 2
? ? X_pca = pca(X, k)