我是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/