Примеры запросов модели нейронной сети

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

В этом разделе объясняется, как создавать запросы для моделей, основанных на алгоритме нейронной сети Майкрософт.

Запросы содержимого

Получение метаданных модели с помощью dmX

Получение метаданных модели из набора строк схемы

Получение входных атрибутов для модели

Получение весов из скрытого слоя

Прогнозирующие запросы

Создание одноэлементного прогнозирования

Поиск сведений о модели нейронной сети

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

Пример запроса 1. Получение метаданных модели с помощью dmX

Следующий запрос возвращает некоторые основные метаданные о модели, созданной с помощью алгоритма нейронной сети Майкрософт. В модели нейронной сети родительский узел модели содержит только имя модели, имя базы данных, в которой хранится модель, и количество дочерних узлов. Однако узел маргинальной статистики (NODE_TYPE = 24) предоставляет как базовые метаданные, так и некоторые производные статистические данные о входных столбцах, используемых в модели.

Следующий пример запроса основан на модели анализа данных, созданной в руководстве по промежуточному анализу данных с именем Call Center Default NN. Модель использует данные из центра обработки вызовов для изучения возможных корреляций между персоналом и количеством звонков, заказов и проблем. Инструкция DMX извлекает данные из пограничного узла статистики модели нейронной сети. Запрос включает ключевое слово FLATTENED, так как статистика входных атрибутов, интересующая вас, хранится в вложенной таблице NODE_DISTRIBUTION. Однако если поставщик запросов поддерживает иерархические наборы строк, вам не нужно использовать ключевое слово FLATTENED.

SELECT FLATTENED MODEL_CATALOG, MODEL_NAME,   
(    SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE,  
     [SUPPORT], [PROBABILITY], VALUETYPE   
     FROM NODE_DISTRIBUTION  
) AS t  
FROM [Call Center Default NN].CONTENT  
WHERE NODE_TYPE = 24  

Замечание

Необходимо заключить имена столбцов [SUPPORT] и [PROBABILITY], вложенных в таблицу, в квадратные скобки, чтобы отличить их от зарезервированных ключевых слов того же названия.

Пример результатов:

Каталог моделей MODEL_NAME t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.ПОДДЕРЖКА t.ВЕРОЯТНОСТЬ t.VALUETYPE
Adventure Works DW Multidimensional 2012 Центр обработки вызовов NN Среднее время на задачу Отсутствует 0 0 1
Adventure Works DW Multidimensional 2012 Колл-центр NN Среднее время на задачу < 64.7094100096 11 0.407407407 5

Для определения того, что означают столбцы в наборе строк схемы в контексте модели нейронной сети, см. в разделе "Содержимое модели интеллектуального анализа данных для нейронных сетей" (службы Analysis Services — интеллектуальный анализ данных).

Пример запроса 2. Получение метаданных модели из набора строк схемы

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

SELECT MODEL_NAME, DATE_CREATED, LAST_PROCESSED, PREDICTION_ENTITY, MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Call Center Default NN'  

Пример результатов:

MODEL_NAME Центр вызовов по умолчанию NN
ДАТА_СОЗДАНИЯ 1.10.2008 5:07:38 PM
ПОСЛЕДНИЙ_ОБРАБОТАННЫЙ 1.10.2008 17:24:02
Предсказание_Сущности Среднее время для задачи

Уровень обслуживания

Количество заказов
ПАРАМЕТРЫ_ДОБЫЧИ HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=0,

MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255,

MAXIMUM_STATES=100, SAMPLE_SIZE=10000, HIDDEN_NODE_RATIO=4

Пример запроса 3. Получение входных атрибутов для модели

Вы можете получить пары входных атрибутов-значений, которые использовались для создания модели, запрашивая дочерние узлы (NODE_TYPE = 20) входного слоя (NODE_TYPE = 18). Следующий запрос возвращает список входных атрибутов из описаний узла.

SELECT NODE_DESCRIPTION  
FROM [Call Center Default NN].CONTENT  
WHERE NODE_TYPE = 2  

Пример результатов:

