Поделиться через


Запросы содержимого (интеллектуальный анализ данных)

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

Это важно

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

Запрос содержимого — это способ извлечения сведений о внутренней статистике и структуре модели интеллектуального анализа данных. Иногда запрос содержимого может предоставлять сведения, недоступные в средстве просмотра. Результаты запроса содержимого также можно использовать для программного извлечения информации для других видов использования.

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

Базовые запросы содержимого

Examples

Работа с результатами запроса

Базовые запросы содержимого

Запросы содержимого можно создавать с помощью построителя прогнозирующих запросов, использовать шаблоны запросов содержимого DMX, предоставляемые в SQL Server Management Studio, или создавать запросы непосредственно в dmX. В отличие от прогнозирующих запросов, не требуется присоединять внешние данные, поэтому запросы содержимого легко записывать.

В этом разделе представлен обзор типов запросов содержимого, которые можно создать.

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

  • Запросы к модели могут возвращать шаблоны, списки атрибутов, формул и т. д.

Запросы к данным структуры и регистра

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

Предупреждение

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

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

Получение всех вариантов для модели
SELECT FROM <model>.CASES

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

Просмотр всех данных, включенных в структуру
SELECT FROM <structure>.CASES

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

Получение диапазона значений
SELECT DISTINCT RangeMin(<column>), RangeMax(<column>) FROM <model>

Используйте эту инструкцию для поиска минимального значения, максимального значения и среднего значения непрерывного столбца или сегментов столбца DISCRETIZED.

Получение уникальных значений
SELECT DISTINCT <column>FROM <model>

Используйте эту инструкцию для получения всех значений столбца DISCRETE. Не используйте эту инструкцию для столбцов DISCRETIZED; вместо этого используйте функции RangeMin и RangeMax .

Найдите случаи, которые использовались для обучения модели или структуры
SELECT FROM <mining structure.CASES WHERE IsTrainingCase()

Используйте эту инструкцию, чтобы получить полный набор данных, которые использовались в обучении модели.

Поиск вариантов, используемых для тестирования модели или структуры
SELECT FROM <mining structure.CASES WHERE IsTestingCase()

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

Детализация из конкретного шаблона модели в базовые данные регистра
SELECT FROM <model>.CASESWHERE IsTrainingCase() AND IsInNode(<node>)

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

Запросы к шаблонам моделей, статистике и атрибутам

Содержимое модели интеллектуального анализа данных полезно для многих целей. С помощью запроса содержимого модели можно:

  • Извлеките формулы или вероятности для создания собственных вычислений.

  • Для модели сопоставления получите правила, используемые для создания прогноза.

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

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

  • Получите формулу регрессии для определенного сегмента линии тренда.

  • Получение практических сведений о клиентах, определенных как часть определенного кластера.

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

Получение шаблонов из модели
SELECT FROM <model>.CONTENT

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

Получение атрибутов, используемых в обученной модели
CALL System.GetModelAttributes(<model>)

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

Получение содержимого, хранящегося в измерении интеллектуального анализа данных
SELECT FROM <model>.DIMENSIONCONTENT

Используйте эту инструкцию для получения данных из измерения интеллектуального анализа данных.

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

При разработке собственного алгоритма подключаемого модуля можно использовать эту инструкцию для проверки содержимого модели для тестирования.

Получение представления PMML модели
SELECT * FROM <model>.PMML

Возвращает XML-документ, представляющий модель в формате PMML. Не все типы моделей поддерживаются.

Примеры

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

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

Пример 1. Запрос содержимого для модели ассоциации

Оператор, SELECT FROM <model>.CONTENTвозвращает различные типы сведений в зависимости от типа запрашиваемой модели. Для модели ассоциации ключевой частью информации является тип узла. Узлы похожи на контейнеры для сведений в содержимом модели. В модели сопоставления узлы, представляющие правила, имеют значение NODE_TYPE 8, а узлы, представляющие наборы элементов, имеют значение NODE_TYPE 7.

Таким образом, следующий запрос возвращает первые 10 наборов элементов, ранжированных по поддержке (порядок по умолчанию).

SELECT TOP 10 NODE_DESCRIPTION, NODE_PROBABILITY, SUPPORT  
FROM <model>.CONTENT WHERE NODE_TYPE = 7  

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

SELECT FLATTENED NODE_UNIQUE_NAME, NODE_DESCRIPTION,  
     (SELECT RIGHT(ATTRIBUTE_NAME, (LEN(ATTRIBUTE_NAME)-LEN('Association model name')))   
FROM NODE_DISTRIBUTION  
WHERE LEN(ATTRIBUTE_NAME)>2  
)   
AS RightSideProduct  
FROM [<Association model name>].CONTENT  
WHERE NODE_TYPE = 8   
ORDER BY NODE_SUPPORT DESC  

Ключевое слово FLATTENED указывает, что вложенный набор строк должен быть преобразован в плоскую таблицу. Атрибут, представляющий продукт справа от правила, содержится в таблице NODE_DISTRIBUTION; Таким образом, мы извлекаем только строку, содержащую имя атрибута, добавив требование, что длина больше 2.

Простая строковая функция используется для удаления имени модели из третьего столбца. (Обычно имя модели префиксируется для значений вложенных столбцов.)

Предложение WHERE указывает, что значение NODE_TYPE должно иметь значение 8, чтобы получить только правила.

Дополнительные примеры см. в примерах запросов модели ассоциаций.

Пример 2. Запрос содержимого для модели деревьев принятия решений

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

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

В запросе прогнозирования добавьте функцию прогнозирования PredictNodeId (DMX), чтобы получить идентификатор связанного узла, как показано в следующем примере:

SELECT  Predict([Bike Buyer]), PredictNodeID([Bike Buyer])   
FROM [<decision tree model name>]  
PREDICTION JOIN   
<input rowset>   

После получения идентификатора узла, содержащего результат, можно получить правило или путь, объясняющий прогноз, создав запрос содержимого, включающий NODE_CAPTION, следующим образом:

SELECT NODE_CAPTION  
FROM [<decision tree model name>]   
WHERE NODE_UNIQUE_NAME= '<node id>'  

Дополнительные примеры см. в примерах запросов модели дерева принятия решений.

Работа с результатами запроса

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

Дополнительные сведения о работе с иерархическими наборами строк см. в спецификации OLEDB в MSDN.

См. также

Общие сведения о инструкции выбора интеллектуального анализа данных
Запросы интеллектуального анализа данных