Ejemplos de consultas del modelo Bayes naive

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 usa las asociaciones detectadas en los datos para realizar predicciones. También puede recuperar los metadatos sobre el modelo utilizando una consulta del conjunto de filas de esquema de minería de datos. En esta sección se explica cómo crear estas consultas para los modelos que se basan en el algoritmo Bayes naive de Microsoft.

Consultas de contenido

Obtención de metadatos del modelo mediante DMX

Recuperar un resumen de los datos de entrenamiento

Buscar más información sobre atributos

Uso de procedimientos almacenados del sistema

Consultas de predicción

Predecir los resultados utilizando una consulta singleton

Obtener predicciones con valores de probabilidad y compatibilidad

Predicción de asociaciones

Buscar información sobre un modelo Bayes naive

El contenido de un modelo Bayes naive proporciona información agregada sobre la distribución de los valores en los datos de entrenamiento. También puede recuperar la información sobre los metadatos del modelo creando consultas con los conjuntos de filas de esquema de minería de datos.

Consulta de ejemplo 1: obtener metadatos del modelo usando DMX

Al consultar el conjunto de filas de esquema de minería de datos, puede buscar los metadatos del modelo. Esto podría incluir cuándo se creó, cuándo se procesó en último lugar, el nombre de la estructura de minería de datos en la que se basa el modelo y el nombre de las columnas que se usan como atributos de predicción. También se pueden devolver los parámetros que se utilizaron cuando se creó el modelo.

SELECT MODEL_CATALOG, MODEL_NAME, DATE_CREATED, LAST_PROCESSED,  
SERVICE_NAME, PREDICTION_ENTITY, FILTER  
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'TM_NaiveBayes_Filtered'  

Resultados del ejemplo:

Row Metadatos
MODEL_CATALOG AdventureWorks
MODEL_NAME TM_NaiveBayes_Filtered
DATE_CREATED 3/1/2008 19:15
LAST_PROCESSED 3/2/2008 20:00
SERVICE_NAME Microsoft_Naive_Bayes
PREDICTION_ENTITY Bike Buyer,Yearly Income
FILTER [Region] = 'Europa' OR [Region] = 'Norteamérica'

El modelo que se usa para este ejemplo está basado en el modelo Bayes naive que se crea en Basic Data Mining Tutorial, pero se modificó agregando un segundo atributo de predicción y aplicando un filtro a los datos de entrenamiento.

Consulta de ejemplo 2: recuperar un resumen de los datos de entrenamiento

En un modelo Bayes naive, el nodo de estadísticas marginal almacena información agregada sobre la distribución de los valores de los datos de entrenamiento. Este resumen es cómodo y le evita tener que crear consultas SQL con los datos de entrenamiento para encontrar la misma información.

En el ejemplo siguiente se utiliza una consulta de contenido DMX para recuperar los datos del nodo (NODE_TYPE = 24). Dado que las estadísticas están almacenadas en una tabla anidada, la palabra clave FLATTENED se utiliza para facilitar la visualización de los resultados.

SELECT FLATTENED MODEL_NAME,  
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT], [PROBABILITY], VALUETYPE FROM NODE_DISTRIBUTION) AS t  
FROM TM_NaiveBayes.CONTENT  
WHERE NODE_TYPE = 26  

Nota:

El nombre de las columnas, SUPPORT y PROBABILITY, debe ir entre corchetes para distinguirlo de las palabras clave reservadas de Expresiones multidimensionales (MDX) con los mismos nombres.

Resultados parciales:

MODEL_NAME T.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.SUPPORT t.PROBABILITY t.VALUETYPE
TM_NaiveBayes Bike Buyer Missing 0 0 1
TM_NaiveBayes Bike Buyer 0 8869 0.507263784 4
TM_NaiveBayes Bike Buyer 1 8615 0.492736216 4
TM_NaiveBayes Sexo Missing 0 0 1
TM_NaiveBayes Sexo F 8656 0.495081217 4
TM_NaiveBayes Sexo M 8828 0.504918783 4

Por ejemplo, estos resultados le indican el número de casos de entrenamiento para cada valor discreto (VALUETYPE = 4), junto con la probabilidad calculada, ajustados para los valores que faltan (VALUETYPE = 1).

Para obtener una definición de los valores proporcionados en la tabla NODE_DISTRIBUTION en un modelo Bayes naive, vea Contenido del modelo de minería de datos para los modelos Bayes naive (Analysis Services - Minería de datos). Para obtener más información sobre cómo los cálculos de compatibilidad y probabilidad se ven afectados por los valores que faltan, vea Valores que faltan (Analysis Services - Minería de datos).

