Обработка отсутствующих данных в машинном обучении
В реальных (табличных) наборах данных вы часто понимаете, что не все функции будут доступны для всех ваших строк. Научившись справляться с этим явлением, вы все равно сможете использовать свой набор данных, даже если некоторые данные отсутствуют.
Типы недостающих данных
Существует множество причин, которые могут привести к отсутствию данных, например, повреждение данных, отсутствие данных в определенные периоды времени или предвзятость в процессе сбора данных (например, определенные категории респондентов в опросе оставляют поля для ответа пустыми).
Здесь важно различать, появляются ли ваши недостающие данные случайным образом.
Есть три категории сценариев отсутствия данных:
- Полностью отсутствует случайно (MCAR). Вероятность отсутствия данных одинакова для всех возможных точек данных.
- Отсутствует случайно (MAR). Вероятность отсутствия данных не одинакова для всех точек данных, но в пределах известных классов данных вероятность отсутствия данных одинакова. Например, вероятность отсутствия данных может быть одинаковой только в ответах от данной страны.
- Отсутствует не случайно (MNAR). Вероятность отсутствия данных не одинакова для всех точек данных, и нет известной группировки данных, в которой отсутствующие данные равновероятны.
Методы удаления
Первая категория методов обработки недостающих данных включает удаление данных из набора данных. Как правило, это простые методы, направленные на удаление точек данных или столбцов, которые слишком повреждены, чтобы их можно было использовать.
- Удаление строк со слишком большим количеством пропущенных значений столбцов. В сценариях MCAR и MAR это, вероятно, можно сделать без значительного изменения распределения общего набора данных. Однако в сценарии MNAR это может смещать ваш набор данных, поскольку процесс удаления данных будет смещен в сторону точек, созданных в результате процессов, которые приводят к более высокому уровню пропуска данных. Это не обязательно плохо, особенно в ситуациях, когда отсутствует слишком много данных для использования точек, но об этом следует помнить.
- Удаление столбцов со слишком большим количеством пропущенных значений. Некоторые функции могут быть просто низкого качества и иметь нулевые коэффициенты, которые слишком высоки для построения моделей с их помощью. Особенно в условиях производственного машинного обучения часто бывает полезно удалить функции, которые обычно недоступны или имеют низкое качество.
Методы вменения
Другая категория методов поиска недостающих данных включает попытки заполнить или вменять недостающие данные. Обычно это включает в себя обучение моделированию набора данных, чтобы сделать вывод о том, какими должны быть пропущенные значения.
- Постоянное / среднее / медианное вменение. Это простейшие методы вменения, которые в большинстве своем включают вычисление некоторых простых статистических данных по столбцам. Для каждого столбца и, возможно, внутри каждой группы в сценарии MAR вы заменяете отсутствующие значения либо постоянным значением, либо некоторой статистикой столбца по доступным значениям характеристик (например, средним или медианным).
- Вменение регрессии. Более сложный метод вменения данных включает построение прогнозной модели, которая может вывести значения отсутствующих данных. Эти методы являются более мощными и способны понять основную структуру данных, чтобы обеспечить более разумные предположения об отсутствующих данных. Так, например, если у нас есть 5 функций, а 1 отсутствует, мы строим модель, которая предсказывает отсутствие 1 с учетом остальных 5. Одно из недостатков этого метода заключается в том, что он может искусственно укрепить взаимосвязи в ваших данных и произвести «слишком хорошее, чтобы быть правдой », которые просто усиливают предубеждения и корреляции в вашем наборе данных. Следовательно, эти условные значения могут недооценивать дисперсию в вашем наборе данных.
- Множественное вменение. Этот метод представляет собой способ создания более надежных оценок для вмененных значений и может использовать два вышеупомянутых метода. При множественном вменении вы создаете N разных версий вмененного набора данных, а затем объединяете N значений, чтобы получить окончательный набор данных (либо с помощью чего-то простого, например, усреднения, либо более сложного статистического метода). Результаты множественного вменения будут менее предвзятыми, чем результаты одиночного вменения, и лучше представляют дисперсию набора данных.