我是python新秀,最近这些天我正在学习PCA分解,当我使用explained_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_


您也可以用它制作一个数据框。


附言:在应用PCA之前,请确保已标准化输入数据

关于python-3.x - Sklearn PCA分解解释_variance_ratio_,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52268156/

10-12 22:44