Consulta de ejemplo 3: buscar más información sobre atributos

Dado que un modelo Bayes naive a menudo contiene información compleja sobre las relaciones entre atributos diferentes, la manera más fácil de ver estas relaciones es utilizar el Visor Bayes naive de Microsoft. Sin embargo, puede crear consultas DMX para devolver los datos.

En el ejemplo siguiente se muestra cómo devolver información del modelo sobre un atributo determinado, Region.

SELECT NODE_TYPE, NODE_CAPTION,   
NODE_PROBABILITY, NODE_SUPPORT, MSOLAP_NODE_SCORE  
FROM TM_NaiveBayes.CONTENT  
WHERE ATTRIBUTE_NAME = 'Region'  

Esta consulta devuelve dos tipos de nodos: el nodo que representa el atributo de entrada (NODE_TYPE = 10) y nodos para cada valor del atributo (NODE_TYPE = 11). El título del nodo se utiliza para identificarlo, en lugar del nombre, porque el título muestra tanto el nombre como el valor del atributo.

NODE_TYPE NODE_CAPTION NODE_PROBABILITY NODE_SUPPORT MSOLAP_NODE_SCORE NODE_TYPE
10 Bike Buyer -> Región 1 17484 84.51555875 10
11 Bike Buyer -> Region = Missing 0 0 0 11
11 Bike Buyer -> Region = Norteamérica 0.508236102 8886 0 11
11 Bike Buyer -> Region = Pacific 0.193891558 3390 0 11
11 Bike Buyer -> Region = Europe 0.29787234 5208 0 11

Algunas de las columnas almacenadas en los nodos son las mismas que se pueden obtener de los nodos de estadísticas marginales, como los valores de compatibilidad de los nodos y de puntuación de la probabilidad de los nodos. Sin embargo, MSOLAP_NODE_SCORE es un valor especial que solo se proporciona para los nodos de atributos de entrada e indica la importancia relativa de este atributo en el modelo. Puede ver casi toda esa misma información en el panel Red de dependencia del visor; sin embargo, el visor no proporciona puntuaciones.

La consulta siguiente devuelve las puntuaciones de importancia de todos los atributos del modelo:

SELECT NODE_CAPTION, MSOLAP_NODE_SCORE  
FROM TM_NaiveBayes.CONTENT  
WHERE NODE_TYPE = 10  
ORDER BY MSOLAP_NODE_SCORE DESC  

Resultados del ejemplo:

NODE_CAPTION MSOLAP_NODE_SCORE
Bike Buyer -> Total Children 181.3654836
Bike Buyer -> distancia de Traslado 179.8419482
Bike Buyer -> Inglés Education 156.9841928
Bike Buyer -> Número de niños en casa 111.8122599
Bike Buyer -> Región 84.51555875
Bike Buyer -> Estado civil 23.13297354
Bike Buyer -> Ocupación inglesa 2.832069191

Al examinar el contenido del modelo en el Visor de árbol de contenido genérico de Microsoft, se hará una mejor idea de qué estadísticas podrían ser interesantes. Aquí se demostraron algunos ejemplos sencillos; más a menudo puede que tenga que ejecutar varias consultas o almacenar los resultados y procesarlos en el cliente.

Consulta de ejemplo 4: usar procedimientos almacenados del sistema

Para explorar los resultados, puede utilizar algunos procedimientos almacenados de sistema de Analysis Services además de escribir sus propias consultas de contenido. Para utilizar un procedimiento almacenado de sistema, anteponga al nombre del procedimiento almacenado la palabra clave CALL:

CALL GetPredictableAttributes ('TM_NaiveBayes')  

Resultados parciales:

ATTRIBUTE_NAME NODE_UNIQUE_NAME
Bike Buyer 100000001

Nota:

Estos procedimientos almacenados de sistema son para la comunicación interna entre el servidor de Analysis Services y el cliente, y solamente se utilizan por comodidad al desarrollar y probar los modelos de minería de datos. Al crear consultas para un sistema de producción, siempre debería escribir sus consultas utilizando DMX.

Para obtener más información sobre los procedimientos almacenados del sistema de Analysis Services, vea Procedimientos almacenados de minería de datos (Analysis Services - Minería de datos).

Usar un modelo Bayes naive para realizar predicciones

El algoritmo Bayes naive de Microsoft se suele utilizar menos para la predicción que para la exploración de relaciones entre los atributos de predicción y la entrada. Sin embargo, el modelo admite el uso de funciones de predicción tanto para predicción como para asociación.

