Отсутствующие значения (службы Analysis Services — интеллектуальный анализ данных)

Применимо к: SQL Server 2019 и более ранних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

Важно!

Интеллектуальный анализ данных не рекомендуется использовать в службах SQL Server 2017 Analysis Services, а в SQL Server 2022 Analysis Services его поддержка прекращена. Документация не обновляется для устаревших и неподдерживаемых функций. Дополнительные сведения см. в статье об обратной совместимости служб Analysis Services.

Правильная обработка отсутствующих значений является важной частью эффективного моделирования. В этом разделе объясняется, что такое отсутствующие значения, а также описаны функции, предоставляемые в SQL Server Analysis Services для работы с отсутствующими значениями при создании структур интеллектуального анализа данных и моделей интеллектуального анализа данных.

Определение отсутствующих значений в интеллектуальном анализе данных

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

Однако имеется много сценариев интеллектуального анализа данных, в которых недостающие значения предоставляют важную информацию. Значение отсутствующего значения в значительной степени зависит от контекста. Например, отсутствующее значение даты в списке счетов-фактур значительно отличается от отсутствующей даты в столбце, указывающем дату найма работника. Как правило, SQL Server Analysis Services рассматривает отсутствующие значения как информативные и корректирует вероятности для включения отсутствующих значений в свои вычисления. Это позволяет обеспечить сбалансированность моделей и не слишком большой объем существующих вариантов.

Таким образом, SQL Server Analysis Services предоставляет два разных механизма для управления отсутствующими значениями и их вычисления. Первый метод заключается в управлении обработкой значений NULL на уровне структуры интеллектуального анализа данных. При использовании второго метода реализация каждого алгоритма имеет свои отличия, но в целом этот метод определяет порядок обработки и подсчета отсутствующих значений в моделях, которые разрешают значения NULL.

Задание обработки значений NULL

В источнике данных отсутствующие значения могут быть представлены различными способами: как значения NULL, пустые ячейки в электронной таблице, как значение с кодом N/A или другим кодом либо как искусственное значение, например 9999. Однако для целей интеллектуального анализа данных отсутствующими считаются только значения NULL. Если данные содержат значения заполнителя вместо значений NULL, они могут повлиять на результаты модели, так что их необходимо по возможности заменить значениями NULL или ввести правильные значения. Предусмотрен набор средств, которые могут использоваться для логического вывода и заполнения требуемых значений, например преобразование «Уточняющий запрос» или задача «Профайлер данных» в службах SQL Server Integration Services, а также средство «Заполнение по примеру», предоставляемое в надстройках интеллектуального анализа данных для Excel.

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

Расчет отсутствующего состояния

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

При создании модели интеллектуального анализа данных для всех дискретных столбцов модели автоматически добавляется состояние Missing . Например, если входной столбец для представления пола [Gender] содержит два возможных значения, Male (мужской) и Female (женский), то автоматически добавляется третье значение для представления значения Missing , а гистограмма, показывающая распределение всех значений для этого столбца, всегда включает данные о количестве вариантов со значениями Missing . Если в столбце Gender отсутствуют недостающие значения, то гистограмма показывает, что состояние Missing обнаружено в 0 вариантах.

Включение состояния Missing по умолчанию имеет смысл, если есть основание полагать, что в данных могут отсутствовать примеры всех возможных значений, но не должно быть так, чтобы модель исключала данную вероятность лишь потому, что в данных нет соответствующего примера. Например, даже если данные о сбыте, относящиеся к какому-то магазину, показали, что все клиенты, приобретавшие определенный продукт, оказались женщинами, то вряд ли следует создавать модель, которая прогнозирует, что данный продукт могут приобретать только женщины. Вместо этого SQL Server Analysis Services добавляет заполнитель для дополнительного неизвестного значения, называемого Missing, в качестве способа размещения возможных других состояний.

Например, в следующей таблице показано распределение значений для узла (All) в модели дерева решений, созданной для занятия «Покупатель велосипеда». В сценарии, рассматриваемом в этом примере, столбец [Bike Buyer] представляет собой прогнозируемый атрибут, где 1 обозначает «Да», а 0 — «Нет».

Значение Случаи
0 9296
1 9098
Missing 0

Это распределение показывает, что приблизительно половина клиентов приобрела велосипед, а другая половина — нет. Этот конкретный набор данных является очень качественным, поэтому для каждого варианта в столбце [Bike Buyer] предусмотрено значение, а количество значений, помеченных как Missing (отсутствует), равно 0. Тем не менее, если в поле [Bike Buyer] в любом случае имеется значение NULL, SQL Server Analysis Services будет учитываться эта строка как вариант с отсутствующим значением.

