Sklearn PCA分解解释_variance_ratio _

时间:2018-09-11 03:14:47

标签: python-3.x scikit-learn

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

谢谢!

1 个答案:

答案 0 :(得分:0)

由于您尚未提及satisfaction_level是什么,因此我认为它是您数据集中的一个功能。此外,我假设您期望使用明智的方差值。

PCA具有名为n_components的参数,该参数指示要在已传送空间中保留的组件数。 PCA用于降维。因此n_components必须少于您拥有的特征数。

PCA将通过旋转特征以获得最大方差来进行降维。 PCA中的每个特征将彼此正交。因此,您将无法看到与原始数据集中相同的要素值。

PCA中的功能将被转换以获得高方差。方差越大,保留的信息百分比就越高。

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

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

pca_features = my_pca.components_

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

  

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