Я думаю, что ваш вопрос недостаточно ясен ...
Во-первых, LabelEncoder
кодирует метки со значениями от 0
до n_classes-1
, в то время как OneHotEncoder
кодирует категориальные целочисленные функции с помощью горячих клавиш.ака схема одного из К.Они разные.
Во-вторых, да OneHotEncoder
кодирует список слов.В определении Википедии написано a one-hot vector is a 1 × N matrix
.Но что такое N
?На самом деле, N
- это размер вашего словарного запаса.
Например, если у вас есть пять слов a, b, c, d, e
.Затем горячо закодируйте их:
a -> [1, 0, 0, 0, 0] # a one-hot 1 x 5 vector
b -> [0, 1, 0, 0, 0] # a one-hot 1 x 5 vector
c -> [0, 0, 1, 0, 0] # a one-hot 1 x 5 vector
d -> [0, 0, 0, 1, 0] # a one-hot 1 x 5 vector
e -> [0, 0, 0, 0, 1] # a one-hot 1 x 5 vector
# total five one-hot 1 x 5 vectors which can be expressed in a 5 x 5 matrix.
В-третьих, на самом деле я не на 100% уверен в том, что вы спрашиваете ...
Наконец, чтобы ответить на ваш обновленный вопрос.Большую часть времени вам следует выбирать кодировку в одну горячую строку или встраивание слов .Причина в том, что векторы, генерируемые LabelEncoder
, слишком похожи, что означает, что между ними нет большой разницы.Поскольку подобный вход более вероятно приведет к подобному выходу.Это затрудняет установку вашей модели.