6 Различных способов компенсации пропущенных значений в наборе данных (подстановка данных с примерами) от W

6 Различных способов компенсации пропущенных значений в наборе данных (подстановка данных с примерами) от W набор

6 различных способов компенсации недостающих значений в наборе данных (импутация данных с примерами)

Популярные стратегии статистического вменения отсутствующих значений в наборе данных.

5 янв.2019 г. · Чтение займет 5 мин..

Многие реальные наборы данных могут содержать пропущенные значения по разным причинам. Они часто кодируются как NaN, пробелы или любые другие заполнители. Обучение модели с набором данных, в котором много пропущенных значений, может существенно повлиять на качество модели машинного обучения. Некоторые алгоритмы, такие как оценщики scikit-learn, предполагают, что все значения являются числовыми и имеют значимое значение..

Один из способов решения этой проблемы — избавиться от наблюдений, в которых отсутствуют данные. Однако вы рискуете потерять точки данных с ценной информацией. Лучшей стратегией было бы вменять недостающие значения. Другими словами, нам нужно вывести эти недостающие значения из существующей части данных. Есть три основных типа недостающих данных:

Отсутствует случайным образом (MCAR) Отсутствует случайным образом (MAR) Отсутствует случайным образом (NMAR)

Однако в этой статье я сосредоточусь на 6 популярных способах вменения данных для наборов перекрестных данных (набор данных временных рядов — это совсем другая история)..

1- Ничего не делать:

Это легко. Вы просто позволяете алгоритму обрабатывать недостающие данные. Некоторые алгоритмы могут учитывать отсутствующие значения и определять наилучшие значения вменения для отсутствующих данных на основе уменьшения потерь при обучении (например, XGBoost). У некоторых других есть возможность просто игнорировать их (например, LightGBM — use_missing = false). Однако другие алгоритмы будут паниковать и выдавать ошибку, жалуясь на отсутствующие значения (например, Scikit learn — LinearRegression). В этом случае вам нужно будет обработать недостающие данные и очистить их, прежде чем передавать их в алгоритм..

Давайте посмотрим, как еще перед обучением приписать пропущенные значения:

2- Расчет с использованием (среднего / медианного) значений:

Это работает путем вычисления среднего / медианного значения не пропущенных значений в столбце, а затем замены отсутствующих значений в каждом столбце отдельно и независимо от других. Его можно использовать только с числовыми данными.

Легко и быстро. Хорошо работает с небольшими наборами числовых данных.

Не учитывает корреляции между функциями. Это работает только на уровне столбца. Будет давать плохие результаты для закодированных категориальных функций (НЕ используйте это для категориальных функций). Не очень точно. Не учитывает неопределенность в расчетах.

3- Вменение с использованием (наиболее частых) или (нулевых / постоянных) значений:

Наиболее частая — это еще одна статистическая стратегия для вменения пропущенных значений и ДА !! Он работает с категориальными функциями (строками или числовыми представлениями), заменяя отсутствующие данные наиболее частыми значениями в каждом столбце..

Хорошо работает с категориальными функциями.

Также не учитываются корреляции между функциями. Это может внести систематическую ошибку в данные..

Нулевое или постоянное вменение — как следует из названия — заменяет отсутствующие значения либо на ноль, либо на любое указанное вами постоянное значение..

4- Расчет с использованием k-NN:

K ближайших соседей — это алгоритм, который используется для простой классификации. Алгоритм использует «сходство характеристик» для прогнозирования значений любых новых точек данных. Это означает, что новой точке присваивается значение в зависимости от того, насколько она похожа на точки в обучающем наборе. Это может быть очень полезно при прогнозировании недостающих значений путем нахождения ближайших соседей k к наблюдению с отсутствующими данными и последующего вменения их на основе не пропущенных значений в окрестности. Давайте посмотрим на пример кода с использованием библиотеки Impyute, которая обеспечивает простой и легкий способ использования KNN для вменения:

Как это работает?

Он создает базовое среднее значение, а затем использует полученный полный список для построения KDTree. Затем он использует полученное KDTree для вычисления ближайших соседей (NN). После того, как он найдет k-NN, он берет их средневзвешенное значение..

Может быть намного более точным, чем методы среднего, медианного или наиболее частого вменения (это зависит от набора данных).

В вычислительном отношении дорого. KNN работает, сохраняя в памяти весь обучающий набор данных. K-NN довольно чувствителен к выбросам в данных (в отличие от SVM)

5- Вменение с использованием многомерного вменения по цепочному уравнению (MICE)

Этот тип вменения работает путем многократного заполнения недостающих данных. Множественные вменения (MI) намного лучше, чем одиночные вменения, поскольку они лучше измеряют неопределенность пропущенных значений. Подход с использованием цепных уравнений также очень гибок и может обрабатывать различные переменные с разными типами данных (т. Е. Непрерывными или двоичными), а также со сложностями, такими как границы или шаблоны пропусков опроса. Для получения дополнительной информации о механике алгоритма вы можете обратиться к исследовательской статье..

6- Импутация с использованием глубокого обучения (Datawig):

Этот метод очень хорошо работает с категориальными и нечисловыми признаками. Это библиотека, которая изучает модели машинного обучения с использованием глубоких нейронных сетей для вменения отсутствующих значений в фрейм данных. Он также поддерживает как CPU, так и GPU для обучения..

Достаточно точный по сравнению с другими методами. Он имеет некоторые функции, которые могут обрабатывать категориальные данные (Feature Encoder). Он поддерживает процессоры и графические процессоры.

Одноколоночное вменение. Может работать довольно медленно с большими наборами данных. Вы должны указать столбцы, содержащие информацию о целевом столбце, который будет рассчитан..

Другие методы вменения:

Вменение стохастической регрессии:

Это очень похоже на регрессионное вменение, которое пытается предсказать пропущенные значения, регрессируя их из других связанных переменных в том же наборе данных плюс некоторая случайная остаточная величина..

Экстраполяция и интерполяция:

Он пытается оценить значения из других наблюдений в диапазоне дискретного набора известных точек данных..

Вменение Hot-Deck:

Работает путем случайного выбора отсутствующего значения из набора связанных и похожих переменных..

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

Похожие статьи