如何解释监督ML中的PCA结果

时间:2018-02-13 08:21:17

标签: python scikit-learn pca supervised-learning

所以我有一个由难度级别注释的700个文本的数据集。每个文本都有150个功能:

    feature_names = ['F1','F2','F3'...] shape (1, 150)
    features_x = ['0.1','0,765', '0.543'...] shape (700, 150)
    correct_answers_y = ['1','2','4'...] shape (1,700)

我想使用PCA找出最具信息性的功能集,例如:

    Component1 = 0,76*F1+0.11*F4-0.22*F7

我该怎么办?来自sklearn用户gide的代码有一些数字作为输出,但我不明白如何解开它们。

    fit_xy = pca.fit(features_x,correct_answers_y)
    array([  4.01783322e-01,   1.98421989e-01,  3.08468655e-01,
     4.28813755e-02, ...])

1 个答案:

答案 0 :(得分:-1)

不确定该数组的来源,但它看起来像explained_variance_explained_variance_ratio_属性的输出。他们就像他们说的那样;解释了方差并解释了与您的数据相比的方差比。通常在进行PCA时,您要定义要保留的最小方差比率。

假设您希望保留数据中至少90%的差异。这里是代码,用于查找您需要多少主要组件(PCA中的n_components参数):

    pca_cumsum = pca.explained_variance_ratio_.cumsum()
    pca_cumsum
    >> np.array([.54, .79, .89, .91, .97, .99, 1])
    np.argmax(pca_cumsum >= 0.9)
    >> 3

正如desertnaut所说;标签将被忽略,因为它未在PCA中使用。