首页 > 代码库 > 降维之pca算法
降维之pca算法
pca算法:
算法原理: pca利用的两个维度之间的关系和协方差成正比,协方差为0时,表示这两个维度无关,如果协方差越大这表明两个维度之间相关性越大,因而降维的时候,
都是找协方差最大的。
1 将XX中的数据进行零均值化,即每一列都减去其均值。2 计算协方差矩阵C=1mXTXC=1mXTX3 求出CC的特征值和特征向量4 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P5 Y=XPY=XP就是降维到k维后的数据。
代码:
# coding=utf-8import matplotlib.pyplot as pltfrom sklearn.decomposition import PCAfrom sklearn.datasets import load_irisdata = load_iris()y = data.targetX = data.dataprint data.feature_namesprint data.data;pca = PCA(n_components=2)reduced_X = pca.fit_transform(X)red_x, red_y = [], []blue_x, blue_y = [], []green_x, green_y = [], []for i in range(len(reduced_X)): if y[i] == 0: red_x.append(reduced_X[i][0]) red_y.append(reduced_X[i][1]) elif y[i] == 1: blue_x.append(reduced_X[i][0]) blue_y.append(reduced_X[i][1]) else: green_x.append(reduced_X[i][0]) green_y.append(reduced_X[i][1])plt.scatter(red_x, red_y, c=‘r‘, marker=‘x‘)plt.scatter(blue_x, blue_y, c=‘b‘, marker=‘D‘)plt.scatter(green_x, green_y, c=‘g‘, marker=‘.‘)plt.show()
降维之pca算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。