Лучшие практики с точки зрения - PullRequest
0 голосов
/ 22 октября 2019

Эти вопросы больше касаются теории, а не конкретной проблемы с моим синтаксисом. У меня есть набор данных, который я не могу раскрыть в данный момент, и ни один из моих кодов. Тем не менее, мой набор данных содержит 199 объектов и одну целевую переменную, которую я должен преобразовать из мультикласса (30 возможных значений) в двоичный (истина или ложь). Я пытаюсь использовать некоторую информацию об этих записях, чтобы предсказать, должна ли запись быть обозначена как истинная или ложная. С точки зрения моего набора функций некоторые столбцы существуют как целочисленные, с плавающей точкой и строковые значения. Однако, независимо от типа данных, многие из них являются номинально-категориальными, а некоторые из них имеют высокую мощность. Например, один столбец содержит список числовых кодов ошибок с более чем 4k уникальных значений. Для справки, если я в горячем виде закодирую весь набор данных (за исключением моей переменной ответа, конечно), я получу более 13 тыс. Столбцов. В настоящее время я изучаю хэширование как способ поддержания размерности на низком уровне, но беспокоюсь о потере информации из-за "коллизий".

Учитывая эту предысторию, мои вопросы следующие:

1. Создает ли преобразование моих меток переменных ответа на основе текста в числовые значения?

В этом примере 1 = «Истина» и 0 = любая причина, указывающая «Ложь». Кажется, что кодирование меток не рекомендуется для функций, потому что это создает порядковый номер. Существует ли та же проблема при преобразовании переменной ответа с использованием

.astype('int')?

, если я просто преобразую их в 'true' или 'false' и оставлю их в виде строк?

2. Должны ли числовые, номинальные, категориальные переменные преобразовываться в тип данных «категория»? В примере с моим столбцом «код ошибки» я не знаю, лучше ли оставить их как ** int тип данных или преобразовать их в категорию . Все ли числовые значения имеют внутреннюю порядковость или просто данные, которые я сам преобразовал с помощью некоторых средств, таких как кодирование меток?

3. Как сбалансировать потерю информации и высокую размерность

Из того, что я читаю, хэширование может привести к потере информации из-за «коллизий», а горячее кодирование может создать проблему «высокой размерности». Есть ли лучшая практика для балансировки этих двух или это конкретный вариант использования? Можно ли протестировать оба метода в рамках какого-либо перекрестного тестирования, которое я мог бы провести?

Если вы сможете поделиться каким-либо пониманием в отношении этих вопросов, я был бы очень признателен и с нетерпением ждем наших обсуждений.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...