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

Machine learning PCA降低了神经网络的准确性,也导致过度拟合,machine-learning,scikit-learn,neural-network,computer-vision,pca,Machine Learning,Scikit Learn,Neural Network,Computer Vision,Pca,我正在尝试实现一个用于手写数字分类问题的神经网络 我总共有42000个标记图像样本和28000个未标记图像样本需要预测。每个图像为28x28,因此总共有784个像素或特征 因此,首先,我使用sci工具包对数据样本进行规范化,学习MinMaxScaler并训练我的神经网络。它有9个隐藏层和590个隐藏节点,我正在使用ReLu。我的分数是97.399%,所以我觉得很好 在那之后,我认为我应该使用PCA来减少数据的维数,使训练过程更快 我正在将数据的维数减少到100-300 但是PCA降低了神经网络的

我正在尝试实现一个用于手写数字分类问题的神经网络

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

因此,首先,我使用sci工具包对数据样本进行规范化,学习MinMaxScaler并训练我的神经网络。它有9个隐藏层和590个隐藏节点,我正在使用ReLu。我的分数是97.399%,所以我觉得很好

在那之后,我认为我应该使用PCA来减少数据的维数,使训练过程更快

我正在将数据的维数减少到100-300

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

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

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


那我该怎么办呢?

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

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

  • 必须以保留最大差异的方式选择尺寸数。因此,对于图像,最大方差可以通过可视化图像来表示

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

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

  • 如果您仍然希望使用PCA并降低维度,可以将其降低到一个级别,在该级别上,您可以直观地批准图像,以使算法具有大量的功能


希望这有帮助

考虑到您报告的准确性>97%(不含PCA),不清楚您到底在问什么。实际上,我正在尝试使算法更快。有时主成分分析会提高神经网络的精确度,所以我想让它更精确。主成分分析转换不是这样的。即使保留相同数量的组件,也不能保证返回视觉图像。是的,我知道PCA不会丢弃其他像素,它会将数据转换为具有重要特征的数据。但是,100-200个功能仍然太少。你不能用它来代表一个好的形象。必须以保留最大差异的方式选择尺寸数。所以对于图像来说,最大方差可以通过可视化图像来表示。当然,它会。您可以可视化输入特征,因为训练样本是图像。请检查这里的数据集:我不是说可视化输入图像。我说的是可视化pca返回的数据。是的,这是可能的。