Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как обрабатывать пропущенные данные в датасете?

ПрограммированиеМатематика+2
Сослан Табуев
  ·   · 6,4 K
Кандидат физ.-мат. наук, делаю Яндекс, увлекаюсь...  · 3 авг 2021

Это зависит от задачи и от применяемого метода.

Наиболее распространенные методы "табличного" ML -- Catboost и XGBoost -- умеют работать с пропущенными данными "из коробки", см. https://catboost.ai/docs/concepts/algorithm-missing-values-processing.html и https://towardsdatascience.com/xgboost-is-not-black-magic-56ca013144b4

"Под капотом" у них, естественно, не чёрная магия. XGBoost в каждом дереве выбирает, как эффективней интерпретировать пропущенное число, а Catboost просто интерпретирует пропущенные значения как минимум или максимум в столбце в зависимости от настроек. Метод XGBoost выглядит намного круче, но на практике различия достаточно философские, достаточно часто "просто возьми минимум" работает лучше.

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

В любом случае выбранное вами решение -- выкидывать записи с пропущенными фичами из датасета, заменять на минимум/максимум/среднее/ещё что-то, или же поступать более хитро -- хорошо бы перепроверить с помощью кросс-валидации.

1 эксперт согласен
Специалист в области управления и информатики в...  · 22 дек 2021
Мне известны следующие варианты: 1) Отбросить строки с недостающими данными (либо не использовать столбцы с большим кол-вом NaN в качестве параметра для модели). По возможности, разумеется 2) Если влияние параметра с большим... Читать далее
4 эксперта согласны
Согласен.
Увлекаюсь естественными науками и математикой...  · 2 авг 2021
Если значение пропущенного элемента влияет на машинное обучение, содержащую этот элемент запись следует полностью игнорировать, причём на малой выборке это особенно важно, так как всякие неверные данные на малых выборках... Читать далее
2 эксперта согласны
Здравствуйте, есть много способов обработки пропущенных значений, предлагаю начать с самого простого - исключения строк с пропущенными элементами из датасета. Если у вас большой датасет, то процедуру можно запускать смело, но у... Читать далее
2 эксперта согласны
На малой выборке обычно учиться даже по медианным значениям гораздо вреднее игнорирования, так как эти значения... Читать дальше
Первый
аналитик данных  · 25 окт 2021
я попробую написать несколько решений навскидку: 1/ дропнуть те строки, в которых имеется Null / NA / что там у вас. Хорошее решение, если датасет большой, плохое - если маленький (или дикий дисбаланс классов 2/ Заполнить... Читать далее
2 эксперта согласны
Алексей Мс
подтверждает
22 дек 2021
Даже добавить особо нечего. Ответ хорош
преподавание математики, высшей математики, data...  · 3 авг 2021
1. Модельно-независимым способом невозможно восстановить, кажется, это Теорема Шеннона. 2. Следовательно, вы можете только ухудшить количество информации, полученой математически. 3. Применение Закона больших чисел и других... Читать далее