我有一个包含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)?
答案 0 :(得分:1)
是的,这是预期的行为。
actual n_components = min(n_samples, specified n_components)
此处您有n_samples = 1
(正如您在Input.shape
中所示),因此PCA返回的实际n_components
为1。