Заметка
Электронная таблица Excel с вводными данными, используемая в этой главе, “Ensemble.xlsm”, доступна для скачивания на сайте книги . Или же вы можете просто следить за моими действиями по готовой заполненной таблице.
Оценка недостающей величины
В примере РитейлМарта, приведенном в главе 6 и продолженном здесь, вы работаете с набором данных, в котором нет пробелов. Для многих моделей, построенных на транзакционных данных бизнеса, это весьма актуально. Но и вы столкнетесь с ситуацией, когда в какой-нибудь строке данных не окажется элемента.К примеру, если вы строите рекомендательную бизнес-модель для сайта знакомств и включаете в анкету профиля пользователя вопрос, слушает ли он симфоническую хэви-метал группу Evanescence, то резонно ожидать, что часть пользователей оставит эту графу незаполненной.Как же обучать модель, если респондент оставил пустой графу с вопросом об Evanescence?На этот вопрос есть множество ответов. Я перечислю коротко несколько моментов, от которых можно оттолкнуться.• Просто выкиньте строки с недостающими значениями. Если эти значения более или менее случайны, потеря пары строк обучающей последовательности не будет критичной. Хотя как раз в примере с сайтом знакомств эти пропуски, скорее всего, будут носить намеренный, а не случайный характер, так что из-за потери строк набор данных может искаженно отображать реальность.• Если значения столбца – числовые, пропущенные значения можно заменить средними по параметру. Подстановка недостающих значений часто называется imputation (приписывание). Если столбец категорийный, используйте самое популярное значение категории. Опять же, в примере с пристыженными фанатами Evanescence, самым популярным ответом будет «Нет», следовательно, заполнение самым популярным значением – не лучший выход, если человек вдруг решит проверить свой профиль.• Вдобавок к предыдущей опции вы можете вставить рядом еще один столбец, заполненный нулями, пока не появится недостающее значение – в этом случае 0 становится 1. Таким образом вы заполняете пропущенные значения как можете, но рекомендуете модели не очень-то им доверять.• Вместо использования среднего можно обучить модель типа общей линейной модели из предыдущей главы «додумывать» недостающие значения, используя данные из других столбцов. Это, конечно, лишняя работа, но она того стоит, если у вас небольшой набор данных и вы не можете себе позволить потерю точности или целых строк.• К сожалению, последний подход (как и все остальные, упомянутые в этой заметке) отмечен отпечатком излишней самонадеянности. Он подразумевает отношение к приписанным данным как к гражданам высшего класса, если они предсказаны графиком регрессии. Чтобы обойти этот недостаток, те, кто работает со статистикой, часто используют статистические модели и создают несколько графиков регрессии. Пропуск в данных заполняется несколько раз с помощью этих моделей, каждая из которых, в свою очередь, создает свой набор данных. Дальше над вставленными наборами данных можно проводить любой анализ и комбинировать в итоге любые его результаты. Эта операция называется множественной подстановкой (multiple imputation).• Еще один неплохой подход называется подстановкой k ближайших соседей. Используя расстояния (глава 2) или матрицы смежности (глава 5), можно найти k ближайших соседей пропущенного значения. Вычислите среднее взвешенное расстояние (или самую распространенную величину, которая вам нравится) до значений соседей и вставьте его вместо пропуска в данных.