Прежде чем я углублюсь в сам Вопрос, я кратко объясню набор данных и проблему
Набор данных
У меня есть набор данных примерно 20000 записей, и я намерен использовать его для обучения классификатора, который классифицирует данную запись как ' Позитивная ' или ' Отрицательная ». Набор данных также довольно несбалансирован с отношением 5: 1 в пользу «положительной» стороны.
Одна из функций, называемая Цена в наборе данных который содержит денежную стоимость (таким образом, <0) и имеет несколько пропущенных значений (около 200). Когда я проанализировал набор данных, все строки, которые имели NaN для '<strong> Цена ', были классифицированы как ' Отрицательные '.
Проблема
Какова была бы лучшая стратегия для вменения этого столбца? Я предложил следующие опции
- Я мог бы отбросить эти строки, но, поскольку все они из класса Negative , это не кажутся жизнеспособными
Вменяют это значение в экстремальное значение, например -1000,00, поскольку оно является денежным значением. Хотя это может сработать в этой ситуации. Это не сработало бы, если бы значение также принимало отрицательные значения. и я буду sh, чтобы выучить более общий c подход к проблеме.
Вменяем это как обычно с помощью таких состояний, как «среднее» или «ближайший сосед», которые все еще может повлиять на производительность, так как большинство классов являются «Позитивными»
Я мог бы добавить новый столбец с именем «wasCompleted», который имеет значение 1, если было значение для « Цена 'функция или 0, если не было. И все же go с опцией типа (2) или (3). Что по-прежнему не решило бы ни одной проблемы в этих состояниях
Учитывая этот сценарий, что было бы лучшим вариантом для вменения этих значений?