我需要使用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流形上)。我做对了吗?谢谢!
答案 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]
然后您有一个二维空间。