如何消除神经网络中的“不必要”值?

时间:2013-09-04 02:02:48

标签: artificial-intelligence neural-network

我的教授让我的班级建立一个神经网络,试图预测乳腺癌是良性还是恶性。要做到这一点,我使用的是Breast Cancer Wisconsin (Diagnostic) Data Set

作为这样做的一个提示我的教授说不是所有30个属性都需要用作输入(有32个,但前2个是ID和诊断),我想问的是:我怎么想的采取这30个输入(根据我将使用多少个神经元创建100个以上的权重)并将它们变为更少的数量?

我已经找到了如何“修剪”神经网络,但我认为这不是我想要的。我不是要消除不必要的神经元,而是要缩小输入本身。

PS:对于任何英语错误,对不起,这不是我的母语。

3 个答案:

答案 0 :(得分:2)

此问题称为feature selection。神经网络与其他分类器大致相同。您可以修剪数据集,同时使用PCA保留最大的差异。更进一步,您可以使用贪婪的方法,通过训练和测试您的网络逐个评估您的功能,并依次排除每个功能。

答案 1 :(得分:2)

feature selection使用神经网络

的技术

将数据集拆分为三组:

  • 用于受监督培训的培训数据
  • 验证数据用于验证神经网络是否能够推广
  • 准确度测试用于测试哪些功能是必需的

步骤:

  1. 在您的培训和验证集上训练网络,就像您通常那样。
  2. 使用第三个数据集测试网络的准确性。
  3. 找到变量,它在上面的精度测试中产生最小的下降(掉落意味着总是输入零作为输入信号)
  4. 使用新选择的功能重新调整您的网络
  5. 继续这样做,要么网络无法训练,要么只留下一个变量。
  6. Here is a paper on the technique

答案 2 :(得分:2)

这是一个正在研究的问题。它被称为特征选择,并且已经有一些技术。一个是Principal Componetns Analysis (PCA),它会降低数据集的维度,使其具有保持最大差异的特征。您可以做的另一件事是查看是否存在高度核心化的变量。如果两个输入高度相关可能意味着它们携带几乎相同的信息,因此可以删除它而不会使分类器的性能恶化。作为第三种可以使用的技术是deep-learning,这种技术试图学习以后用于喂养训练师的功能。有关深度学习和PCA的更多信息,请访问http://deeplearning.stanford.edu/wiki/index.php/Main_Page