我是一个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
......
谢谢!
既然你没有提到什么是satisfaction_level
,我认为它是你数据集中的一个特性。此外,我假设您期望功能明智的方差值。
PCA有一个名为n_components
的参数,它表示要保留在传输空间中的组件数。 PCA用于降低维数。因此,n_components
必须少于您拥有的功能。
PCA将通过旋转特征来减少维数,以获得最大的方差。 PCA中的每个特征将彼此正交。因此,您将无法看到原始数据集中显示的相同功能值。
PCA中的功能将被转换为高度变化。方差越大,保留的信息百分比越高。
explained_variance_ratio_
是每个选定组件解释的方差百分比。第一个组件将具有更高的方差,最后一个组件将具有最小的方差。百分比值按降序排序
因此,如果您想获得转换后的功能(最重要的功能),请执行此操作
pca_features = my_pca.components_
您也可以从中创建数据帧。
P.S:在应用PCA之前,请确保已对输入数据进行标准化