sklearn的PCA的降维

概述:PCA是基于方差降维的。
1.对数据进行基变换使其映射在新的基中,例如,原本数据是二维的,进行基变换获得一对新的基,选择一个特征值最大的基,因为特征值表示向量的重要程度。这样二维的数据就能映射到新的基上变成一维的数据。

2.如何选择这个基才能使得数据保留更多的原始信息呢,一种直观的看法是,希望投影后的值尽可能分散,也就是方差最大。
3.如果单纯的让方差最大,那么不同的基一定会相互接近,因为只有那一个方向上方差最大。
4. 可以用协方差确定其相关性,协方差等于0,表示两个字段完全不相关,是相互独立的,为了保证协方差等于0,选择第二个基是与第一个基相互垂直的。因此最终选择的两个方向一定是正交的。

5.基变换的意思是说,对于数据,与一个基做内积运算,结果作为第一个新的坐标分量,再与第二个基作内积预算,结果作为第二个新坐标的分量。

降维目标
将一组N维向量降低为K维(K大于0,小于N),目标是选择K个单位正交基,使原始数据变换到这组基上后,各字段两两协方差等于0,字段的方差尽可能大。
PCA的步骤
在这里插入图片描述
当求出特征向量后,选择特征值大的特征向量单位化,然后降维。

#对鸢尾花数据集进行降维
from sklearn import datasets  
iris=datasets.load_iris()
#导入鸢尾花数据集
iris_x=iris.data 
#导入数据,数据是个矩阵
#knn算法中x是数据,是一个二维数组,横着的是数据个数,列表示数据的东西
y = iris.target
iris_x
from sklearn.decomposition import PCA
pca = PCA(n_components=2,whiten=True,random_state=42)
#降低的维度
#是否写入
x = pca.fit_transform(iris_x,y)
x

猜你喜欢

转载自blog.csdn.net/qq_41302130/article/details/82950873