Вопрос или проблема
Как это указано в заголовке, я работаю с набором данных, и в определенном столбце отсутствует около 60% значений. Должен ли я просто удалить этот столбец вместо импутации? Причина заключается в том, что я работаю с набором данных о преступлениях, и это достаточно серьезно, поэтому мы не можем просто заменить значения, это может привести к распространению неправильной информации о описании оружия, или мне стоит просто заменить отсутствующие значения на “неизвестно”? Такой подход также кажется мне приемлемым.
Вам следует проверить, являются ли отсутствующие значения на самом деле случайными или имеют ли они какой-либо шаблон. Если они отсутствуют случайно, то, если признак категориальный, вы могли бы попробовать заменить все отсутствующие значения на строку “na_value” или что-то подобное; если признак числовой, вы могли бы попробовать множественную импутацию (sklearn IterativeImputer в Python или MICE в R).
Однако, поскольку признак теряет 60% своих значений, вы могли бы попробовать удалить этот признак, как вы и сказали. Попробуйте построить модель с признаком и без него, чтобы увидеть, есть ли разница.
Ответ или решение
Когда вы сталкиваетесь с колонкой, в которой пропущено более 60% значений в наборе данных, рекомендуется внимательно рассмотреть несколько аспектов перед принятием решения о том, следует ли удалить эту колонку или попытаться заполнить пропуски.
-
Анализ причин пропусков: Прежде всего, важно понять, почему данные пропущены. Если отсутствующие значения распределены случайно (Missing At Random, MAR) и не связаны с другими переменными в наборе данных, это может означать, что заполнение значений может не исказить результаты. В противном случае, если пропуски имеют систематический характер, это стоит учесть.
-
Категориальные и числовые данные: Если пропущенные значения относятся к категориальной переменной, вы можете рассмотреть возможность замены пропущенных значений на строку вроде "неизвестно" или "другой". Это позволяет сохранить информацию о том, что значение было пропущено, в то время как для числовых переменных можно применить различные методики заполнения (например, среднее, медиана или алгоритмы множественной иммутации, такие как
IterativeImputer
в Python). -
Риск и серьезность данных: В вашем случае, учитывая контекст работы с данными о преступлениях, правильность данных, особенно касающихся описаний оружия, имеет большой вес. Неправильная иммутация может предоставить неверную информацию, что делает заполнение пропусков нежелательным. В таких серьезных случаях лучше проявить осторожность.
-
Удаление колонки: Если 60% значений отсутствуют, это может указывать на то, что переменная не несет значительной информации. Удаление колонки — это разумный шаг. После удаления вы можете сравнить модели, как с этой переменной, так и без неё, чтобы убедиться, что отсутствие данной переменной не негативно влияет на качество модели.
-
Проверка результатов: В конечном итоге, после выполнения этих шагов, вам следует провести тестирование и валидацию модели. Это поможет вам убедиться, что выбранный вами подход позволяет достигать оптимальных результатов в контексте вашей задачи.
Таким образом, в вашем случае, с учетом важности и серьезности данных, рекомендуется удалить колонку с более чем 60% пропущенных значений, поскольку это обеспечит дальнейшую точность и достоверность аналитики.