1

我目前正在处理具有给定类标签 0 和 1 的分类任务。为此,我使用 ScikitLearnMLPClassifier为每个训练示例提供 0 或 1 的输出。但是,我找不到任何文档,MLPClassifier 的输出层到底在做什么(哪个激活函数?编码?)。

由于只有一个类的输出,我假设使用了 One-hot_encoding 之类的东西。这个假设正确吗?是否有任何文档可以解决这个问题MLPClassifier

4

2 回答 2

3

out_activation_属性将为您提供 MLPClassifier 的输出层中使用的激活类型。

从文档:

out_activation_ : string 输出激活函数的名称。

参数只是设置隐藏层的activation激活函数。

activation : {'identity', 'logistic', 'tanh', 'relu'}, default 'relu' 隐藏层的激活函数。

输出层是在这段代码内部决定的。

# Output for regression
if not is_classifier(self):
    self.out_activation_ = 'identity'
# Output for multi class
elif self._label_binarizer.y_type_ == 'multiclass':
    self.out_activation_ = 'softmax'
# Output for binary class and multi-label
else:
    self.out_activation_ = 'logistic'

因此,对于二元分类,它将是logistic,对于多类,它将是softmax

要了解有关这些激活的更多详细信息,请参见此处

于 2019-03-26T05:31:13.683 回答
1

您拥有文档中的大部分信息。MLP 是一个简单的神经网络。它可以使用多个激活函数,默认为relu.

它不使用单热编码,而是需要输入y带有类标签的(目标)向量。

于 2019-03-25T12:40:32.563 回答