Если входные данные представляют собой непрерывный столбец, то в данной модели два возможных состояния для атрибута были бы сведены в таблицу: Existing и Missing. Иными словами, столбец либо содержит значение с некоторым числовым типом данных, либо не содержит никакого значения. Для вариантов, в которых значение имеется, в этой модели вычисляется среднее, стандартное отклонение и другие значимые статистические показатели. Для вариантов, в которых значение отсутствует, в этой модели предоставляются данные о количестве значений Missing , а также корректируются прогнозы соответствующим образом. Применяемый метод корректировки прогнозов зависит от алгоритма и рассматривается в следующем разделе.

Примечание

Что касается атрибутов во вложенной таблице, недостающие значения там не являются информативными. Например, если некоторый клиент не приобрел определенный продукт, то во вложенной таблице Products будет отсутствовать строка, соответствующая этому продукту, а в модели интеллектуального анализа данных не появится атрибут, относящийся к отсутствующему продукту. Но если интерес представляют клиенты, которые не приобрели определенные продукты, то можно создать модель, предусматривающую фильтрацию по критерию отсутствия продуктов во вложенной таблице, используя инструкцию NOT EXISTS в фильтре модели. Дополнительные сведения см. в разделе Применение фильтра к модели интеллектуального анализа данных.

Корректировка вероятности для отсутствующих состояний

Помимо подсчета значений, SQL Server Analysis Services вычисляет вероятность любого значения в наборе данных. Это касается и значения Missing . Например, в следующей таблице показана вероятность, относящаяся к вариантам в предыдущем примере.

Значение Случаи Вероятность
0 9296 50.55%
1 9098 49.42%
Missing 0 0.03%

Может показаться странным, что вычисленная вероятность появления значения Missing равна 0,03 %, хотя число таких случаев равно 0. На самом деле такое поведение предусмотрено изначально и позволяет обеспечить разумную обработку моделью неизвестных значений.

Обычно вероятность рассчитывается как количество благоприятных вариантов, деленное на количество всех возможных вариантов. В этом примере алгоритм вычисляет сумму количества вариантов, соответствующих определенному условию ([Bike Buyer] = 1 или [Bike Buyer] = 0), после чего полученное значение делится на общее количество строк. Однако чтобы учесть варианты Missing , к количеству всех возможных вариантов добавляется 1. В результате вероятность неизвестного варианта больше не равна нулю, но составляет очень небольшую величину, которая указывает, что это состояние просто маловероятно, но возможно.

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

Примечание

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

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

Примечание

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

Специальная обработка недостающих значений в моделях дерева принятия решений

В алгоритме дерева принятия решений (Майкрософт) вероятности недостающих значений вычисляются иначе по сравнению с другими алгоритмами. Алгоритм дерева принятия решений не просто прибавляет 1 к общему количеству вариантов, а использует немного другую формулу для корректировки с учетом состояний Missing .

В модели дерева принятия решений вероятность состояния Missing рассчитывается следующим образом:

ВероятностьСостояния = (АприорнаяВероятностьУзла)* (НесущееМножествоСостояния + 1) / (НесущееМножествоУзла + ВсегоСостояний).

Алгоритм дерева принятия решений обеспечивает дополнительную корректировку, которая помогает алгоритму компенсировать наличие фильтров в модели, что может привести к исключению многих состояний во время обучения.

В SQL Server 2017 г., если состояние присутствует во время обучения, но на определенном узле просто не поддерживается, выполняется стандартная корректировка. Однако, если состояние ни разу не обнаружено во время обучения, алгоритм задает его вероятность равной нулю. Эта корректировка применяется не только к состоянию Missing , но и к состояниям, которые существуют в обучающих данных, но имеют нулевое несущее множество в результате фильтрации модели.

Эта дополнительная корректировка приводит к тому, что вступает в силу следующая формула.

StateProbability = 0.0, если это состояние имеет нулевое несущее множество в обучающем наборе

ELSE ВероятностьСостояния = (АприорнаяВероятностьУзла)* (НесущееМножествоСостояния + 1) / (НесущееМножествоУзла + ВсегоСостоянийСНенулевымНесущимМножеством)

Результатом применения этой корректировки является поддержание стабильности дерева.

В следующих разделах приведены дополнительные сведения об обращении с отсутствующими значениями.

Задания Ссылки
Добавление флагов к отдельным столбцам модели для управления обработкой отсутствующих значений Просмотр или изменение флагов модели (интеллектуальный анализ данных)
Установка свойств модели интеллектуального анализа данных для управления обработкой отсутствующих значений Изменение свойств модели интеллектуального анализа данных
Задание флагов модели в расширениях интеллектуального анализа данных Флаги моделирования (расширения интеллектуального анализа данных)
Изменение способа обработки структурой интеллектуального анализа данных отсутствующих значений изменить свойства структуры интеллектуального анализа данных

См. также:

Содержимое модели интеллектуального анализа данных (службы Analysis Services — интеллектуальный анализ данных)
Флаги моделирования (интеллектуальный анализ данных)