Я пытаюсь понять вывод процесса onehotencoding через python и scikit-learn. Я считаю, что я получаю идею одной горячей кодировки. I.e., преобразовать дискретные значения в расширенные векторы признаков со значением «on» для идентификации членства в классификации. Возможно, я понял это неправильно, что меня смущает, но это мое понимание.Интерпретация преобразования OneHotEncoding
Так, из документации здесь: http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html
Я вижу следующий пример:
>>> from sklearn.preprocessing import OneHotEncoder
>>> enc = OneHotEncoder()
>>> enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
OneHotEncoder(categorical_features='all', dtype=<... 'numpy.float64'>,
handle_unknown='error', n_values='auto', sparse=True)
>>> enc.n_values_
array([2, 3, 4])
>>> enc.feature_indices_
array([0, 2, 5, 9])
>>> enc.transform([[0, 1, 1]]).toarray()
array([[ 1., 0., 0., 1., 0., 0., 1., 0., 0.]])
Может кто-то пожалуйста, объясните, как данные [[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]] преобразуется в [[1., 0., 0., 1., 0., 0., 1., 0., 0.]]?
Как используется аргумент преобразования [0, 1, 1]?
Большое спасибо за любую помощь в этом
Jon
Спасибо, что ответил Silvio. Ваши первые 2 абзаца убеждают меня в том, что у меня есть правильная идея об одном горячем кодировании. Я до сих пор не понимаю, как появился результирующий массив. Я не вижу связи между [0, 1, 1] и преобразованием. Является ли преобразование разбитым на группы из 3? Не могли бы вы объяснить, как это получилось? Понятия не имею. –
Да. Он разделен на 3 группы. Первый и второй могут иметь 2 значения, в то время как третий может иметь 4 значения (обратите внимание, что для соответствия мы передаем только 3 ('0',' 2', '3'), а в преобразовании мы передаем' 1' также Итак, первые два элемента объясняют первую особенность, а следующие две объясняют вторую функцию, а последние четыре объясняют третью особенность. – silviomoreto
Еще раз спасибо за добавление дополнительной информации, но я боюсь, что она смущает дальше. где (0, 2, 3) исходит из вашего ответа (или моего первоначального вопроса), и неясно, почему 1-й и 2-й имеют 2 значения, а третий имеет 4 значения. –