Эти вопросы больше касаются теории, а не конкретной проблемы с моим синтаксисом. У меня есть набор данных, который я не могу раскрыть в данный момент, и ни один из моих кодов. Тем не менее, мой набор данных содержит 199 объектов и одну целевую переменную, которую я должен преобразовать из мультикласса (30 возможных значений) в двоичный (истина или ложь). Я пытаюсь использовать некоторую информацию об этих записях, чтобы предсказать, должна ли запись быть обозначена как истинная или ложная. С точки зрения моего набора функций некоторые столбцы существуют как целочисленные, с плавающей точкой и строковые значения. Однако, независимо от типа данных, многие из них являются номинально-категориальными, а некоторые из них имеют высокую мощность. Например, один столбец содержит список числовых кодов ошибок с более чем 4k уникальных значений. Для справки, если я в горячем виде закодирую весь набор данных (за исключением моей переменной ответа, конечно), я получу более 13 тыс. Столбцов. В настоящее время я изучаю хэширование как способ поддержания размерности на низком уровне, но беспокоюсь о потере информации из-за "коллизий".
Учитывая эту предысторию, мои вопросы следующие:
1. Создает ли преобразование моих меток переменных ответа на основе текста в числовые значения?
В этом примере 1 = «Истина» и 0 = любая причина, указывающая «Ложь». Кажется, что кодирование меток не рекомендуется для функций, потому что это создает порядковый номер. Существует ли та же проблема при преобразовании переменной ответа с использованием
.astype('int')?
, если я просто преобразую их в 'true' или 'false' и оставлю их в виде строк?
2. Должны ли числовые, номинальные, категориальные переменные преобразовываться в тип данных «категория»? В примере с моим столбцом «код ошибки» я не знаю, лучше ли оставить их как ** int тип данных или преобразовать их в категорию . Все ли числовые значения имеют внутреннюю порядковость или просто данные, которые я сам преобразовал с помощью некоторых средств, таких как кодирование меток?
3. Как сбалансировать потерю информации и высокую размерность
Из того, что я читаю, хэширование может привести к потере информации из-за «коллизий», а горячее кодирование может создать проблему «высокой размерности». Есть ли лучшая практика для балансировки этих двух или это конкретный вариант использования? Можно ли протестировать оба метода в рамках какого-либо перекрестного тестирования, которое я мог бы провести?
Если вы сможете поделиться каким-либо пониманием в отношении этих вопросов, я был бы очень признателен и с нетерпением ждем наших обсуждений.
Спасибо