我在MNIST数据集上应用了PCA,将维度降低到32。然后,为了测试它,我创建了一个简单的分类网络。训练准确率很好:96%
,但另一方面,测试准确率只有2%
。
那么,问题出在哪里呢?
输出:
Epoch 5/560000/60000 [==============================] - 1s 23us/sample - loss: 0.1278 - acc: 0.9626 - val_loss: 11.0141 - val_acc: 0.0202
回答:
首先,您对每个数据集应用了不同的“pca”。训练集的特征向量和特征值可能与测试集不同。
其次,您使用SVD来获取主成分,但这些成分并不是您想要的结果。使用主轴作为投影矩阵,可以获得数据的更好的/压缩表示。