Вопрос горячего кодирования - концепция и решение моей проблемы (набор данных Kaggle) - PullRequest
0 голосов
/ 02 апреля 2020

Я работаю над упражнением в Kaggle, оно посвящено их модулю для категориальных переменных, в частности, разделу «горячего кодирования»: https://www.kaggle.com/alexisbcook/categorical-variables Я в порядке во всей книге, и есть один Последняя часть, которую я пытаюсь проработать, это дополнительная часть в конце, чтобы применить однокорпусный кодер, чтобы предсказать стоимость продажи дома. Я разработал следующий код`, но в строке, выделенной жирным шрифтом: OH_cols_test = pd.DatFrame (OH_encoder.fit_transform (X_test [low_cardinality_cols]))), я получаю сообщение об ошибке, что вход содержит NaN.

Итак, мой первый вопрос: когда дело доходит до одного - горячее кодирование, не следует ли рассматривать NA просто как любую другую категорию в определенном столбце? И второй вопрос: если я хочу удалить эти NA, каков наиболее эффективный способ? Я пробовал вменение, но похоже, что это работает только для чисел? Может кто-нибудь, пожалуйста, дайте мне знать, где я иду не так здесь? Большое спасибо!

1007 *

1 Ответ

1 голос
/ 02 апреля 2020

Итак, мой первый вопрос: когда дело доходит до одного - горячее кодирование, не следует ли рассматривать NA просто как любую другую категорию в определенном столбце?

NA - это просто отсутствие данных, и поэтому вы можете свободно рассматривать строки с NA как неполные. Вы можете столкнуться с набором данных, в котором NA встречаются в половине строк, и вам потребуется некоторая хитрая разработка функций, чтобы компенсировать это. Подумайте об этом следующим образом: если одна горячая кодировка - это простой способ представления двоичного состояния (например, is_male, salary_is_less_than_100000 и т. Д. 1016 * ...), что означает NaN / null? У тебя на руках немного кота Шредингера. Как правило, вы можете отказаться от NA, если он не влияет на размер вашего набора данных. Объем потери данных, с которым вы готовы справиться, полностью зависит от ситуации (вероятно, это хорошо для практического упражнения).

И второй вопрос: если я хочу удалить эти NA, какова самый эффективный способ? Я пробовал вменение, но похоже, что это работает только для чисел?

Могу ли я предложить это .

...