Consultar un modelo de asociación (Analysis Services - Minería de datos)
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 usa 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 usar 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 en modelos basados en el algoritmo de reglas de asociación de Microsoft.
Consultas de contenido
Obtener metadatos del modelo usando DMX
Obtener metadatos adicionales del conjunto de filas de esquema
Recuperar los parámetros originales para el modelo
Recuperar una lista de conjuntos de elementos y productos
Devolver los 10 mejores 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 utilizando instrucciones de Extensiones de minería de datos (DMX) o los procedimientos almacenados de Analysis Services. En SQL Server 2008, también se pueden consultar directamente los conjuntos de filas de esquema como tablas del sistema, utilizando una sintaxis parecida a SQL.
Consulta de ejemplo 1: obtener metadatos del modelo utilizando 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 del ejemplo:
MODEL_CATALOG |
Association Test |
MODEL_NAME |
Association |
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 los 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, se 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 del ejemplo:
MODEL_CATALOG |
AdventureWorks DW |
MODEL_NAME |
Association |
SERVICE_NAME |
Association Rules Model |
PREDICTION_ENTITY |
v Assoc Seq Line Items |
MINING_STRUCTURE |
Association |
LAST_PROCESSED |
9/29/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 usada cuando se creó el modelo.
SELECT MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Association'
Resultados del 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 del ejemplo:
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 mejores conjuntos de elementos
En este ejemplo se muestra cómo usar 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 usar 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 del ejemplo:
NODE_SUPPORT |
4334 |
NODE_NAME |
37 |
NODE_CAPTION |
Sport-100 = Existing |
Volver al principio
Realizar predicciones utilizando el modelo
Un modelo de reglas de asociación se suele usar 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 utilizan las reglas del modelo para realizar estimaciones basadas en nuevos datos. PredictAssociation (DMX) es la función que devuelve las recomendaciones y tiene varios argumentos que se pueden 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 básico de 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 deben proporcionar valores para el modelo en una instrucción SELECT…UNION, se denomina consulta singleton. Dado que la columna del modelo de predicción correspondiente a los nuevos valores es una tabla anidada, se debe 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 del 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 al principio
Consulta de ejemplo 7: determinar la confianza por 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 asociación de Microsoft; sin embargo, se 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 del 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 al principio
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 que se incluyen en la tabla siguiente.