当使用Sklearn的PCA算法时,可以像这样操作。
我得到了输出。
但他们为什么要这样做呢?另外,我怎样才能直接将一个形状为[1,25]的输入转换成[1,10](不用堆叠虚拟数组)?
x_orig = np.random.choice([0,1],(4,25),replace = True)
pca = PCA(n_components=15)
pca.fit_transform(x_orig).shape
我得到了输出。
(4, 4)
我希望它是:
(4,15)
我明白为什么会发生这种情况。在sklearn的文档里(链接),它说(假设他们的“==”是赋值运算符):
n_components == min(n_samples, n_features)
但他们为什么要这样做呢?另外,我怎样才能直接将一个形状为[1,25]的输入转换成[1,10](不用堆叠虚拟数组)?
n_components > n_samples
,那么你将得到无用的噪音(或者可能是零分量)。 - MB-F