Подстановка значений NULL
Слишком большое количество отсутствующих значений может отрицательно сказаться на качестве модели машинного обучения. Подстановка — это метод заполнения отсутствующих значений, известных как значения NULL. Причин, по которым данные могут отсутствовать, может быть много: ошибка в базе данных, пользователь не заполнил часть формы, или, возможно, вы начали собирать новые данные и не указали новую точку данных в старых записях в наборе данных.
Важно понимать, как подстановка значений может повлиять на данные. При подстановке значений сохраняется прогнозная сила строки или столбца, но она также может привести к созданию закономерностей, которых раньше не было, или добавить шум к уже существующим закономерностям. Это снижает достоверность данных.
Вы можете пересмотреть свои методы сбора данных, чтобы обеспечить их полноту, и при необходимости внедрить новые методы. Если требуется сохранить представление пустого значения, заполните значения NULL такими значениями, как «Другое» или «Неизвестно».
Подстановка нулевых значений при автоматической предварительной обработке
В Qlik AutoML при автоматической предварительной обработке данных используется подстановка нулевых значений с целью подготовки набора данных к обучению. В ходе автоматической предварительной обработки данных значения NULL обрабатываются путем исключения столбцов, в которых отсутствует более 50 процентов значений, и путем подстановки отсутствующих значений. Вместо отсутствующих значений в категориальных признаках подставляется значение «другое», а вместо отсутствующих значений в числовых признаках подставляется среднее значение.
При использовании автоматически созданных признаков и обучения с учетом времени необходимо учитывать дополнительные аспекты.
Для получения дополнительной информации о предварительной обработке см. раздел Автоматическая подготовка и преобразование данных.
Автоматически созданные признаки
При использовании автоматического создания признаков AutoML автоматически создает новые признаки на основе существующих родительских признаков. Для автоматически созданных признаков подстановка нулевых значений выполняется следующим образом:
-
Если в обучение включены автоматически созданные признаки даты, процесс подстановки нулевых значений для них осуществляется так же, как для числовых признаков.
-
Если вместо этого используются родительские признаки даты, процесс подстановки нулевых значений осуществляется так же, как для категориальных признаков.
-
Для категориальных признаков, которые обрабатываются как произвольный текст, подстановка нулевых значений осуществляется так же, как для категориальных признаков.
Обучение с учетом времени
Если включено обучение с учетом времени, подстановка нулевых значений выполняется следующим образом:
-
Любые строки в наборе данных для обучения, имеющие нулевое значение для выбранного индекса даты, отбрасываются во время предварительной обработки. Эти строки не используются для обучения моделей.
-
Для числовых признаков подстановка нулевых значений выполняется методом линейной интерполяции. Линейная интерполяция также используется для автоматически созданных признаков даты.
-
Для категориальных признаков процесс подстановки нулевых значений осуществляется так же, как при обучении без учета времени.
-
Если используются признаки даты без автоматического создания признаков, процесс подстановки нулевых значений осуществляется так же, как для категориальных признаков.
-
Для категориальных признаков, которые обрабатываются как произвольный текст, подстановка нулевых значений осуществляется так же, как для категориальных признаков.
Для получения дополнительной информации об обучении с учетом времени см. раздел Создание моделей с учетом времени.
Как происходит подстановка
Для подстановки значений NULL обычно используются следующие методы.
Числовые значения
Хорошим вариантом подстановки по умолчанию является среднее значение. Если отсутствующие значения распределены равномерно, это похоже на добавление веса в центр качелей, при этом дополнительный вес не влияет ни на одну из сторон. Однако всегда следует учитывать, что именно может представлять это значение. Например, если в данных продаж некоторые значения продажной цены являются значениями NULL, связано ли это с ошибкой в базе данных или с тем, что покупатель воспользовался сертификатом в качестве оплаты? Имеет ли смысл использовать 0 или какое-либо другое значение, отличное от среднего?
Категориальные значения
По умолчанию для категориальных значений рекомендуется добавить еще одну категорию с именем «Другое», «Неизвестно» или даже «Отсутствует». Эта категория может показывать дополнительную дисперсию, если отсутствующие значения распределены случайным образом, или увеличивать важность признака, если существует значимая взаимосвязь между отсутствием значения и целевым значением.
Для подстановки также можно использовать среднее значение в виде значения MODE. Как и в случае с числовыми значениями, всегда важно учитывать, что фактически может представлять значение и почему оно может отсутствовать. Если известно, что большинство отсутствующих значений, скорее всего, являются значениями MODE, можно выполнить подстановку с использованием значений MODE. Если значение неизвестно или существует неопределенность относительно него, можно заполнить категориальное значение текстом, который является новым уникальным значением в наборе данных.
Влияние подстановки числовых значений
Числовая подстановка 1 представлена на точечном графике с линией наилучшего соответствия. Числовые значения находятся на оси категорий (x), а целевые значения — на оси значений (y). Кажется, что линия тренда хорошо подогнана, но она учитывает только точки данных с известными значениями x.
В числовой подстановке 2 подставлено среднее значение. Однако отсутствующие значения не кажутся случайными. В результате происходит отклонение линии наилучшего соответствия и добавляется шум, что снижает общую точность модели.
На графике для числовой подстановки 3 показано, как будет выглядеть линия тренда при подстановке среднего значения и случайном распределении отсутствующих значений. Другими словами, когда знание о том, присутствуют ли значения или отсутствуют, не позволяет сделать какие-либо дополнительные выводы. Линия наилучшего соответствия не меняется при случайном распределении отсутствующих значений. Если бы мы подставили 0 вместо среднего значения, линия наилучшего соответствия изменилась бы так же, как и в графике для числовой подстановки 2.
Пример: определение кредитоспособности
Рассмотрим пример из реальной жизни, где x — это годовой доход заемщика, а y — сумма кредита, на которую он может рассчитывать. Предполагается, что чем больше человек зарабатывает, тем больше денег он может взять взаймы. В этом случае мы получим такой же график, как и для числовой подстановки 1, приведенной выше.
Допустим, люди, которые зарабатывают меньше денег, скорее всего, не предоставят данные о своем годовом доходе. В этом случае значение x будет отсутствовать по определенной причине. Подстановка среднего значения для этих значений приведет к искажению результатов модели, как на графике для числовой подстановки 2.
Теперь представьте, что некоторые записи в базе данных были случайно удалены. В записях содержались сведения о том, сколько денег зарабатывают некоторые люди, но в записи заемщика эти сведения не были указаны. Таким образом, значение x является случайным и равно NULL. Эта ситуация показана на графике для числовой подстановки 3 и позволяет безопасно подставить отсутствующее значение.
Еще один вариант подстановки, который следует рассмотреть: что если вместо среднего значения подставить 0? В примере с определением кредитоспособности утверждение о том, что кто-то зарабатывает 0 долларов в год, вероятно, будет неверным. В этом случае модель будет искажена, как на графике для числовой подстановки 2.
Влияние подстановки категориальных значений
В приведенном выше примере с числовыми значениями мы использовали среднее значение для заполнения отсутствующих значений. Простой метод подстановки категориальных значений заключается в использовании значения MODE, которое является наиболее часто встречающимся значением. При подстановке значения MODE возникают такие же проблемы, как и при подстановке среднего значения вместо отсутствующего числового значения.
На приведенной ниже диаграмме видна взаимосвязь между отсутствующими значениями в столбце Missing_1 и целью, при этом значения в столбце Missing_2 распределены случайным образом. Мы видим это, потому что столбец Missing_2 соответствует общему среднему значению цели. Столбец Missing_1 соответствует графику для числовой подстановки 2, а столбец Missing_2 — графику для числовой подстановки 3.
В отличие от примера с числовыми значениями, в данном случае оба столбца Missing_1 и Missing_2 искажают выявленные закономерности. Искажаются только закономерности, выявленные для подмножества данных категории B, которая будет подстановочным значением, если при подстановке будет использоваться значение MODE, так как это самая большая категория.
Искажение взаимосвязи между отдельным значением и целевым значением — не единственный риск при подстановке, но этот риск является одним из наиболее распространенных и легко поддающихся оценке. Другие риски, как правило, просто добавляют шум и снижают точность. К счастью, риск искажения можно значительно уменьшить, отбросив относительно редкие измерения. Часто возникают споры о том, какой именно уровень разреженности следует допускать в столбце или строке, но гораздо реже обсуждается тот факт, что подставленные значения могут исказить данные таким образом, что они перестанут быть репрезентативными для описания того, что они пытаются описать.