Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server Analysis Services
Utiliza um modelo de mineração para prever os estados das colunas numa fonte de dados externa. A instrução PREDICTION JOIN corresponde a cada caso desde a consulta de origem até ao modelo.
Syntax
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]]
Arguments
n
Optional. Um inteiro que especifica quantas linhas devolver.
Lista de expressões selecionadas
Uma lista separada por vírgulas de identificadores de colunas e expressões derivadas do modelo de mineração.
Modelo
Um identificador de modelo.
Sub Select
Uma instrução select incorporada.
Consulta de dados de origem
A consulta de origem.
Lista de mapeamento de entrada
Optional. Uma expressão lógica que compara colunas do modelo com colunas da consulta de origem.
Expressão da condição
Optional. Uma condição para restringir os valores que são devolvidos da lista de colunas.
expression
Optional. Uma expressão que retorna um valor escalar.
Observações
A cláusula ON define o mapeamento entre as colunas da consulta de origem e as colunas do modelo de mineração. Este mapeamento é usado para direcionar colunas da consulta de origem para colunas no modelo de mineração, de modo a que as colunas possam ser usadas como entradas para criar as previsões. As colunas na < lista >de mapeamento de junção estão relacionadas usando um sinal igual (=), como mostrado no exemplo seguinte:
[MiningModel].ColumnA = [source data query].Column1 AND
[MiningModel].ColumnB = [source data query].Column2 AND
...
Se estiver a ligar uma tabela aninhada na cláusula ON, certifique-se de que associa a coluna chave com quaisquer colunas não-chave para que o algoritmo possa identificar corretamente a que caso pertence o registo da coluna aninhada.
A consulta de origem para a junção de previsão pode ser uma tabela ou uma consulta singleton.
Pode especificar funções de predição que não retornam uma expressão de tabela na < lista >de expressões select e na < expressão >de condição.
NATURAL PREDICTION JOIN mapeia automaticamente os nomes das colunas da consulta de origem que correspondem aos nomes das colunas no modelo. Se usares PREVISÃO NATURAL, podes omitir a cláusula ON.
A condição ONDE só pode ser aplicada a colunas previsíveis ou colunas relacionadas.
A cláusula ORDER by pode aceitar apenas uma única coluna como argumento; ou seja, não pode ordenar em mais do que uma coluna.
Exemplo 1: Consulta Singleton
O exemplo seguinte mostra como criar uma consulta para prever se uma pessoa específica irá comprar uma bicicleta em tempo real. Nesta consulta, os dados não são armazenados numa tabela ou noutra fonte de dados, mas sim inseridos diretamente na consulta. A pessoa na consulta tem as seguintes características:
35 anos
Possui uma casa
Possui dois carros
Tem dois filhos a viver em casa
Usando o modelo de mineração TM Decision Tree e as características conhecidas sobre o sujeito, a consulta devolve um valor booleano que descreve se a pessoa comprou a bicicleta e um conjunto de valores tabulares, devolvidos pela função PredictHistogram (DMX ), que descrevem como a previsão foi feita.
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
Exemplo 2: Utilização do OPENQUERY
O exemplo seguinte mostra como criar uma consulta de previsão por lote utilizando uma lista de potenciais clientes armazenada num conjunto de dados externo. Como a tabela faz parte de uma vista de fonte de dados definida numa instância de Analysis Services, a consulta pode usar o OPENQUERY para recuperar os dados. Como os nomes das colunas na tabela são diferentes dos do modelo de mineração, a cláusula ON deve ser usada para mapear as colunas da tabela para as colunas do modelo.
A consulta devolve o nome e apelido de cada pessoa na tabela, juntamente com uma coluna booleana que indica se cada pessoa é provável que vá comprar uma bicicleta, onde 0 significa "provavelmente não vai comprar uma bicicleta" e 1 significa "provavelmente vai comprar uma bicicleta". A última coluna contém a probabilidade para o resultado previsto.
SELECT
t.[LastName],
t.[FirstName],
[TM Decision Tree].[Bike Buyer],
PredictProbability([Bike Buyer])
From
[TM Decision Tree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW Multidimensional 2012],
'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]
Para restringir o conjunto de dados apenas aos clientes que se prevê que vão comprar uma bicicleta, e depois ordenar a lista pelo nome do cliente, pode adicionar uma cláusula WHERE e uma cláusula ORDER BY ao exemplo anterior:
WHERE [BIKE Buyer]
ORDER BY [LastName] ASC
Exemplo 3: Previsão de Associações
O exemplo seguinte mostra como criar uma previsão usando um modelo construído a partir do algoritmo da Microsoft Association. As previsões num modelo de associação podem ser usadas para recomendar produtos relacionados. Por exemplo, a consulta seguinte devolve os três produtos que têm maior probabilidade de serem adquiridos em conjunto:
Gaiola de Garrafas da Montanha
Câmara de pneu de montanha
Mountain-200
A função Predict (DMX) é polimórfica e pode ser usada com todos os tipos de modelos. Usas o value3 como argumento para a função para limitar o número de itens que são devolvidos pela consulta. A lista SELECT que segue a cláusula NATURAL PREDICTION JOIN fornece os valores a usar como entrada para a previsão.
SELECT FLATTENED
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 [v Assoc Seq Line Items ]) AS t
Exemplos de resultados:
| Expression.Model |
|---|
| Pneumático de Montanha HL |
| Garrafa de Água |
| Fender Set - Montanha |
Como a coluna que contém o atributo previsível, [v Assoc Seq Line Items], é uma coluna de tabela, a consulta devolve uma única coluna que contém uma tabela aninhada. Por defeito, a coluna da tabela aninhada chama-se Expression. Se o seu fornecedor não suportar conjuntos de linhas hierárquicos, pode usar a palavra-chave FLATTENED , como mostrado neste exemplo, para facilitar a visualização dos resultados.