#r #machine-learning #one-hot-encoding
#r #машинное обучение #one-hot-encoding
Вопрос:
Почему мы упоминаем -1
в формуле model.matrix
функции из stats
пакета.
training_matrix <-model.matrix(Survived ~.-1, data = training)
В titanic
этом случае используется стандартный набор данных.
Существует также документация, в которой говорится, что одно горячее кодирование может быть выполнено с использованием model.matrix
с -1
обозначением, при условии, что мы правильно объявили коэффициенты и числовые значения в наборе данных.
Код выглядит следующим образом
data_1_matrix <-model.matrix(~.-1, data = data_1)
Что -1
именно это делает?
Ответ №1:
Значение -1 гарантирует, что в вашей матрице модели нет константы. Если бы вы использовали
training_matrix <-model.matrix(Survived ~., data = training)
В матрицу модели включен столбец единиц, и одна категория опущена, чтобы гарантировать, что ваша модель не будет страдать от мультиколлинеарности.
Предпочтительнее решать пользователю: если вы используете константу, в вашей модели будет «ссылочный класс». Если вы этого не сделаете, ссылочного класса не существует.
Комментарии:
1. Вы всегда должны включать перехват. Если вам не нравятся контрасты обработки, используйте разные контрасты, но не исключайте перехват.
2. @Roland Можете ли вы уточнить, что вы подразумеваете под термином intercept здесь?
3. @PraveenKumar-M Конечно, перехват — это параметр, соответствующий столбцу единиц в матрице модели.