Scikit学习多层神经网络

时间:2016-03-15 10:06:59

标签: machine-learning scikit-learn neural-network

根据Scikit提供的文档学习

hidden_layer_sizes : tuple, length = n_layers - 2, default (100,)

我毫不怀疑。

在我的代码中,我配置的是

MLPClassifier(algorithm='l-bfgs', alpha=1e-5, hidden_layer_sizes=(5, 2), random_state=1)

那么52表示什么?

我的理解是,5是隐藏层的数量,但那么2是什么?

参考 - http://scikit-learn.org/dev/modules/generated/sklearn.neural_network.MLPClassifier.html#

2 个答案:

答案 0 :(得分:8)

来自the link you provided,在参数表中,hidden_layer_sizes行:

  

第i个元素表示隐藏的第i个神经元的数量   层

这意味着您将拥有len(hidden_layer_sizes) 隐藏图层,并且每个隐藏图层i都会有hidden_layer_sizes[i]个神经元。

在您的情况下,(5, 2)表示:

  • 第一个隐藏层有5个神经元
  • 第二隐藏层有2个神经元

因此隐含设置了隐藏层的数量

答案 1 :(得分:0)

我在网上找到的有关 sklearn 中输入,隐藏和输出图层的体系结构和单位的一些细节。

  • 输入单位数将是要素数
  • 对于多类别分类,输出单位的数量将是标签数量
  • 尝试单个隐藏图层,如果不止一个,则每个隐藏图层应具有相同数量的单位
  • 隐藏层中的单位越多越好,尝试输入功能的数量相同,最多可达两倍甚至三倍或四倍