Практически в любой базе данных, в которой мы хотим делать прогнозы с использованием алгоритмов машинного обучения, найдутся пропущенные значения для некоторых характеристик.
Существует несколько подходов к решению этой проблемы, чтобы исключить строки с пропущенными значениями, пока они не заполнятся средними значениями признаков.
Я хотел бы использовать для несколько более надежного подхода, который в основном будет запускать регрессию (или другой метод), где зависимой переменной (Y) будет каждый из столбцов, которые имеют пропущенные значения, но только со строками таблицы которые содержат все данные и прогнозируют пропущенные значения с помощью этого метода, заполните таблицу таблицей и перейдите к следующему «столбцу» с пропущенными значениями и повторяйте метод, пока все не будет заполнено.
Но это вызывает у меня некоторые сомнения.
Почему любой столбец начинается? Я считаю, что один с наименьшими пропущенными значениями, пока тот, с наибольшим
Есть ли какой-нибудь порог пропущенных значений, который не стоит пытаться завершить? (например, если эта характеристика имеет только 10% заполненных значений, было бы более интересно исключить ее)
Есть ли какая-либо реализация в традиционных пакетах или других методах, устойчивых к отсутствию?
Amelia II
в R это хороший выбор. Или вы можете свернуть свое собственное использованиеstan
.Ответы:
Техника, которую вы описываете, называется вменением последовательными регрессиями или множественным вменением связанными уравнениями. Этот метод был впервые применен Raghunathan (2001) и реализован в хорошо работающем R-пакете
mice
(van Buuren, 2012).В статье Schafer and Graham (2002) хорошо объясняется, почему среднее вменение и списочное удаление (то, что вы называете исключением строки) обычно не являются хорошей альтернативой вышеупомянутым методам. Принципиально среднее вменение не является условным и, таким образом, может смещать вмененные распределения в сторону наблюдаемого среднего значения. Это также сократит дисперсию среди других нежелательных воздействий на вмененное распределение. Кроме того, удаление по списку действительно будет работать только в том случае, если данные полностью отсутствуют случайным образом, например, подбрасыванием монеты. Также это увеличит ошибку выборки, так как размер выборки уменьшается.
Приведенные выше авторы обычно рекомендуют начинать с переменной с наименьшим отсутствующим значением. Кроме того, техника обычно применяется байесовским способом (то есть является продолжением вашего предложения). Переменные посещаются чаще в процедуре вменения, а не только один раз. В частности, каждая переменная дополняется извлечениями из ее условного апостериорного предиктивного распределения, начиная с переменной, содержащей наименьшие пропущенные значения. Как только все переменные в наборе данных были завершены, алгоритм снова запускается с первой переменной, а затем повторяется до сходимости. Авторы показали, что этот алгоритм является гиббсовским, поэтому он обычно сходится к правильному многомерному распределению переменных.
Обычно, потому что существуют некоторые непроверяемые допущения, в частности, отсутствующие случайные данные (т.е., наблюдаются ли данные или нет, зависит только от наблюдаемых данных, а не от ненаблюдаемых значений). Также процедуры могут быть частично несовместимыми, поэтому их называют PIGS (частично несовместимый пробоотборник Гиббса).
На практике байесовское множественное вменение все еще является хорошим способом решения многомерных немонотонных проблем с отсутствующими данными. Кроме того, непараметрические расширения, такие как прогнозирование соответствия среднего значения, помогают ослабить предположения регрессионного моделирования.
Рагхунатан Т.Е., Лепковски Дж., Ван Хоувик Дж. И Соленбергер П. (2001). Многомерный метод для многократного вменения пропущенных значений с использованием последовательности моделей регрессии. Методология исследования, 27 (1), 85–95.
Schafer, JL, & Graham, JW (2002). Недостающие данные: наш взгляд на современное состояние. Психологические методы, 7 (2), 147–177. https://doi.org/10.1037/1082-989X.7.2.147
van Buuren, S. (2012). Гибкое вложение недостающих данных. Бока Ратон: CRC Press.
источник
mice
алгоритм использует либо регрессию, либо прогнозирование среднего значения. Сначала вы дополняете недостающие данные отрисовками из наблюдаемого распределения, а затем последовательно вменяете. После завершения вы повторяете, но с использованием вновь вмененных значений. Новые данные, участвует даЯ не нашел ничего, что решило бы мою проблему, поэтому я написал функцию, которая смешивает некоторые решения для фрейма данных Pandas с отсутствующими числовыми значениями (с fancyimpute) и категориальными (со случайным лесом).
источник
R
функцииmice
Стефом ван Бюреном. Он может быть заинтересован в вашем коде Python и / или указать вам на работу других людей в этом отношении. stefvanbuuren.nlХотя обычно это более сложное занятие, вы можете попробовать и создать распределение максимальной энтропии на основе имеющихся у вас данных.
http://proceedings.mlr.press/v5/huang09a/huang09a.pdf
источник