Какой тип активации используется MLPClassifier ScikitLearn в выходном слое?

#scikit-learn #neural-network #mlp

#scikit-learn #нейронная сеть #mlp

Вопрос:

В настоящее время я работаю над задачей классификации с заданными метками классов 0 и 1. Для этого я использую ScikitLearn, MLPClassifier предоставляющий вывод либо 0, либо 1 для каждого обучающего примера. Однако я не могу найти никакой документации, что именно выполняет выходной уровень MLPClassifier (какую функцию активации? кодирование?).

Поскольку выводится только один класс, я предполагаю, что используется что-то вроде One-hot_encoding. Верно ли это предположение? Есть ли какая-либо документация, посвященная этому вопросу для MLPClassifier ?

Ответ №1:

out_activation_ атрибут предоставит вам тип активации, используемый в выходном слое вашего MLPClassifier.

Из документации:

out_activation_ : строковое имя выходной функции активации.

activation Параметр просто устанавливает функцию активации скрытого слоя.

активация : {‘identity’, ‘logistic’, ‘tanh’, ‘relu’}, функция активации 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 .

Чтобы узнать больше подробностей об этих активациях, смотрите здесь.

Ответ №2:

Большая часть информации содержится в документах. MLP — это простая нейронная сеть. Он может использовать несколько функций активации, по умолчанию используется relu .

Он не использует одноразовое кодирование, скорее вам нужно ввести y (целевой) вектор с метками классов.

Комментарии:

1. Привет, Джош, спасибо за твой ответ. Я знаю, что могу выбрать relu, identity, tanh и logistic, но мой вопрос касается выходного уровня. Обычно для многослойной классификации вы получаете либо вероятности для каждого класса, либо что-то вроде [100], [001],… . MLPClassifier выдает мне ОДИН результат. Итак, как это обрабатывается в выходном слое? На самом деле это мой вопрос.

Ответ №3:

Насколько я понимаю, последняя функция активации — это логистическая функция, и для вывода устанавливается значение 1, если вероятность > 0,5, и 0 в противном случае.

Однако вы можете вывести вероятность, если хотите.