SELECT FROM <model> PREDICTION JOIN (DMX)
Usa un modelo de minería para predecir los estados de columnas de un origen de datos externo. La instrucción PREDICTION JOIN compara todos los escenarios de la consulta de origen con el modelo.
Sintaxis
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]]
Argumentos
- n
Opcional. Entero que especifica el número de filas que se devuelve.
- select expression list
Lista delimitada por comas de expresiones o identificadores de columna derivados del modelo de minería de datos.
- model
Identificador de modelo.
- sub select
Instrucción SELECT incrustada.
- source data query
Consulta de origen.
- join mapping list
Opcional. Expresión lógica que compara columnas del modelo con columnas de la consulta de origen.
- condition expression
Opcional. Condición para restringir los valores que devuelve la lista de columnas.
- expression
Opcional. Expresión que devuelve un valor escalar.
Notas
La cláusula ON define la asignación entre las columnas de la consulta de origen y las columnas del modelo de minería. Esta asignación sirve para unir columnas de la consulta de origen con columnas del modelo de minería de datos de forma que las columnas se puedan usar como entradas en la creación de las predicciones. Las columnas de <join mapping list> están relacionadas con un signo igual (=), como se muestra en el siguiente ejemplo:
[MiningModel].ColumnA = [source data query].Column1 AND
[MiningModel].ColumnB = [source data query].Column2 AND
...
Si va a enlazar una tabla anidada de la cláusula ON, asegúrese de enlazar la columna de clave con las columnas sin clave para que el algoritmo pueda identificar correctamente el escenario al que pertenece el registro de la columna anidada.
La columna de origen de la combinación de predicción puede ser una tabla o una consulta singleton.
Puede especificar funciones de predicción que no devuelven una expresión de tabla en los argumentos <select expression list> y <condition expression>.
La instrucción NATURAL PREDICTION JOIN enlaza automáticamente nombres de columna de la consulta de origen que coinciden con nombres de columna del modelo. Si usa NATURAL PREDICTION, debe omitir la cláusula ON. NATURAL implica que no se especifica ninguna cláusula ON y que las columnas se asignan por el nombre.
Ejemplo de consulta singleton
En el siguiente ejemplo se muestra cómo crear una consulta que predice en tiempo real si una persona específica va a comprar una bicicleta; en esta consulta, los datos no se almacenan, sino que se especifican directamente en ella. La persona de la consulta tiene el siguiente perfil:
- 35 años
- Tiene una casa de propiedad
- Tiene dos coches
- Tiene dos hijos que viven con ella
La consulta usa el modelo de minería TM Decision Tree y las características conocidas del sujeto para devolver un valor booleano que describe si la persona compró la bicicleta y un conjunto de valores tabulares, obtenidos de la función PredictHistogram, que describen cómo se llevó a cabo la predicción.
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
Ejemplo de consulta abierta
En el siguiente ejemplo se muestra cómo crear una consulta que predice si cada persona de un conjunto de datos externo va a comprar una bicicleta. Puesto que la tabla existe en una vista de origen de datos de la instancia de Analysis Services, la consulta usa OPENQUERY para recuperar los datos. La tabla difiere de la estructura de columnas del modelo de minería de datos y, por lo tanto, se usa la instrucción ON para asignar la tabla al modelo.
La consulta devuelve el primero y el último nombre de cada persona de la tabla junto con una columna booleana que describe si es probable que la persona vaya a comprar una bicicleta y la probabilidad de que la compren.
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]
Ejemplo de algoritmo de asociación
En el ejemplo siguiente se muestra cómo crear una predicción usando un modelo generado a partir del algoritmo de asociación de Microsoft. La consulta devuelve tres productos que tienen la mayor probabilidad de compartir la misma cesta que los siguientes tres productos:
- Mountain Bottle Cage
- Mountain Tire Tube
- Mountain-200
Se usa un parámetro con la función de predicción en la lista SELECT para limitar el número de elementos devueltos por la consulta.
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
Vea también
Referencia
SELECT (DMX)
Instrucciones de definición de datos de Extensiones de minería de datos (DMX)
Instrucciones de manipulación de datos de Extensiones de minería de datos (DMX)
Referencia de instrucciones de Extensiones de minería de datos (DMX)