Compartir a través de


Lección 4: Ejecución de predicciones de canasta de mercado

En esta lección, usará la instrucción DMX SELECT para crear predicciones basadas en los modelos de asociación que creó en Lección 2: agregar modelos de minería a la estructura de minería de carrito de mercado. Una consulta de predicción se crea mediante la instrucción DMX SELECT añadiendo la cláusula PREDICTION JOIN. Para obtener más información sobre la sintaxis de una combinación de predicción, vea SELECT FROM <model> PREDICTION JOIN (DMX).

El formulario SELECT FROM <model> PREDICTION JOIN de la SELECT instrucción contiene tres partes:

  • Lista de las columnas del modelo de minería de datos y las funciones de predicción que se devuelven en el conjunto de resultados. Esta lista también puede contener columnas de entrada de los datos de origen.

  • Consulta de origen que define los datos que se usan para crear una predicción. Por ejemplo, si va a crear muchas predicciones en un lote, la consulta de origen podría recuperar una lista de clientes.

  • Asignación entre las columnas del modelo de minería y la fuente de datos. Si los nombres de las columnas coinciden, puede usar NATURAL PREDICTION JOIN sintaxis y omitir los mapeos de columnas.

Puede mejorar la consulta mediante funciones de predicción. Las funciones de predicción proporcionan información adicional, como la probabilidad de que se produzca una predicción o la compatibilidad con una predicción en el conjunto de datos de entrenamiento. Para obtener más información sobre las funciones de predicción, consulte Funciones (DMX).

También puede usar el generador de consultas de predicción en SQL Server Data Tools (SSDT) para crear consultas de predicción.

Singleton PREDICTION JOIN (instrucción)

El primer paso consiste en crear una consulta singleton mediante la sintaxis SELECT FROM <model> PREDICTION JOIN y proporcionando un único conjunto de valores como entrada. A continuación se presenta un ejemplo genérico de la afirmación 'singleton'.

SELECT <select list>  
    FROM [<mining model>]   
[NATURAL] PREDICTION JOIN  
(SELECT '<value>' AS [<column>],   
    (SELECT 'value' AS [<nested column>] UNION  
        SELECT 'value' AS [<nested column>] ...)   
    AS [<nested table>])  
AS [<input alias>]  

La primera línea del código define las columnas del modelo de minería de datos que devuelve la consulta y especifica el nombre del modelo de minería de datos usado para generar la predicción:

SELECT <select list> FROM [<mining model>]   

La siguiente línea del código indica la operación que se va a realizar. Dado que especificará valores para cada una de las columnas y escribirá los nombres de columna exactamente para que coincidan con el modelo, puede usar la NATURAL PREDICTION JOIN sintaxis . Sin embargo, si los nombres de las columnas fueran diferentes, tendrían que especificar las correspondencias entre las columnas del modelo y las columnas de los nuevos datos agregando una cláusula ON.

[NATURAL] PREDICTION JOIN  

Las siguientes líneas del código definen los productos en el carro de la compra que se usarán para predecir productos adicionales que agregará un cliente:

(SELECT '<value>' AS [<column>],   
    (SELECT 'value' AS [<nested column>] UNION  
        SELECT 'value' AS [<nested column>] ...)   
    AS [<nested table>])  

Tareas de la lección

Realizará las siguientes tareas en esta lección:

  • Cree una consulta que prediga qué otros artículos es probable que un cliente compre, en función de los elementos que ya existen en su carrito. Usará este modelo de minería de datos con el MINIMUM_PROBABILITY predeterminado para crear esta consulta.

  • Cree una consulta que prediga qué otros artículos que un cliente comprará en función de los artículos que ya existen en su carro de la compra. Esta consulta se basa en un modelo diferente, en el que MINIMUM_PROBABILITY se ha establecido en 0,01. Dado que el valor predeterminado de MINIMUM_PROBABILITY en los modelos de asociación es 0.3, la consulta en este modelo debe devolver más elementos posibles que la consulta en el modelo predeterminado.

Crear una predicción mediante un modelo con el MINIMUM_PROBABILITY predeterminado

