在 scikit-learn 的 MLPClassifier 中设置输出节点的数量
Setting the number of output nodes in scikit-learn's MLPClassifier
我目前正在试验 scikit-learn 的神经网络功能。有没有办法在其 MLPClassifier 中设置输出节点的数量?我知道您可以通过将其作为参数传递来设置隐藏层的数量,例如:
clf = MLPClassifier(hidden_layer_sizes=(100,)
谢谢
输出节点的数量取决于标签的大小。
User Guide for Neural Networks的例子:
>>> 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]])
sklearn中输入层、隐藏层和输出层的架构和单元描述如下:
- 输入单元的数量将是特征的数量(一般+1节点用于偏置)
- 对于多类分类,输出单元的数量将是标签的数量
- 先尝试单个隐藏层
- 一个隐藏层的单元越多越好,尽量和输入特征的个数一样。
关于隐藏层的一些通用规则如下基于本文:Approximating Number of Hidden layer neurons in Multiple Hidden Layer BPNN Architecture
by Saurabh Karsoliya
.
总的来说:
- 隐藏层神经元的数量是输入层大小的
2/3
(或 70% 到 90%)。
- 隐藏层神经元数应为输入层神经元数的
less than twice
。
- 隐藏层神经元的大小为
between
输入层大小和输出层大小。
请始终牢记,您需要探索和尝试许多不同的组合。此外,使用 GridSearch
您可以找到 "best model and parameters"。例如。您可以执行 GridSearch
以确定隐藏层的 "best"
大小。
我目前正在试验 scikit-learn 的神经网络功能。有没有办法在其 MLPClassifier 中设置输出节点的数量?我知道您可以通过将其作为参数传递来设置隐藏层的数量,例如:
clf = MLPClassifier(hidden_layer_sizes=(100,)
谢谢
输出节点的数量取决于标签的大小。
User Guide for Neural Networks的例子:
>>> 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]])
sklearn中输入层、隐藏层和输出层的架构和单元描述如下:
- 输入单元的数量将是特征的数量(一般+1节点用于偏置)
- 对于多类分类,输出单元的数量将是标签的数量
- 先尝试单个隐藏层
- 一个隐藏层的单元越多越好,尽量和输入特征的个数一样。
关于隐藏层的一些通用规则如下基于本文:Approximating Number of Hidden layer neurons in Multiple Hidden Layer BPNN Architecture
by Saurabh Karsoliya
.
总的来说:
- 隐藏层神经元的数量是输入层大小的
2/3
(或 70% 到 90%)。 - 隐藏层神经元数应为输入层神经元数的
less than twice
。 - 隐藏层神经元的大小为
between
输入层大小和输出层大小。
请始终牢记,您需要探索和尝试许多不同的组合。此外,使用 GridSearch
您可以找到 "best model and parameters"。例如。您可以执行 GridSearch
以确定隐藏层的 "best"
大小。