不确定sklearn中的PCA

时间:2019-12-09 03:44:36

标签: python scikit-learn pca

我需要使用sklearn进行一些PCA,并且我想确保以正确的方式进行操作。这是我的代码:

from sklearn.decomposition import PCA
pca = PCA(n_components=5)
pca_result = pca.fit_transform(data)

eigenvalues = pca.singular_values_
print(eigenvalues)

x = pca_result[:,0]
y = pca_result[:,1]

数据如下:

[[ -6.4186, -14.3534,  18.1296,  -2.8110,  14.0298],
[ -7.1220, -17.1501,  21.2807,  -3.5025,  16.4489],
[ -8.4652, -18.9316,  25.0303,  -4.1773,  18.5066],
...,
[ -4.7054,   6.1389,   3.5146,  -0.1036,  -0.7332],
[ -5.8533,   9.9087,   4.1178,  -0.5211,  -2.2415],
[ -6.2969,  13.8951,   3.4365,  -0.9207,  -4.2024]]

这些是特征值:[1005.2761 , 853.5491 , 65.058365, 49.994457, 10.277865]。我不确定最后两行。我想绘制在2D空间中投影的数据,该数据似乎弥补了数据中的大部分差异(基本上是对5D数据进行2D绘制,因为它似乎位于2D流形上)。我做对了吗?谢谢!

1 个答案:

答案 0 :(得分:0)

  

主成分分析(PCA)是一种统计过程,该过程使用正交变换将一组可能相关的变量(每个实体具有不同的数值)的观测值转换为一组线性不相关的变量,称为主变量组件

     

这种降维可能是非常有用的步骤   可视化和处理高维数据集,同时   在数据集中保留尽可能多的方差。对于   例如,选择L = 2并仅保留前两个本金   组件通过   数据最分散的高维数据集,所以如果   数据包含可能也最分散的群集,并且   因此,最明显的是要在二维图中绘制出来;   而如果有两个方向遍历数据(或两个原始方向   变量)是随机选择的,群集的散布可能少得多   彼此分开,实际上可能更有可能   基本上彼此重叠,使它们难以区分。

https://en.wikipedia.org/wiki/Principal_component_analysis

因此您需要运行:

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
pca_result = pca.fit_transform(data)

x = pca_result[:,0]
y = pca_result[:,1]

然后您有一个二维空间。