Consulta de ejemplo 5: predecir los resultados utilizando una consulta singleton

La consulta siguiente utiliza una consulta singleton para proporcionar un nuevo valor y predecir, según el modelo, si es probable que un cliente con estas características compre una bicicleta. La manera más fácil de crear una consulta singleton en un modelo de regresión es usar el cuadro de diálogo Entrada de consulta singleton . Por ejemplo, puede generar la consulta DMX siguiente seleccionando el modelo TM_NaiveBayes , eligiendo Consulta singletony seleccionando los valores en las listas desplegables para [Commute Distance] y Gender.

SELECT  
  Predict([TM_NaiveBayes].[Bike Buyer])  
FROM  
  [TM_NaiveBayes]  
NATURAL PREDICTION JOIN  
(SELECT '5-10 Miles' AS [Commute Distance],  
  'F' AS [Gender]) AS t  

Resultados de ejemplo:

Expression
0

La función de predicción devuelve el valor más probable, en este caso 0, que significa que es improbable que este tipo de cliente compre una bicicleta.

Consulta de ejemplo 6: obtener predicciones con valores de probabilidad y compatibilidad

Además de predecir un resultado, a menudo desea conocer la precisión de la predicción. La consulta siguiente usa la misma consulta singleton que el ejemplo anterior, pero agrega la función de predicción PredictHistogram (DMX) para devolver una tabla anidada que contiene estadísticas que admiten la predicción.

SELECT  
  Predict([TM_NaiveBayes].[Bike Buyer]),  
  PredictHistogram([TM_NaiveBayes].[Bike Buyer])  
FROM  
  [TM_NaiveBayes]  
NATURAL PREDICTION JOIN  
(SELECT '5-10 Miles' AS [Commute Distance],  
  'F' AS [Gender]) AS t  

Resultados de ejemplo:

Bike Buyer $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY $VARIANCE $STDEV
0 10161.5714 0.581192599 0.010530981 0 0
1 7321.428768 0.418750215 0.008945684 0 0
0.999828444 5.72E-05 5.72E-05 0 0

La fila final en la tabla muestra los ajustes para la compatibilidad y la probabilidad del valor que falta. Los valores de la desviación estándar y la varianza siempre son 0, porque los modelos Bayes naive no pueden modelar los valores continuos.

Consulta de ejemplo 7: predecir las asociaciones

El algoritmo Bayes naive de Microsoft se puede utilizar para el análisis de la asociación, si la estructura de minería de datos contiene una tabla anidada con el atributo de predicción como clave. Por ejemplo, podría crear un modelo Bayes naive mediante la estructura de minería de datos creada en la lección 3: Creación de un escenario de cesta de mercado (Tutorial intermedio de minería de datos) del tutorial de minería de datos. El modelo utilizado en este ejemplo se modificó para agregar información sobre los ingresos y la región del cliente en la tabla de casos.

En el ejemplo de consulta siguiente se muestra una consulta singleton que predice los productos que están relacionados con las compras del producto, 'Road Tire Tube'. Podría utilizar esta información para recomendar productos a un tipo específico de cliente.

SELECT   PredictAssociation([Association].[v Assoc Seq Line Items])  
FROM [Association_NB]  
NATURAL PREDICTION JOIN  
(SELECT 'High' AS [Income Group],  
  'Europe' AS [Region],  
  (SELECT 'Road Tire Tube' AS [Model])   
AS [v Assoc Seq Line Items])   
AS t  

Resultados parciales:

Modelo
Women's Mountain Shorts
Water Bottle
Touring-3000
Touring-2000
Touring-1000

Lista de funciones

Todos los algoritmos de Microsoft admiten un conjunto común de funciones. Sin embargo, el algoritmo Bayes naive de Microsoft admite las funciones adicionales que se enumeran en la tabla siguiente.

función de predicción Uso
IsDescendant (DMX) Determina si un nodo es un elemento secundario de otro nodo del modelo.
Predict (DMX) Devuelve un valor o un conjunto de valores predichos para una columna especificada.
PredictAdjustedProbability (DMX) Devuelve la probabilidad ponderada.
PredictAssociation (DMX) Predice los miembros de un conjunto de datos asociativo.
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.

Para ver la sintaxis de funciones específicas, consulte Referencia de funciones de extensiones de minería de datos (DMX).

Consulte también

Referencia técnica del algoritmo Bayes naive de Microsoft
Microsoft Naive Bayes Algorithm
Contenido del modelo de minería de datos para los modelos Bayes naive (Analysis Services - Minería de datos)