Ejemplos de consultas del modelo de asociación

Se aplica a: SQL Server 2019 y versiones anteriores de Analysis Services Azure Analysis Services Fabric/Power BI Premium

Importante

La minería de datos estaba en desuso en SQL Server 2017 Analysis Services y ahora se ha interrumpido en SQL Server 2022 Analysis Services. La documentación no se actualiza para las características en desuso e interrumpidas. Para más información, consulte Compatibilidad con versiones anteriores de Analysis Services.

Cuando se crea una consulta en un modelo de minería de datos, puede tratarse de una consulta de contenido, que proporciona detalles sobre las reglas y los conjuntos de elementos detectados durante el análisis, o una consulta de predicción, que utiliza las asociaciones detectadas en los datos para realizar predicciones. En un modelo de asociación, las predicciones se basan normalmente en reglas y se pueden utilizar para realizar recomendaciones, mientras que las consultas de contenido normalmente exploran la relación entre los conjuntos de elementos. También se puede recuperar metadatos sobre el modelo.

En esta sección se explica cómo crear estos tipos de consultas para modelos basados en el algoritmo de reglas de asociación de Microsoft.

Consultas de contenido

Obtener datos de metadatos del modelo utilizando DMX

Obtener metadatos del conjunto de filas de esquema

Recuperar los parámetros originales del modelo

Recuperar una lista de conjuntos de elementos y de productos

Devolver los 10 primeros conjuntos de elementos

Consultas de predicción

Predecir elementos asociados

Determinar la confianza por los conjuntos de elementos relacionados

Buscar información sobre el modelo

Todos los modelos de minería de datos exponen el contenido aprendido por el algoritmo de acuerdo con un esquema normalizado, denominado conjunto de filas de esquema del modelo de minería de datos. Puede crear consultas en el conjunto de filas de esquema del modelo de minería de datos mediante instrucciones DMX (Extensiones de minería de datos) o mediante SQL Server Analysis Services procedimientos almacenados. En SQL Server 2017, también puede consultar los conjuntos de filas de esquema directamente como tablas del sistema mediante una sintaxis similar a SQL.

Consulta de ejemplo 1: obtener metadatos del modelo usando DMX

La consulta siguiente devuelve metadatos básicos sobre el modelo de asociación, Association, como el nombre del modelo, la base de datos en la que se encuentra almacenado y el número de nodos secundarios existentes en él. Esta consulta usa una consulta de contenido DMX para recuperar los metadatos del nodo primario del modelo:

SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION,   
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION  
FROM Association.CONTENT  
WHERE NODE_TYPE = 1  

Nota:

El nombre de la columna CHILDREN_CARDINALITY debe ir entre corchetes para distinguirlo de la palabra clave reservada de MDX del mismo nombre.

Resultados de ejemplo:

Row Metadatos
MODEL_CATALOG Association Test
MODEL_NAME Asociación
NODE_CAPTION Association Rules Model
NODE_SUPPORT 14879
CHILDREN_CARDINALITY 942
NODE_DESCRIPTION Association Rules Model; ITEMSET_COUNT=679; RULE_COUNT=263; MIN_SUPPORT=14; MAX_SUPPORT=4334; MIN_ITEMSET_SIZE=0; MAX_ITEMSET_SIZE=3; MIN_PROBABILITY=0.400390625; MAX_PROBABILITY=1; MIN_LIFT=0.14309369632511; MAX_LIFT=1.95758227647523

Para obtener una definición de lo que significan estas columnas en un modelo de asociación, vea Contenido del modelo de minería de datos para modelos de asociación (Analysis Services - Minería de datos).

Volver al principio

Consulta de ejemplo 2: obtener metadatos adicionales del conjunto de filas de esquema

Mediante una consulta al conjunto de filas de esquema de minería de datos, puede obtener la misma información que a través de una consulta de contenido DMX. Sin embargo, el conjunto de filas de esquema proporciona algunas columnas adicionales, como la fecha en que se procesó el modelo por última vez, la estructura de minería de datos y el nombre de la columna usada como atributo de predicción.

SELECT MODEL_CATALOG, MODEL_NAME, SERVICE_NAME, PREDICTION_ENTITY,   
MINING_STRUCTURE, LAST_PROCESSED  
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Association'  

Resultados de ejemplo:

Row Metadatos
MODEL_CATALOG Adventure Works DW Multidimensional 2012
MODEL_NAME Asociación
SERVICE_NAME Association Rules Model
PREDICTION_ENTITY v Assoc Seq Line Items
MINING_STRUCTURE Asociación
LAST_PROCESSED 29/9/2007 10:21:24 PM