ОПИСАНИЕ_УЗЛА
Среднее время на задачу=64,7094100096 - 77,4002099712
День недели=Фри.
Операторы уровня 1

Здесь показаны только несколько репрезентативных строк из результатов. Однако можно увидеть, что NODE_DESCRIPTION предоставляет немного разные сведения в зависимости от типа данных входного атрибута.

  • Если атрибут является дискретным или дискретизованным значением, возвращается атрибут и его значение или дискретизованный диапазон.

  • Если атрибут является непрерывным числовым типом данных, NODE_DESCRIPTION содержит только имя атрибута. Однако можно получить вложенную таблицу NODE_DISTRIBUTION, чтобы получить среднее значение, или вернуть NODE_RULE, чтобы получить минимальные и максимальные значения числового диапазона.

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

SELECT FLATTENED   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE  
FROM NODE_DISTRIBUTION) as t  
FROM [Call Center Default NN -- Predict Service and Orders].CONTENT  
WHERE NODE_TYPE = 21  

Пример результатов:

t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE
Среднее время на задачу 64.7094100096 - 77.4002099712
День недели Пт.
Операторы уровня 1 3.2962962962963

Минимальные и максимальные значения диапазона хранятся в столбце NODE_RULE и представляются в виде фрагмента XML, как показано в следующем примере:

<NormContinuous field="Level 1 Operators">    
  <LinearNorm orig="2.83967303681711" norm="-1" />    
  <LinearNorm orig="3.75291955577548" norm="1" />    
</NormContinuous>    

Пример запроса 4. Получение весов из скрытого слоя

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

В следующем запросе показано, как получить коэффициенты, хранящиеся под определенным узлом скрытого слоя. Скрытый слой состоит из узла организатора (NODE_TYPE = 19), который содержит только метаданные и несколько дочерних узлов (NODE_TYPE = 22), которые содержат коэффициенты для различных сочетаний атрибутов и значений. Этот запрос возвращает только узлы коэффициента.

SELECT FLATTENED TOP 1 NODE_UNIQUE_NAME,   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, VALUETYPE  
FROM NODE_DISTRIBUTION) as t  
FROM  [Call Center Default NN -- Predict Service and Orders].CONTENT  
WHERE NODE_TYPE = 22  
AND [PARENT_UNIQUE_NAME] = '40000000200000000' FROM [Call Center Default NN].CONTENT  

Пример результатов:

УЗЕЛ_УНИКАЛЬНОЕ_ИМЯ t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.VALUETYPE
70000000200000000 6000000000000000a -0.178616518 7
70000000200000000 6000000000000000b -0.267561918 7
70000000200000000 6000000000000000c 0.11069497 7
70000000200000000 6000000000000000d 0.123757712 7
70000000200000000 6000000000000000e 0.294565343 7
70000000200000000 6000000000000000f 0.22245318 7
70000000200000000 0.188805045 7

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

  • Уникальные имена узлов в скрытом слое всегда начинаются с 7000000000.

  • Уникальные имена узлов в входном слое всегда начинаются с 600000000.

Таким образом, эти результаты говорят вам, что узел, обозначаемый идентификатором 70000000200000000 имел шесть разных коэффициентов (VALUETYPE = 7), переданных в него. Значения коэффициентов находятся в столбце ATTRIBUTE_VALUE. Вы можете определить, какой входной атрибут является коэффициентом, используя идентификатор узла в столбце ATTRIBUTE_NAME. Например, идентификатор узла 6000000000000000a ссылается на входной атрибут и значение Day of Week = 'Tue.'. Вы можете использовать идентификатор узла для создания запроса или перейти к узлу с помощью средства просмотра дерева содержимого Microsoft Generic.

Аналогичным образом, если запрашивать таблицу NODE_DISTRIBUTION узлов в выходном слое (NODE_TYPE = 23), можно увидеть коэффициенты для каждого выходного значения. Однако в выходном слое указатели ссылаются обратно на узлы скрытого слоя. Дополнительную информацию см. в разделе "Содержимое модели интеллектуального анализа данных для моделей нейронных сетей" (службы Analysis Services — интеллектуальный анализ данных).

