Sklearn PCA分解explain_variance_ratio_

问题描述 投票:3回答:1

我是一个python新手,这些天我正在学习PCA分解,当我使用explain_variance_ratio_时,我发现默认情况下结果默认排序如下:

Ratio: [9.99067005e-01 8.40367350e-04 4.97276068e-05 2.46358647e-05 1.00120681e-05 8.25213366e-06]

这是我之前的操作:

from sklearn.decomposition import PCA
my_pca = PCA(n_components=7)
new_df = df.drop(labels=["salary","department","left"],axis=1)
low_mat = my_pca.fit_transform(new_df)
print("Ratio:",my_pca.explained_variance_ratio_)

我很困惑这是最重要的组件,所以我想知道你有没有办法让组合和比例一一对应,如下:

Ratio: satisfaction_level 9.99067005e-01
......

谢谢!

python-3.x scikit-learn
1个回答
0
投票

既然你没有提到什么是satisfaction_level,我认为它是你数据集中的一个特性。此外,我假设您期望功能明智的方差值。

PCA有一个名为n_components的参数,它表示要保留在传输空间中的组件数。 PCA用于降低维数。因此,n_components必须少于您拥有的功能。

PCA将通过旋转特征来减少维数,以获得最大的方差。 PCA中的每个特征将彼此正交。因此,您将无法看到原始数据集中显示的相同功能值。

PCA中的功能将被转换为高度变化。方差越大,保留的信息百分比越高。

explained_variance_ratio_是每个选定组件解释的方差百分比。第一个组件将具有更高的方差,最后一个组件将具有最小的方差。百分比值按降序排序

因此,如果您想获得转换后的功能(最重要的功能),请执行此操作

pca_features = my_pca.components_

您也可以从中创建数据帧。

P.S:在应用PCA之前,请确保已对输入数据进行标准化

© www.soinside.com 2019 - 2024. All rights reserved.