Volver al principio

Consulta de ejemplo 3: recuperar los parámetros originales para el modelo

La consulta siguiente devuelve una única columna con detalles sobre la configuración de parámetros utilizada cuando se creó el modelo.

SELECT MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Association'  

Resultados de ejemplo:

MAXIMUM_ITEMSET_COUNT=200000,MAXIMUM_ITEMSET_SIZE=3,MAXIMUM_SUPPORT=1,MINIMUM_SUPPORT=9.40923449156529E-04,MINIMUM_IMPORTANCE=-999999999,MINIMUM_ITEMSET_SIZE=0,MINIMUM_PROBABILITY=0.4

Volver al principio

Buscar información sobre las reglas y los conjuntos de elementos

Los usos más comunes de un modelo de asociación son dos: detectar información sobre conjuntos de elementos frecuentes y extraer detalles sobre reglas y conjuntos de elementos concretos. Por ejemplo, puede que desee extraer una lista de reglas puntuadas como especialmente interesantes, o crear una lista de los conjuntos de elementos más comunes. Esta información se recupera utilizando una consulta de contenido DMX. También se puede examinar esta información utilizando el Visor de asociación de Microsoft.

Consulta de ejemplo 4: recuperar una lista de conjuntos de elementos y productos

La consulta siguiente recupera todos los conjuntos de elementos junto con una tabla anidada que contiene la lista de productos incluidos en cada conjunto de elementos. La columna NODE_NAME contiene el identificador único del conjunto de elementos existente en el modelo, mientras que NODE_CAPTION proporciona una descripción de los elementos. En este ejemplo, se ha quitado la información de estructura jerárquica de la tabla anidada para que el conjunto de elementos que contenga dos productos genere dos filas en los resultados. Se puede omitir la palabra clave FLATTENED si el cliente admite datos jerárquicos.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,  
NODE_PROBABILITY, NODE_SUPPORT,  
(SELECT ATTRIBUTE_NAME FROM NODE_DISTRIBUTION) as PurchasedProducts  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  

Resultados de ejemplo:

Row Metadatos
NODE_NAME 37
NODE_CAPTION Sport-100 = Existing
NODE_PROBABILITY 0.291283016331743
NODE_SUPPORT 4334
PURCHASEDPRODUCTS.ATTRIBUTE_NAME v Assoc Seq Line Items(Sport-100)

Volver al principio

Consulta de ejemplo 5: devolver los 10 primeros conjuntos de elementos

En este ejemplo se muestra cómo utilizar algunas de las funciones de agrupación y ordenación que DMX proporciona de forma predeterminada. La consulta devuelve los 10 mejores conjuntos de elementos ordenados según el soporte para cada nodo. Observe que no necesita agrupar explícitamente los resultados, tal como haría en Transact-SQL; sin embargo, puede utilizar solo una función de agregado en cada consulta.

SELECT TOP 10 (NODE_SUPPORT),NODE_NAME, NODE_CAPTION  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  

Resultados de ejemplo:

Row Metadatos
NODE_SUPPORT 4334
NODE_NAME 37
NODE_CAPTION Sport-100 = Existing

Volver a la parte superior

Realizar predicciones utilizando el modelo

Un modelo de reglas de asociación se suele utilizar para generar recomendaciones, que se basan en las correlaciones detectadas en los conjuntos de elementos. Por tanto, cuando se crea una consulta de predicción basada en un modelo de reglas de asociación, normalmente se usan las reglas del modelo para realizar estimaciones basadas en nuevos datos. PredictAssociation (DMX) es la función que devuelve recomendaciones y tiene varios argumentos que puede usar para personalizar los resultados de la consulta.

Otro ejemplo de dónde podrían resultar útiles las consultas en un modelo de asociación consiste en devolver la confianza para diversas reglas y conjuntos de elementos con objeto de poder comparar la efectividad de distintas estrategias de ventas cruzadas. En los ejemplos siguientes se muestra cómo crear tales consultas.

Consulta de ejemplo 6: predecir elementos asociados

