我是python新秀,这些天我正在学习PCA分解,当我使用explainary_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
......
谢谢!
答案 0 :(得分:0)
由于您尚未提及satisfaction_level
是什么,因此我认为它是您数据集中的一个功能。此外,我假设您期望使用明智的方差值。
PCA具有名为n_components
的参数,该参数指示要在已传送空间中保留的组件数。 PCA用于降维。因此n_components
必须少于您拥有的特征数。
PCA将通过旋转特征以获得最大方差来进行降维。 PCA中的每个特征将彼此正交。因此,您将无法看到与原始数据集中相同的要素值。
PCA中的功能将被转换以获得高方差。方差越大,保留的信息百分比就越高。
explained_variance_ratio_
是由每个选定组件解释的方差百分比。第一个成分将具有较高的方差,最后一个成分将具有最小的方差。百分比值按降序排序
因此,如果要获取转换后的功能(最重要的功能),请执行此操作
pca_features = my_pca.components_
您也可以用它制作一个数据框。
P.S:在应用PCA之前,请确保已标准化输入数据