#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 в противном случае.
Однако вы можете вывести вероятность, если хотите.