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
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)