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

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

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

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

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

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

Указание способа обработки значений NULL

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

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

Вычисление отсутствующих состояний

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

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

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

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

Ценность Случаи
0 9296
1 9098
Отсутствует 0

Это распределение показывает, что около половины клиентов приобрели велосипед, и половина не имеет. Данный набор данных очень чистый; поэтому в столбце [Покупатель велосипеда] каждое поле имеет значение, а количество значений Missing равно 0. Однако, если в поле "Покупатель велосипедов" имеется значение NULL, службы Analysis Services будут считать такую строку как запись со значением Missing.

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

Замечание

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

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

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

Ценность Случаи Вероятность
0 9296 50.55%
1 9098 49.42%
Отсутствует 0 0,03 %

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

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

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

Замечание

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

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

Замечание

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

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

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

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

StateProbability = (NodePriorProbability)* (StateSupport + 1) / (NodeSupport + TotalStates)

Кроме того, в SQL Server 2014 Analysis Services (SSAS) алгоритм дерева принятия решений обеспечивает дополнительную корректировку, которая помогает алгоритму компенсировать наличие фильтров в модели, что может привести к исключению многих состояний во время обучения.

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

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

StateProbability = 0.0, если это состояние имеет 0 поддержки в наборе обучения

ИНАЧЕ ВероятностьСостояния = (ПриоритетнаяВероятностьУзла)* (ПоддержкаСостояния + 1) / (ПоддержкаУзла + ОбщееКоличествоСостоянийСНенулевойПоддержкой)

Чистый эффект этой корректировки заключается в поддержании стабильности дерева.

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

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

См. также

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