Para crear una consulta de asociación

  1. En el Explorador de objetos, haga clic con el botón derecho en la instancia de Analysis Services, seleccione Nueva consulta y, a continuación, haga clic en DMX para abrir el Editor de consultas.

  2. Copie el ejemplo genérico de la PREDICTION JOIN instrucción en la consulta en blanco.

  3. Reemplace lo siguiente:

    <select list>   
    

    con:

    PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)  
    

    Puede incluir simplemente el nombre de columna [Products], pero mediante la función Predict (DMX), puede limitar el número de productos devueltos por el algoritmo a tres. También puede usar INCLUDE_STATISTICS, que devuelve el soporte, la probabilidad y la probabilidad ajustada para cada producto. Estas estadísticas le ayudan a evaluar la precisión de la predicción.

  4. Reemplace lo siguiente:

    [<mining model>]   
    

    con:

    [Default Association]  
    
  5. Reemplace lo siguiente:

    (SELECT '<value>' AS [<column>],   
        (SELECT 'value' AS [<nested column>] UNION  
            SELECT 'value' AS [<nested column>] ...)   
        AS [<nested table>])  
    

    con:

    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]  
      UNION SELECT 'Mountain Tire Tube' AS [Model]  
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t  
    

    Esta instrucción usa la UNION instrucción para especificar tres productos que deben incluirse en el carro de la compra junto con los productos previstos. La columna Model de la SELECT instrucción corresponde a la columna de modelo contenida en la tabla de productos anidados.

    La instrucción completa debe ser la siguiente:

    SELECT  
      PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)  
    From  
      [Default 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  
    
  6. En el menú Archivo , haga clic en Guardar DMXQuery1.dmx Como.

  7. En el cuadro de diálogo Guardar como , vaya a la carpeta adecuada y asigne al archivo Association Prediction.dmxel nombre .

  8. En la barra de herramientas, haga clic en el botón Ejecutar .

    La consulta devuelve una tabla que contiene tres productos: HL Mountain Tire, Fender Set - Mountain y ML Mountain Tire. En la tabla se enumeran estos productos devueltos en orden de probabilidad. El producto devuelto que es más probable que se incluya en el mismo carro de la compra que los tres productos especificados en la consulta aparece en la parte superior de la tabla. Los dos productos siguientes son los siguientes más probables que se incluyan en el carro de la compra. La tabla también contiene estadísticas que describen la precisión de la predicción.

Crear una predicción mediante un modelo con un MINIMUM_PROBABILITY de 0,01

Para crear una consulta de asociación

  1. En el Explorador de objetos, haga clic con el botón derecho en la instancia de Analysis Services, seleccione Nueva consulta y, a continuación, haga clic en DMX para abrir el Editor de consultas.

  2. Copie el ejemplo genérico de la declaración PREDICTION JOIN en la consulta en blanco.

  3. Reemplace lo siguiente:

    <select list>   
    

    con:

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)  
    
  4. Reemplace lo siguiente:

    [<mining model>]   
    

    con:

    [Modified Association]  
    
  5. Reemplace lo siguiente:

    (SELECT '<value>' AS [<column>],   
        (SELECT 'value' AS [<nested column>] UNION  
            SELECT 'value' AS [<nested column>] ...)   
        AS [<nested table>])  
    

    con:

    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]  
      UNION SELECT 'Mountain Tire Tube' AS [Model]  
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t  
    

    Esta instrucción usa la UNION instrucción para especificar tres productos que deben incluirse en el carro de la compra junto con los productos previstos. La columna [Model] en la declaración SELECT corresponde a la columna de la tabla de productos anidados.

    La instrucción completa debe ser la siguiente:

    SELECT  
      PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)  
    From  
      [Modified 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  
    
  6. En el menú Archivo , haga clic en Guardar DMXQuery1.dmx Como.

  7. En el cuadro de diálogo Guardar como , vaya a la carpeta adecuada y asigne al archivo Modified Association Prediction.dmxel nombre .

  8. En la barra de herramientas, haga clic en el botón Ejecutar .

    La consulta devuelve una tabla que contiene tres productos: HL Mountain Tire, Water Bottle y Fender Set - Mountain. En la tabla se enumeran estos productos en orden de probabilidad. El producto que aparece en la parte superior de la tabla es el producto que es más probable que se incluya en el mismo carro de la compra que los tres productos especificados en la consulta. Los productos restantes son los siguientes más probables que se incluyan en el carro de la compra. La tabla también contiene estadísticas que describen la precisión de la predicción.

    Puede ver en los resultados de esta consulta que el valor del parámetro MINIMUM_PROBABILITY afecta a los resultados devueltos por la consulta.

Este es el último paso del tutorial de Market Basket. Ahora tiene un conjunto de modelos que puede usar para predecir los productos que los clientes pueden comprar al mismo tiempo.

Para obtener información sobre cómo usar DMX en otro escenario predictivo, consulte Bike Buyer DMX Tutorial.

Véase también

Ejemplos de consulta del modelo de asociación
Interfaces de consultas de minería de datos