Заполнение пропусков
Когда мы измеряем признаки объектов, некоторые из признаков могут отсутствовать. В этом случае вектор признаков будет содержать пропуски (missing values). Например, если объект, описывает человека по данным анкеты, то человек может предпочесть отдельные поля анкеты не заполнять. При этом большинство моделей машинного обучения требуют для обработки полный вектор признаков без пропусков.
Простейшим приёмом будет просто исключить все объекты, у которых хотя бы один из признаков не указан. Этот приём подходит, если число объектов с пропущенными значениями невелико относительно общего объема выборки. Если же таких объектов много, то нужно выработать схему заполнения пропущенных значений (missing values imputation).
Пропуски в категориальных и бинарных признаках
Для категориальных признаков (и бинарных, если число категорий равно двум) пропуски можно заполнять:
-
максимально частой категорией (в статистике это называется модой распределения, mode imputation)
-
новой категорией [пропуск]
Более продвинутая техника заключается в предсказании пропущенной категории отдельным классификатором, выученным предсказывать значение признака с пропусками по оставшимся известным признакам. Это позволит заполнять значения не константой, а переменной величиной в зависимости от других характеристик объекта. Например, человек мог не указать уровень образования либо потому что он стесняется сказать, что тот низкий, либо потому, что поленился его указывать. Важно дифференцировать эти две причины.
Пропуски в вещественных признаках
Для вещественных признаков пропуски можно заполнять
-
выборочным средним
-
выборочной медианой
Выборочные статистики считаются по присутствующим значениям признака в других объектах. Медиана более предпочтительна, поскольку является мерой оценки центра расп ределения, устойчивой к наличию выбросов (robust to outliers), в отличие от среднего.
Оцените, насколько сильно может сместиться среднее и медиана при внесении одного очень большого или очень малого наблюдения в выборку.
Часто, однако, признаки неправильно заполнять значением "в среднем", поскольку сам факт того, что значение пропущено, может говорить о нестандартности реального значения признака. Например, человек мог не указать величину своей зарплаты, если ему кажется, что она слишком маленькая или, наоборот, слишком большая. Для таких ситуаций нужно предсказывать значение пропущенного признака по другим признакам, решая задачу регрессии. Либо подставлять у словное среднее или условную медиану при условии другого известного признака, связанного с рассматриваемым.
Можно создать дополнительный бинарный признак, характеризующий было ли значение первоначального признака известно заранее или было пропущено с последующим заполнением. Это позволит модели машинного обучения различать эти две ситуации и относиться к автоматически заполненному значению признака с большим недоверием.
При заполнении условной модой/средним/медианой можно также генерировать признак условного стандартного отклонения, чтобы подсказать модели, с каким уровнем неопределённости признак был предсказан.