En este ejemplo se usa el modelo de asociación creado en el Tutorial intermedio de minería de datos (Analysis Services - Minería de datos). Muestra cómo crear una consulta de predicción que indica qué productos se deben recomendar a un cliente que ha comprado un producto determinado. Este tipo de consulta, donde se proporcionan valores al modelo en un SELECT... La instrucción UNION se denomina consulta singleton. Como la columna del modelo de predicción correspondiente a los nuevos valores es una tabla anidada, es necesario usar una cláusula SELECT para asignar el nuevo valor a la columna de tabla anidada, [Model], y otra cláusula SELECT para asignar la columna de tabla anidada a la columna de nivel de caso, [v Assoc Seq Line Items]. Si agrega la palabra clave INCLUDE-STATISTICS a la consulta, podrá ver la probabilidad y el soporte para las recomendaciones.

SELECT PredictAssociation([Association].[vAssocSeqLineItems],INCLUDE_STATISTICS, 3)  
FROM [Association]  
NATURAL PREDICTION JOIN   
(SELECT  
(SELECT 'Classic Vest' as [Model])  
AS [v Assoc Seq Line Items])  
AS t  

Resultados de ejemplo:

Modelo $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.291283 0.252696
Water Bottle 2866 0.19262 0.175205
Patch kit 2113 0.142012 0.132389

Volver a la parte superior

Consulta de ejemplo 7: determinar la confianza para los conjuntos de elementos relacionados

Mientras que las reglas son útiles para generar recomendaciones, los conjuntos de elementos resultan más interesantes para realizar análisis más profundos de los patrones existentes en el conjunto de datos. Por ejemplo, si no quedó satisfecho con las recomendaciones devueltas por la consulta de ejemplo anterior, podría examinar otros conjuntos de elementos que contuviesen el Producto A para tener una idea más clara de si dicho producto es un accesorio que se compra con todo tipo de productos, o si se trata de un producto estrechamente relacionado con las compras de determinados productos. La manera más fácil de explorar estas relaciones es filtrando los conjuntos de elementos en el Visor de asociaciones de Microsoft; sin embargo, puede recuperar la misma información con una consulta.

La consulta de ejemplo siguiente devuelve todos los conjuntos de elementos que incluyen el elemento Water Bottle, incluido el elemento Water Bottle por sí solo.

SELECT TOP 100 FROM   
(  
SELECT FLATTENED NODE_CAPTION, NODE_SUPPORT,   
(SELECT ATTRIBUTE_NAME from NODE_DISTRIBUTION  
WHERE ATTRIBUTE_NAME = 'v Assoc Seq Line Items(Water Bottle)') as D  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  
) AS Items  
WHERE [D.ATTRIBUTE_NAME] <> NULL  
ORDER BY NODE_SUPPORT DESC  

Resultados de ejemplo:

NODE_CAPTION NODE_SUPPORT D.ATTRIBUTE_NAME
Water Bottle = Existing 2866 v Assoc Seq Line Items(Water Bottle)
Mountain Bottle Cage = Existing, Water Bottle = Existing 1136 v Assoc Seq Line Items(Water Bottle)
Road Bottle Cage = Existing, Water Bottle = Existing 1068 v Assoc Seq Line Items(Water Bottle)
Water Bottle = Existing, Sport-100 = Existing 734 v Assoc Seq Line Items(Water Bottle)

Esta consulta devuelve tanto las filas de la tabla anidada que cumplen los criterios, como todas las filas externas o de la tabla de casos. Por consiguiente, se debe agregar una condición que elimine las filas de la tabla de casos que tengan un valor NULL para el nombre del atributo de destino.

Volver a la parte superior

Lista de funciones

Todos los algoritmos de Microsoft admiten un conjunto común de funciones. Sin embargo, el algoritmo de asociación de Microsoft admite las funciones adicionales enumeradas en la tabla siguiente.

función de predicción Uso
IsDescendant (DMX) Determina si un nodo es un elemento secundario de otro nodo en el gráfico de red neuronal.
IsInNode (DMX) Indica si el nodo especificado contiene el caso actual.
PredictAdjustedProbability (DMX) Devuelve la probabilidad ponderada.
PredictAssociation (DMX) Predice los miembros de un conjunto de datos asociativo.
PredictHistogram (DMX) Devuelve una tabla de valores relacionados con el valor de predicción actual.
PredictNodeId (DMX) Devuelve el Node_ID de cada caso.
PredictProbability (DMX) Devuelve la probabilidad del valor de predicción.
PredictSupport (DMX) Devuelve el valor de soporte de un estado especificado.
PredictVariance (DMX) Devuelve la varianza del valor de predicción.

Consulte también

Algoritmo de asociación de Microsoft
Referencia técnica del algoritmo de asociación de Microsoft
Contenido del modelo de minería de datos para los modelos de asociación (Analysis Services - Minería de datos)