标签:2.7 降维 transform 索引 数据 component 矩阵 int 中心
1 import numpy as np 2 # 将二维数据降成1维 3 num = [(2.5, 2.4), (0.5, 0.7), (2.2, 2.9), (1.9, 2.2), (3.1, 3.0), (2.3, 2.7), (2, 1.6), (1, 1.1), (1.5, 1.6), (1.1, 0.9)] 4 num_array = np.array(num) 5 n1_avg, n2_avg = np.mean(num_array[:, 0]), np.mean(num_array[:, 1]) 6 # 1.样本中心化 7 new_num_array = np.array(list(zip(num_array[:, 0] - n1_avg, num_array[:, 1] - n2_avg))) 8 # 2.计算协方差矩阵 9 num_cov = np.cov(new_num_array[:, 0], new_num_array[:, 1]) 10 # 3.特征值分解 11 # a 特征值, b 特征向量 12 a, b = np.linalg.eig(num_cov) 13 # k=1, 取a最大值的索引对应b的特征向量 14 w = b[:, np.argmax(a)] 15 # 4.输出pca降维结果 16 z1_num = new_num_array.dot(w.T) 17 print(z1_num) 18 19 # 使用sklearn中的PCA 20 from sklearn.decomposition import PCA 21 pca = PCA(n_components=1) 22 z2_num = pca.fit_transform(num_array) 23 print(z2_num)
标签:2.7 降维 transform 索引 数据 component 矩阵 int 中心
原文地址:http://www.cnblogs.com/laresh/p/7622130.html