PCA降低了神经网络的准确性,也导致过度拟合

时间:2018-01-24 10:15:10

标签: machine-learning scikit-learn neural-network computer-vision pca

我试图为手写数字分类问题实现神经网络。

我需要预测总共42,000个标记图像样本和28,000个未标记图像样本。每张图片为28x28,因此共有784个像素或特征。

首先,我使用sci-kit学习MinMaxScaler并训练我的神经网络来规范化数据样本。它有9个隐藏层和590个隐藏节点,我使用ReLu。我的分数是97.399%,所以我认为这很好。

之后,我认为我应该使用PCA来减少数据的维度并使培训过程更快。

我将数据的维度减少到100-300。

但是,PCA正在降低神经网络的准确性,并导致过度拟合。

使用PCA,我的准确率不到50%。

我尝试更改隐藏层和隐藏节点的数量,但仍然,精度低于50%。

那我该怎么办?

1 个答案:

答案 0 :(得分:1)

是的,它不起作用,因为缩小的图像分辨率很差(没有用于预测的有用/好的功能)。

  • 虽然PCA不会丢弃所有其他像素,但它只会将数据转换为具有重要功能,但将尺寸减小到100-200个特征可能会太低。你不能用它代表一个好的形象。

  • 您必须以保留最大差异的方式选择维度数。因此,在图像的情况下,可以通过可视化图像来表示最大方差。

  • 缩小像素为特征的图像中的尺寸,意味着对图像进行下采样。因此,如果您将特征(像素)的数量从784个特征(像素)减少到100-200,那么大多数重要特征可能会消失,导致性能不佳。

  • 尝试在降维后可视化图像,将其与784像素的图像进行比较,您将看到差异。

  • 如果您仍想使用PCA并缩小尺寸,可以将其缩小到可以直观地批准图像的水平,以便算法具有大量功能。

    < / LI>

希望这有帮助!