Использование модели нейронной сети для прогнозирования

Алгоритм нейронной сети Майкрософт поддерживает как классификацию, так и регрессию. Функции прогнозирования можно использовать с этими моделями для предоставления новых данных и создания одноэлементных или пакетных прогнозов.

Пример запроса 5. Создание одноэлементного прогнозирования

Самый простой способ создать запрос прогнозирования на основе модели нейронной сети — использовать построитель прогностических запросов, доступный на вкладке "Прогнозирование интеллектуального анализа данных" конструктора интеллектуального анализа данных в SQL Server Management Studio и SQL Server Data Tools (SSDT). Вы можете изучить модель в средстве просмотра нейронных сетей Майкрософт, чтобы отфильтровать интересующие атрибуты и просмотреть тенденции, а затем перейти на вкладку "Интеллектуальное прогнозирование", чтобы создать запрос и прогнозировать новые значения для этих тенденций.

Например, можно просмотреть модель колл-центра, чтобы увидеть корреляции между объемами заказов и другими атрибутами. Для этого откройте модель в средстве просмотра и в поле "Входные данные" выберите <"Все>". Затем для выходных данных выберите "Число заказов". Для значения 1 выберите диапазон, представляющий большинство заказов, и для значения 2 выберите диапазон, представляющий наименьшие заказы. Затем вы можете сразу просмотреть все атрибуты, которые модель сопоставляет с объемом заказа.

Просматривая результаты в средстве просмотра, вы обнаружите, что определенные дни недели имеют низкие объемы заказов, и что увеличение числа операторов, кажется, связано с более высокими продажами. Затем можно использовать прогнозирующий запрос на модели, чтобы проверить гипотетическую ситуацию "что, если" и задать вопрос, увеличит ли увеличение числа операторов уровня 2 в день с малым объемом заказов. Для этого создайте запрос, например следующий:

SELECT Predict([Call Center Default NN].[Number of Orders]) AS [Predicted Orders],  
PredictProbability([Call Center Default NN].[Number of Orders]) AS [Probability]  
FROM [Call Center Default NN]  
NATURAL PREDICTION JOIN   
(SELECT 'Tue.' AS [Day of Week],  
13 AS [Level 2 Operators]) AS t  

Пример результатов:

Прогнозируемые заказы Вероятность
364 0.9532...

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

Замечание

Add-Ins интеллектуального анализа данных для Excel 2007 предоставляют мастера логистической регрессии, которые помогают ответить на сложные вопросы, например, сколько операторов второго уровня потребуется для улучшения уровня обслуживания до целевого уровня для определенной смены. Надстройки для интеллектуального анализа данных доступны для бесплатной загрузки и включают мастеры, которые основаны на алгоритмах нейронных сетей и/или логистической регрессии. Дополнительные сведения см. на веб-сайте надстроек интеллектуального анализа данных для Office 2007.

Список функций прогнозирования

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

Функция прогнозирования Использование
IsDescendant (DMX) Определяет, является ли один узел дочерним элементом другого узла в графе нейронной сети.
PredictAdjustedProbability (DMX) Возвращает взвешированную вероятность.
PredictHistogram (DMX) Возвращает таблицу значений, связанных с текущим прогнозируемым значением.
PredictVariance (DMX) Возвращает дисперсию прогнозируемого значения.
PredictProbability (DMX) Возвращает вероятность прогнозируемого значения.
PredictStdev (DMX) Возвращает стандартное отклонение прогнозируемого значения.
PredictSupport (DMX) Для нейронных сетей и моделей логистической регрессии возвращает одно значение, представляющее размер обучающего набора для всей модели.

Сведения о синтаксисе конкретных функций см. в справочнике по расширению интеллектуального анализа данных (DMX).

См. также

Алгоритм нейронной сети Майкрософт
Технический справочник по алгоритму нейронной сети Майкрософт
Модель контента интеллектуального анализа данных для моделей нейронных сетей (Analysis Services — интеллектуальный анализ данных)
Урок 5. Создание моделей нейронной сети и логистической регрессии (учебник по интеллектуальному анализу промежуточных данных)