SELECT FROM <модель> PREDICTION JOIN (расширения интеллектуального анализа данных)
Использует модель интеллектуального анализа данных для прогнозирования состояний столбцов внешнего источника данных. Инструкция PREDICTION JOIN производит согласование каждого варианта исходного запроса с моделью.
Синтаксис
SELECT [FLATTENED] [TOP <n>] <select expression list>
FROM <model> | <sub select> [NATURAL] PREDICTION JOIN
<source data query> [ON <join mapping list>]
[WHERE <condition expression>]
[ORDER BY <expression> [DESC|ASC]]
Аргументы
- n
(необязательный аргумент) Целое число, указывающее количество возвращаемых строк.
- select expression list
Разделенный запятыми список идентификаторов столбцов и выражений, производных от модели интеллектуального анализа данных.
- model
Идентификатор модели.
- sub select
Внедренная инструкция SELECT.
- source data query
Исходный запрос.
- join mapping list
(необязательный аргумент) Логическое выражение сравнения столбцов модели со столбцами исходного запроса.
- condition expression
(необязательный аргумент) Условие ограничения значений, возвращаемых из списка столбцов.
- expression
(необязательный аргумент) Выражение, возвращающее скалярное значение.
Замечания
Предложение ON определяет сопоставление столбцов исходного запроса со столбцами модели интеллектуального анализа данных. Такое сопоставление используется для направления столбцов исходного запроса к столбцам модели интеллектуального анализа данных, чтобы эти столбцы можно было использовать в качестве входных при создании прогнозов. Столбцы в списке <join mapping list> соотносятся с помощью знака равенства (=), как показано в следующем примере:
[MiningModel].ColumnA = [source data query].Column1 AND
[MiningModel].ColumnB = [source data query].Column2 AND
...
При связывании вложенной таблицы предложением ON удостоверьтесь, что ключевой столбец связывается с какими-либо неключевыми столбцами, чтобы алгоритм мог корректно идентифицировать вариант, которому принадлежит запись вложенного столбца.
Исходный запрос для прогнозируемого соединения может представлять собой таблицу или одноэлементный запрос.
В списке <select expression list> и выражении <condition expression> можно указывать прогнозирующие функции, не возвращающие табличного выражения.
Инструкция NATURAL PREDICTION JOIN автоматически сопоставляет имена столбцов исходного запроса, совпадающих с именами столбцов модели. При использовании инструкции NATURAL PREDICTION предложение ON указывать не следует. Ключевое слово NATURAL подразумевает, что предложение ON не указывается, а сопоставление столбцов выполняется по имени.
Пример запроса OPENQUERY
Следующий пример показывает способ создания запроса для прогнозирования факта покупки велосипеда человеком в реальном времени, в котором данные не сохраняются, а вместо этого вводятся непосредственно в запрос. Человек в запросе обладает следующими характеристиками:
- Возраст 35 лет
- Владеет домом
- Владеет двумя автомобилями
- Двое детей дома
Используя модель интеллектуального анализа данных TM-дерева принятия решений и известные характеристики субъекта, запрос возвращает логическое значение, описывающее факт покупки велосипеда человеком, и набор табличных значений, запрошенных из функции PredictHistogram, описывающих, как был сделан прогноз.
SELECT
[TM Decision Tree].[Bike Buyer],
PredictHistogram([Bike Buyer])
FROM
[TM Decision Tree]
NATURAL PREDICTION JOIN
(SELECT 35 AS [Age],
'5-10 Miles' AS [Commute Distance],
'1' AS [House Owner Flag],
2 AS [Number Cars Owned],
2 AS [Total Children]) AS t
Пример открытого запроса
Следующий пример показывает способ создания запроса, прогнозирующего факт покупки велосипеда каждым из перечисленных во внешнем наборе данных субъектов. Так как таблица существует в представлении источника данных экземпляра службы Analysis Services, для получения данных запрос использует инструкцию OPENQUERY. Так как таблица отличается от структуры столбцов модели интеллектуального анализа данных, для сопоставления таблицы с моделью используется инструкция ON.
Запрос возвращает список имен и фамилий каждого человека в таблице наряду с логическим столбцом, описывающим вероятность покупки велосипеда каждым человеком, а также величину этой вероятности.
SELECT
t.[LastName],
t.[FirstName],
[TM Decision Tree].[Bike Buyer],
PredictProbability([Bike Buyer])
From
[TM Decision Tree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW],
'SELECT
[LastName],
[FirstName],
[MaritalStatus],
[Gender],
[YearlyIncome],
[TotalChildren],
[NumberChildrenAtHome],
[Education],
[Occupation],
[HouseOwnerFlag],
[NumberCarsOwned]
FROM
[dbo].[ProspectiveBuyer]
') AS t
ON
[TM Decision Tree].[Marital Status] = t.[MaritalStatus] AND
[TM Decision Tree].[Gender] = t.[Gender] AND
[TM Decision Tree].[Yearly Income] = t.[YearlyIncome] AND
[TM Decision Tree].[Total Children] = t.[TotalChildren] AND
[TM Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] AND
[TM Decision Tree].[Education] = t.[Education] AND
[TM Decision Tree].[Occupation] = t.[Occupation] AND
[TM Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND
[TM Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned]
Пример алгоритма взаимосвязей
Следующий пример показывает способ создания прогноза с помощью модели, построенной алгоритмом взаимосвязей (Microsoft). Запрос возвращает три продукта, которые с наибольшей вероятностью попадут в одну корзину, например:
- Mountain Bottle Cage
- Mountain Tire Tube
- Mountain-200
С прогнозирующей функцией в списке SELECT используется параметр, ограничивающий количество элементов, возвращаемых запросом.
SELECT
PREDICT([Association].[v Assoc Seq Line Items], 3)
FROM
[Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model]
UNION SELECT 'Mountain Tire Tube' AS [Model]
UNION SELECT 'Mountain-200' AS [Model]) AS [products]) AS t
См. также
Справочник
SELECT (расширения интеллектуального анализа данных)
Инструкции определения расширений интеллектуального анализа данных
Инструкции управления данными расширений интеллектуального анализа данных
Справка по инструкции расширений интеллектуального анализа данных