最近用到了sklearn.PCA, 在此记录下最常用的fit 和 transform的细节,以帮助理解和使用PCA。 先赞后看 ,养成习惯! PCA是怎么用SVD计算的 首先是简单介绍下PCA是怎么用SVD计算的,关于PCA的具体公式推导请移步:Bilibili University, 这里我们直接进入正题: 我们有输入数据 X, shape=(n_samples, m_features) 然后...
完整代码如下 from sklearn.datasets import load_irisimport matplotlib.pyplot as pltfrom sklearn.decomposition import PCA #导入PCA算法iris = load_iris()y=iris.targetX=iris.datapca = PCA(n_components=2) #引用PCA算法,参数的含义是降维后的维度数reduced_x=pca.fit_transform(X) #运行算法red_x,red...
inverse_transform能够在不恢复原始数据的情况下,将降维后的数据返回到原本的高维空间,即是说能够实现"保证维度但去掉方差很小特征所带的信息"。利用 inverse_transform的这个性质,我们能够实现噪音过滤。 # 导库 from sklearn.datasets import load_digits from sklearn.decomposition import PCA from matplotlib import ...
x_reduction=pca.transform(x) #进行数据的降维 x_restore=pca.inverse_transform(x_reduction)#进行数据的恢复,不过恢复之后会丢失部分信息,不完全相同 print(x_reduction.shape) print(x.shape) plt.scatter(x[:,0],x[:,1]) plt.scatter(x_restore[:,0],x_restore[:,1]) plt.show() #以实际的手写...
⑤ 重要接口inverse_transform ⑥ 重要接口、参数、属性总结 降维算法 PCA 一、数据维度概念 对于数组和Series来说,维度就是功能shape返回的结果,shape中返回了几个数字,就是几维。索引以外的数据,不分行列的叫一维(此时shape返回唯一的维度上的数据个数),有行列之分叫...
pca=PCA(n_components=2)pca.fit(X)X_reduction=pca.transform(X) 3. PCA在可视化中的应用 虽然降低纬度后会损失信息量,降到二维进行可视化,是一个很好的方法: ##将数据集的的前2个特征绘制散点图:foriinrange(10):plt.scatter(X_reduction[y==i,0],X_reduction[y==i,1],alpha=0.8)plt.show() ...
pca = pca.fit(X) #拟合模型 X_dr = pca.transform(X) #获取新矩阵 X_dr #也可以fit_transform一步到位 #X_dr = PCA(2).fit_transform(X) 可视化 #要将三种鸢尾花的数据分布显示在二维平面坐标系中,对应的两个坐标(两个特征向量)应该是三种鸢尾花降维后的x1和x2,怎样才能取出三种鸢尾花下不同的x1...
首先我们看看使用PCA降维到二维的情况,注意PCA无法使用类别信息来降维,代码如下: from sklearn.decomposition import PCA pca = PCA(n_components=2) pca.fit(X) print pca.explained_variance_ratio_ print pca.explained_variance_ X_new = pca.transform(X) ...
模型训练,PCA是无监督学习,没有标签,所以Y是None fit_transform(self,X,Y=None) 将模型和X进行训练,并对X进行降维处理,返回的是降维后的数据 get_covariance(self) 获得协方差数据 get_params(self,deep=True) 返回的是模型的参数 inverse_transform(self,X) ...
将我的数据拟合成 X = 我的数据后pca = PCA(n_components=1)pca.fit(X)X_pca = pca.fit_transform(X)现在 X_pca 有一个维度。当我按定义执行逆变换时,它不应该返回原始数据,即X,二维数组吗?当我做X_ori = pca.inverse_transform(X_pca)我得到相同的尺寸但不同的数字。此外,如果我同时绘制 X 和 ...