在scikit-learn的MLPClassifier中设置输出节点的数量

Xel*_*gar 5 python perceptron neural-network scikit-learn

我目前正在尝试使用scikit-learn的神经网络功能.是否有办法在其MLPClassifier中设置输出节点的数量?我知道您可以通过将其作为参数传递来设置隐藏图层的数量,例如:

clf = MLPClassifier(hidden_layer_sizes=(100,)
Run Code Online (Sandbox Code Playgroud)

谢谢

Deb*_*Deb 6

输出节点的数量取决于标签的大小.

神经网络用户指南的示例:

>>> from sklearn.neural_network import MLPClassifier
>>> X = [[0., 0.], [1., 1.]]
>>> y = [[0, 1], [1, 1]]
>>> clf = MLPClassifier(solver='lbfgs', alpha=1e-5,
...                     hidden_layer_sizes=(15,), random_state=1)
>>> clf.fit(X, y)                         
>>> clf.predict([[1., 2.]])
array([[1, 1]])
Run Code Online (Sandbox Code Playgroud)


mak*_*kis 5

sklearn中输入、隐藏和输出层的架构和单元描述如下:

  • 输入单元的数量将是特征的数量(通常+1个节点用于偏差)
  • 对于多类分类,输出单元的数量将是标签的数量
  • 首先尝试单个隐藏层
  • 隐藏层中的单元越多越好,尝试与输入特征的数量相同。

对一些通用规则隐含层是基于本文的以下情况:Approximating Number of Hidden layer neurons in Multiple Hidden Layer BPNN Architecture通过Saurabh Karsoliya

一般来说:

  • 隐藏层神经元的数量是2/3输入层大小的(或 70% 到 90%)。
  • 隐藏层神经元less than twice的数量应该是输入层神经元的数量。
  • 隐藏层神经元between的大小是输入层大小和输出层大小。

请始终记住,您需要探索并尝试许多不同的组合。此外,使用GridSearch您可以找到“最佳模型和参数”。例如,您可以执行 aGridSearch来确定"best"隐藏层的大小。