具有2个组件的pca输出1个特征

时间:2018-04-25 00:55:24

标签: python numpy scikit-learn pc

我有一个包含10个元素的列表,我选择了5个功能来创建输入并将输入列表转换为数组;然后我用pc的数量= 2:

应用了pca

        idx = {0, 2, 3, 7, 8}
        Input = array([Input[x] for x in idx]).reshape((1, -1)) 
        print (Input.shape) # prints (1, 5)

        pca = PCA(n_components=2).fit(Input) 
        Input = pca.transform(Input) 
        print (Input.shape) #prints (1, 1)

为什么在使用n_components = 2的pca之后我的输入形状是(1,1)而不是(1,2)?

1 个答案:

答案 0 :(得分:1)

是的,这是预期的行为。

根据documentation for PCA

actual n_components = min(n_samples, specified n_components)

此处您有n_samples = 1(正如您在Input.shape中所示),因此PCA返回的实际n_components为1。