Запрос модели кластеризации (службы Analysis Services — интеллектуальный анализ данных)
С помощью запроса к модели интеллектуального анализа данных можно получать метаданные о модели, а также, с помощью запросов к содержимому, подробную информацию о закономерностях, обнаруженных при анализе. Кроме того, можно создавать прогнозирующие запросы, которые на основе закономерностей модели создают прогнозы новых данных. Разные типы запросов предоставляют различные виды информации. Например, запрос к содержимому предоставит дополнительные сведения о найденных кластерах, а прогнозирующий запрос определит, к какому кластеру с наибольшей вероятностью будет относиться новая точка данных.
Этот раздел посвящен созданию запросов для моделей, основанных на алгоритме кластеризации (Майкрософт).
Запросы содержимого
Получение метаданных модели с помощью расширений интеллектуального анализа данных
Получение метаданных модели из набора строк схемы
Возврат кластера или списка кластеров
Возврат атрибутов кластера
Возврат профиля кластера с помощью системных хранимых процедур
Поиск отличительных признаков кластеров
Возврат вариантов, принадлежащих кластеру
Прогнозирующие запросы
Прогноз результатов на основании модели кластеризации
Определение принадлежности к кластеру
Возврат всех возможных кластеров, вероятности и расстояния
Поиск сведений о модели
Все модели интеллектуального анализа данных возвращают содержимое, полученное алгоритмом, в соответствии со стандартизованной схемой — набором строк схемы модели интеллектуального анализа данных. Запросы к набору строк схемы модели интеллектуального анализа данных создаются при помощи инструкций расширений интеллектуального анализа данных. В SQL Server 2008 возможны также запросы непосредственно к наборам строк схемы модели интеллектуального анализа данных, как к системным таблицам.
Вернуться в начало
Образец запроса 1. Получение метаданных модели с помощью расширений интеллектуального анализа данных
Следующий запрос возвращает основные метаданные модели кластеризации TM_Clustering, созданной при выполнении заданий из учебника по основам интеллектуального анализа данных. Метаданные, доступные в родительском узле модели кластеризации, включают в себя имя модели, базу данных, где она хранится, и количество дочерних узлов модели. В этом запросе для получения метаданных из родительского узла модели применяется DMX-запрос содержимого.
SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION,
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION
FROM TM_Clustering.CONTENT
WHERE NODE_TYPE = 1
Примечание |
---|
Имя столбца CHILDREN_CARDINALITY следует заключить в квадратные скобки, чтобы отличить его от одноименного зарезервированного ключевого слова языка многомерных выражений. |
Пример результатов:
MODEL_CATALOG |
TM_Clustering |
MODEL_NAME |
Adventure Works DW |
NODE_CAPTION |
Кластерная модель |
NODE_SUPPORT |
12939 |
CHILDREN_CARDINALITY |
10 |
NODE_DESCRIPTION |
Все |
Узнать, что означают эти столбцы в модели кластеризации, можно в разделе Содержимое моделей интеллектуального анализа данных для моделей кластеризации (службы Analysis Services — интеллектуальный анализ данных).
Вернуться в начало
Образец запроса 2. Получение метаданных модели из набора строк схемы
Выполнение запроса набора строк схемы интеллектуального анализа данных позволяет получить те же сведения, которые возвращаются DMX-запросом содержимого. Однако в наборе строк схемы содержатся и дополнительные столбцы. Они содержат параметры, которые использовались при создании модели, дату и время последней обработки модели и сведения о владельце модели.
В следующем запросе возвращаются даты создания, изменения и последней обработки модели, а также параметры кластеризации, которые использовались при построении модели, и размер обучающего набора. Эти сведения полезны для документирования модели и выяснения того, какие параметры кластеризации использовались при создании существующей модели.
SELECT MODEL_NAME, DATE_CREATED, LAST_PROCESSED, PREDICTION_ENTITY, MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Clustering'
Пример результатов:
MODEL_NAME |
TM_Clustering |
DATE_CREATED |
12.10.2007 19:42:51 |
LAST_PROCESSED |
12.10.2007 20:09:54 |
PREDICTION_ENTITY |
Bike Buyer |
MINING_PARAMETERS |
CLUSTER_COUNT=10, CLUSTER_SEED=0, CLUSTERING_METHOD=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, MINIMUM_SUPPORT=1, MODELLING_CARDINALITY=10, SAMPLE_SIZE=50000, STOPPING_TOLERANCE=10 |
Вернуться в начало
Поиск сведений о кластерах
Самые полезные запросы к содержимому моделей кластеризации обычно возвращают сведения, которые можно просмотреть с помощью Средства просмотра кластеров. Сюда входят профили, характеристики и сравнение кластеров. В данном разделе будут приведены примеры запросов, получающих эти сведения.
Образец запроса 3. Возврат кластера или списка кластеров
Поскольку у всех кластеров тип узла — 5, список кластеров легко получить, выбрав из содержимого модели узлы именно этого типа. Возвращенные узлы можно также фильтровать по вероятности или по мощности несущего множества, как показано в данном примере.
SELECT NODE_NAME, NODE_CAPTION ,NODE_SUPPORT, NODE_DESCRIPTION
FROM TM_Clustering.CONTENT
WHERE NODE_TYPE = 5 AND NODE_SUPPORT > 1000
Пример результатов:
NODE_NAME |
002 |
NODE_CAPTION |
Кластер 2 |
NODE_SUPPORT |
1649 |
NODE_DESCRIPTION |
English Education=Graduate Degree , 32 <=Age <=48 , Number Cars Owned=0 , 35964.0771121808 <=Yearly Income <=97407.7163393957 , English Occupation=Professional , Commute Distance=2-5 Miles , Region=North America , Bike Buyer=1 , Number Children At Home=0 , Number Cars Owned=1 , Commute Distance=0-1 Miles , English Education=Bachelors , Total Children=1 , Number Children At Home=2 , English Occupation=Skilled Manual , Marital Status=S , Total Children=0 , House Owner Flag=0 , Gender=F , Total Children=2 , Region=Pacific |
Атрибуты, определяющие кластер, можно найти в двух столбцах набора строк схемы интеллектуального анализа данных.
Столбец NODE_DESCRIPTION содержит список атрибутов с разделителями-запятыми. Обратите внимание, что для целей просмотра список атрибутов можно сократить.
Вложенная таблица в столбце NODE_DISTRIBUTION содержит полный список атрибутов кластера. Если клиент не поддерживает иерархические наборы строк, для возврата вложенной таблицы перед списком выбираемых столбцов нужно добавить ключевое слово FLATTENED. Дополнительные сведения о ключевом слове FLATTENED см. в разделе SELECT FROM <модель>.CONTENT (расширения интеллектуального анализа данных).
Вернуться в начало
Образец запроса 4. Возврат атрибутов кластера
Средство просмотра кластеров отображает профиль каждого кластера со списком атрибутов и их значений. Кроме того, это средство просмотра выводит гистограмму, представляющую распределение значений для всей совокупности значений элементов модели. При просмотре модели с помощью средства просмотра кластеров, гистограмму из условных обозначений интеллектуального анализа можно легко скопировать и вставить ее в электронную таблицу Excel или документ Word. Можно также использовать панель «Характеристики кластеров» средства просмотра кластеров для наглядного сравнения атрибутов различных кластеров.
Однако, если данные для этого приходится получать из нескольких кластеров одновременно, легче создать запрос к модели. Например, при просмотре модели оказалось, что два верхних кластера различаются значениями одного атрибута — Number Cars Owned. Значит, нужно извлечь значения этого атрибута для обоих кластеров.
SELECT TOP 2 NODE_NAME,
(SELECT ATTRIBUTE_VALUE, [PROBABILITY] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Number Cars Owned')
AS t
FROM [TM_Clustering].CONTENT
WHERE NODE_TYPE = 5
Первая строка кода указывает, что требуются только два верхних кластера.
Примечание |
---|
По умолчанию кластеры сортируются по мощности несущего множества. Поэтому столбец NODE_SUPPORT можно исключить. |
Вторая строка кода добавляет инструкцию подзапроса выборки, возвращающую только определенные столбцы из столбца вложенной таблицы. Кроме того, запрос выбирает только строки вложенной таблицы, связанные с целевым атрибутом Number Cars Owned. Для упрощения отображения вложенной таблице присваивается псевдоним.
Примечание |
---|
Имя столбца вложенной таблицы, PROBABILITY, следует заключить в квадратные скобки, так как его имя совпадает с именем зарезервированного ключевого слова из языка многомерных выражений. Пример результатов: |
NODE_NAME |
T.ATTRIBUTE_VALUE |
T.PROBABILITY |
---|---|---|
001 |
2 |
0.829207754 |
001 |
1 |
0.109354156 |
001 |
3 |
0.034481552 |
001 |
4 |
0.013503302 |
001 |
0 |
0.013453236 |
001 |
Отсутствует |
0 |
002 |
0 |
0.576980023 |
002 |
1 |
0.406623939 |
002 |
2 |
0.016380082 |
002 |
3 |
1.60E-05 |
002 |
4 |
0 |
002 |
Отсутствует |
0 |
Вернуться в начало
Образец запроса 5. Возврат профиля кластера с помощью системных хранимых процедур
Для простоты, вместо написания собственных запросов с помощью расширений интеллектуального анализа данных, можно вызывать системные хранимые процедуры, используемые службами Службы Analysis Services для работы с кластерами. Далее приводится пример использования внутренних хранимых процедур для возврата профиля кластера с идентификатором 002.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('TM_Clustering", '002',0.0005
Аналогично можно использовать системные хранимые процедуры для получения характеристик конкретного кластера, как показано в следующем примере.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('TM_Clustering", '009',0.0005
Пример результатов:
Атрибуты |
Значения |
Частота |
Поддержка |
---|---|---|---|
Количество детей в доме |
0 |
0.999999829076798 |
899 |
Регион |
Северная Америка |
0.999852875241508 |
899 |
Всего детей |
0 |
0.993860958572323 |
893 |
Примечание |
---|
Системные хранимые процедуры интеллектуального анализа данных предназначены для внутреннего использования. Корпорация Майкрософт оставляет за собой право изменить их в случае необходимости. Для применения в рабочей среде рекомендуется создавать запросы с помощью расширений интеллектуального анализа данных, объектов AMO или XMLA. |
Вернуться в начало
Образец запроса 6. Поиск отличительных признаков кластеров
Вкладка Сравнение кластеров в Средстве просмотра кластеров позволяет легко сравнивать кластеры между собой, а также варианты из кластера с вариантами, в него не вошедшими (дополнением кластера).
Однако создание запросов для возврата этих сведений — довольно сложный процесс. Может понадобиться дополнительная обработка на клиенте для хранения временных результатов и сравнение результатов нескольких запросов. Для упрощения этой задачи можно использовать системные хранимые процедуры.
Следующий запрос возвращает единственную таблицу, в которой содержатся основные отличительные признаки кластеров с идентификаторами узлов 009 и 007. Для атрибутов с положительными значениями предпочтителен кластер 009, а с отрицательными — кластер 007
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','007',0.0005,true)
Пример результатов:
Атрибуты |
Значения |
Рейтинг |
---|---|---|
Регион |
Северная Америка |
100 |
English Occupation |
Квалифицированный ручной труд |
94.9003803898654 |
Регион |
Европа |
-72.5041051379789 |
English Occupation |
Вручную |
-69.6503163202722 |
Эти же сведения будут представлены на диаграмме в средстве просмотра Сравнение кластеров, если выбрать кластер 9 из первого раскрывающегося списка и кластер 7 из второго. Чтобы сравнить кластер 9 с его дополнением, в качестве значения второго параметра используется пустая строка, как показано в следующем примере.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','',0.0005,true)
Примечание |
---|
Системные хранимые процедуры интеллектуального анализа данных предназначены для внутреннего использования. Корпорация Майкрософт оставляет за собой право изменить их в случае необходимости. Для применения в рабочей среде рекомендуется создавать запросы с помощью расширений интеллектуального анализа данных, объектов AMO или XMLA. |
Вернуться в начало
Образец запроса 7. Возврат вариантов, принадлежащих кластеру
Если в модели интеллектуального анализа данных разрешена детализация, можно создавать запросы, возвращающие подробные сведения об использованных в модели вариантах. Кроме того, если детализация разрешена в структуре интеллектуального анализа данных, с помощью функции StructureColumn (расширения интеллектуального анализа данных) можно включать в запрос столбцы базовой структуры.
В следующем примере возвращаются два столбца, которые использовались в модели, — Age и Region, и один столбец, не использовавшийся в модели, — First Name. Запрос возвращает только варианты, относящиеся к кластеру 1.
SELECT [Age], [Region], StructureColumn('First Name')
FROM [TM_Clustering].CASES
WHERE IsInNode('001')
Чтобы вернуть варианты, принадлежащие к кластеру, нужно знать его идентификатор. Идентификатор кластера можно узнать при просмотре модели с помощью средства просмотра. Чтобы к кластеру было легче обращаться, его можно переименовать, а затем обращаться к нему по имени вместо идентификатора. Однако следует помнить, что имена, присвоенные кластерам, теряются при повторной обработке модели.
Вернуться в начало
Создание прогнозов с помощью модели
Хотя кластеризация обычно используется для описания и понимания данных, реализация Майкрософт позволяет также прогнозировать принадлежность вариантов кластерам и получать значения вероятностей, связанных с этими прогнозами. В данном разделе приводятся примеры создания прогнозирующих запросов для моделей кластеризации. Можно строить прогнозы для нескольких вариантов, указывая табличный источник данных. Можно также вводить новые значения по одному с помощью одноэлементного запроса. Для простоты все примеры в этом разделе используют одноэлементные запросы.
Дополнительные сведения о создании прогнозирующих запросов с помощью расширений интеллектуального анализа данных см. в разделе Создание прогнозирующих запросов расширений интеллектуального анализа данных.
Сведения о построении прогнозирующих запросов с помощью графических интерфейсов среды BI Development Studio см. в разделе Вкладка «Прогнозирование модели интеллектуального анализа данных»: инструкции.
Вернуться в начало
Образец запроса 8. Прогноз результатов на основании модели кластеризации
Если создаваемая модель кластеризации содержит прогнозируемый атрибут, ее можно использовать для прогноза результатов. Однако модель будет обрабатывать прогнозируемый атрибут по-разному, в зависимости от значения, определяющего использование прогнозируемого столбца, — Predict или PredictOnly. Если для использования столбца задано значение Predict, значения этого атрибута добавляются в модель кластеризации и появляются в окончательной модели в виде атрибутов. Однако если для использования столбца задано значение PredictOnly, то его значения не используются для создания кластеров. Вместо этого по завершении модели алгоритм кластеризации создает для атрибута PredictOnly новые значения на основе кластеров, к которым принадлежат варианты.
В следующем запросе в модель добавляется один новый вариант, о котором ничего не известно, кроме пола и возраста. Инструкция SELECT задает пару прогнозируемый атрибут/значение, а функция PredictProbability (расширения интеллектуального анализа данных) позволяет вычислить вероятность целевого результата для варианта с такими значениями атрибутов.
SELECT
[TM_Clustering].[Bike Buyer], PredictProbability([Bike Buyer],1)
FROM
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender]) AS t
Пример результата, когда для использования установлено значение Predict:
Bike Buyer |
Expression |
---|---|
1 |
0.592924735740338 |
Пример результата, когда для использования установлено значение PredictOnly, после повторной обработки модели:
Bike Buyer |
Expression |
---|---|
1 |
0.55843544003102 |
В данном примере различие моделей несущественно. Однако, иногда бывает важно установить разницу между реальным распределением значений и распределением, предсказанным моделью. В этих случаях полезна функция PredictCaseLikelihood (расширения интеллектуального анализа данных), сообщающая, насколько вероятно появление данного случая в рамках данной модели.
Значение, возвращаемое функцией PredictCaseLikelihood, является вероятностью, поэтому оно всегда находится в интервале от 0 до 1. Значение 0,5 означает равновероятный результат. Поэтому значение, меньшее 0,5, означает, что прогнозируемый вариант маловероятен для данной модели, а значение, большее 0,5, — что он скорее соответствует модели, чем не соответствует.
Например, следующий запрос вернет два значения, характеризующих вероятность появления нового образца. Ненормализованное значение представляет вероятность попадания в текущую модель. При использовании ключевого слова NORMALIZED значение вероятности, возвращаемое функцией, нормализуется делением вероятности попадания в модель на вероятность непопадания.
SELECT
PredictCaseLikelihood(NORMALIZED) AS [NormalizedValue], PredictCaseLikelihood(NONNORMALIZED) AS [NonNormalizedValue]
FROM
[TM_Clustering_PredictOnly]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender]) AS t
Пример результатов:
NormalizedValue |
NonNormalizedValue |
---|---|
5.56438372679893E-11 |
8.65459953145182E-68 |
Обратите внимание, что для выражения результатов используется экспоненциальный формат.
Вернуться в начало
Образец запроса 9. Определение принадлежности к кластеру
В этом примере с помощью функции Cluster (расширения интеллектуального анализа данных) определяется, к какому кластеру вероятнее всего будет принадлежать новый вариант, а с помощью функции ClusterProbability — с какой вероятностью он будет принадлежать к этому кластеру.
SELECT Cluster(), ClusterProbability()
FROM
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender],
'S' AS [Marital Status]) AS t
Пример результатов:
$CLUSTER |
Expression |
---|---|
Кластер 2 |
0.397918596951617 |
Примечание. По умолчанию функция ClusterProbability возвращает вероятность принадлежности к самому вероятному кластеру. Однако с помощью конструкции ClusterProbability('cluster name') можно задать другой кластер. Пользуясь этой конструкцией, имейте в виду, что работа любой прогнозирующей функции не зависит от других результатов. Поэтому вероятность, указанная во втором столбце, может относиться не к тому кластеру, который указан в первом столбце.
Вернуться в начало
Образец запроса 10. Возврат всех возможных кластеров, вероятности и расстояния
В предыдущем примере вероятность была не очень высокой. Чтобы узнать, есть ли более подходящий кластер, можно с помощью функций PredictHistogram и Cluster (расширения интеллектуального анализа данных) вернуть вложенную таблицу, которая будет содержать все возможные кластеры с указанием вероятности принадлежности нового варианта к каждому из этих кластеров. Для большей наглядности иерархический набор строк можно превратить в плоскую таблицу с помощью ключевого слова FLATTENED.
SELECT FLATTENED PredictHistogram(Cluster())
From
[TM_Clustering]
NATURAL PREDICTION JOIN
(SELECT 40 AS [Age],
'F' AS [Gender],
'S' AS [Marital Status])
Expression.$CLUSTER |
Expression.$DISTANCE |
Expression.$PROBABILITY |
---|---|---|
Кластер 2 |
0.602081403048383 |
0.397918596951617 |
Кластер 10 |
0.719691686785675 |
0.280308313214325 |
Кластер 4 |
0.867772590378791 |
0.132227409621209 |
Кластер 5 |
0.931039872200985 |
0.0689601277990149 |
Кластер 3 |
0.942359230072167 |
0.0576407699278328 |
Кластер 6 |
0.958973668972756 |
0.0410263310272437 |
Кластер 7 |
0.979081275926724 |
0.0209187240732763 |
Кластер 1 |
0.999169044818624 |
0.000830955181376364 |
Кластер 9 |
0.999831227795894 |
0.000168772204105754 |
Кластер 8 |
1 |
0 |
По умолчанию результаты сортируются по вероятности. По результатам видно, что кластер 2, хоть его вероятность и не очень высока, все же наиболее подходит для новой точки данных.
Примечание. Дополнительный столбец, $DISTANCE, показывает расстояние от точки данных до кластера. По умолчанию в алгоритме кластеризации Майкрософт применяется масштабируемая максимизация ожидания. Каждой точке данных назначается несколько кластеров, а затем они сортируются по вероятности. Однако если модель кластеризации создавалась с помощью алгоритма К-средних, то каждой точке данных можно назначить только один кластер, а запрос вернет только одну строку. Для интерпретации результатов функции PredictCaseLikelihood (расширения интеллектуального анализа данных) необходимо понимать эту разницу. Дополнительные сведения о различиях между кластеризацией с помощью масштабируемой максимизации ожидания и с помощью К-средних см. в разделе Технический справочник по алгоритму кластеризации (Майкрософт).
Вернуться в начало
Список функций
Все алгоритмы Майкрософт поддерживают общий набор функций. Однако модели, построенные с помощью алгоритма кластеризации Майкрософт, поддерживают дополнительные функции, перечисленные в следующей таблице.
Список функций, общих для всех типов моделей Майкрософт, см. в разделе Справочник по алгоритмам (службы Analysis Services — интеллектуальный анализ данных). Синтаксис специальных функций см. в разделе Справочник по функциям расширений интеллектуального анализа данных.