Compartir a través de


Consultas de predicción (minería de datos)

El objetivo de un proyecto de minería de datos típico es usar el modelo de minería de datos para realizar predicciones. Por ejemplo, es posible que quiera predecir la cantidad de tiempo de inactividad esperado para un determinado clúster de servidores o generar una puntuación que indique si es probable que los segmentos de los clientes respondan a una campaña publicitaria. Para hacer todas estas cosas, crearía una consulta de predicción.

Funcionalmente, hay diferentes tipos de consultas de predicción admitidas en SQL Server, en función del tipo de entradas para la consulta:

Tipo de consulta Opciones de consulta
Consultas de predicción única Use una consulta singleton cuando quiera predecir resultados para un único caso nuevo o varios casos nuevos. Proporcione los valores de entrada directamente en la consulta y la consulta se ejecuta como una sola sesión.
Predicciones por lotes Use predicciones por lotes cuando tenga datos externos que quiera incluir en el modelo, para usarlos como base para las predicciones. Para realizar predicciones para un conjunto completo de datos, asigne los datos del origen externo a las columnas del modelo y, a continuación, especifique el tipo de datos predictivos que desea generar.

La consulta de todo el conjunto de datos se ejecuta en una sola sesión, lo que hace que esta opción sea mucho más eficaz que enviar varias consultas repetidas.
Predicciones de serie temporal Use una consulta de serie temporal cuando desee predecir un valor en algún número de pasos futuros. La minería de datos de SQL Server también proporciona la siguiente funcionalidad en las consultas de serie temporal:

Puede ampliar un modelo existente agregando nuevos datos como parte de la consulta y realizando predicciones basadas en la serie compuesta.

Puede aplicar un modelo existente a una nueva serie de datos mediante la opción REPLACE_MODEL_CASES.

Puede realizar una predicción cruzada.

En las secciones siguientes se describe la sintaxis general de las consultas de predicción, los distintos tipos de consultas de predicción y cómo trabajar con los resultados de las consultas de predicción.

Diseño de consulta de predicción básica

Trabajar con los resultados de las consultas

Diseño de consulta de predicción básica

Al crear una predicción, normalmente se proporcionan algunos datos nuevos y se pide al modelo que genere una predicción basada en los nuevos datos.

  • En una consulta de predicción por lotes, se asigna el modelo a un origen externo de datos mediante una combinación de predicción.

  • En una consulta de predicción única, escriba uno o varios valores para utilizarlos como entradas. Puede crear múltiples predicciones utilizando una consulta de predicción singleton. Sin embargo, si necesita crear muchas predicciones, el rendimiento es mejor cuando se usa una consulta por lotes.

Las consultas de predicción tanto individuales como por lotes utilizan la sintaxis PREDICTION JOIN para definir los nuevos datos. La diferencia es la forma en que se especifica el lado de entrada de la combinación de predicción.

  • En una consulta de predicción por lotes, los datos proceden de un origen de datos externo que se especifica mediante la sintaxis OPENQUERY.

  • En una consulta de predicción única, los datos se incluyen directamente como parte de la consulta.

En el caso de los modelos de serie temporal, los datos de entrada no siempre son necesarios; es posible realizar predicciones con solo los datos del modelo. Sin embargo, si especifica nuevos datos de entrada, debe decidir si usará los nuevos datos para actualizar y ampliar el modelo, o para reemplazar la serie original de datos que se usó en el modelo. Para obtener más información sobre estas opciones, vea Ejemplos de consultas del modelo de serie temporal.

Adición de funciones de predicción

Además de predecir un valor, puede personalizar una consulta de predicción para devolver varios tipos de información relacionados con la predicción. Por ejemplo, si la predicción crea una lista de productos para recomendar a un cliente, también puede devolver la probabilidad de cada predicción, de modo que pueda clasificarlos y presentar solo las recomendaciones principales al usuario.

Para ello, agregue funciones de predicción a la consulta. Cada modelo o tipo de consulta admite funciones específicas. Por ejemplo, los modelos de agrupación en clústeres admiten funciones de predicción especiales que proporcionan detalles adicionales sobre los clústeres creados por el modelo, mientras que los modelos de series temporales tienen funciones que calculan las diferencias con el tiempo. También hay funciones de predicción generales que funcionan con casi todos los tipos de modelo. Para obtener una lista de las funciones de predicción admitidas en diferentes tipos de consultas, consulte este tema la referencia dmX: funciones de predicción general (DMX).

Creación de consultas de predicción de tipo singleton

Una consulta de predicción singleton es útil cuando desea crear predicciones rápidas en tiempo real. Un escenario común podría ser que haya obtenido información de un cliente, quizás mediante un formulario en un sitio web, y desea enviar esos datos como entrada a una consulta de predicción singleton. Por ejemplo, cuando un cliente elige un producto de una lista, podría usar esa selección como entrada para una consulta que prediga los mejores productos que se recomiendan.

Las consultas de predicción singleton no requieren una tabla independiente que contenga entradas. En su lugar, se proporcionan una o varias filas de valores como entrada para el modelo y la predicción o las predicciones se devuelven en tiempo real.

Advertencia

A pesar del nombre, las consultas de predicción singleton no solo realizan predicciones únicas, sino que pueden generar varias predicciones para cada conjunto de entradas. Puede proporcionar múltiples casos de entrada creando una instrucción SELECT para cada uno de los casos de entrada y combinarlos con el operador UNION.

Al crear una consulta de predicción de tipo singleton, debe proporcionar los nuevos datos al modelo en forma de un PREDICTION JOIN. Esto significa que aunque no esté asignando a una tabla real, debe asegurarse de que los nuevos datos coincidan con las columnas existentes en el modelo de datos. Si las nuevas columnas de datos y los nuevos datos coinciden exactamente, Analysis Services asignará las columnas automáticamente por usted. Esto se denomina COMBINACIÓN DE PREDICCIÓN NATURAL. Sin embargo, si las columnas no coinciden, o si los nuevos datos no contienen el mismo tipo y la cantidad de datos que se encuentra en el modelo, debe especificar qué columnas del modelo se asignan a los nuevos datos o especificar los valores que faltan.

Consultas de predicción por lotes

Una consulta de predicción por lotes es útil cuando tiene datos externos que desea usar para realizar predicciones. Por ejemplo, podría haber creado un modelo que clasifique a los clientes por su actividad en línea y su historial de compras. Puede aplicar ese modelo a una lista de clientes potenciales recién adquiridos, crear proyecciones de ventas o identificar los objetivos de las campañas propuestas.

Al realizar una combinación de predicción, debe asignar las columnas del modelo a las columnas del nuevo origen de datos. Por lo tanto, el origen de datos que elija para una entrada debe tener datos similares a los datos del modelo. La nueva información no tiene que coincidir exactamente y puede estar incompleta. Por ejemplo, supongamos que el modelo se entrenó con información sobre los ingresos y la edad, pero la lista de clientes que usa para predicciones tiene edad, pero nada sobre los ingresos. En este escenario, todavía podría asignar los nuevos datos al modelo y crear una predicción para cada cliente. Sin embargo, si los ingresos fueran un indicador importante para el modelo, la falta de información completa afectaría a la calidad de las predicciones.

Para obtener los mejores resultados, debe combinar tantas de las columnas coincidentes como sea posible entre los nuevos datos y el modelo. Sin embargo, la consulta se realizará correctamente incluso si no hay coincidencias. Si no hay columnas unidas, la consulta devolverá la predicción marginal, que es equivalente a la instrucción SELECT <predictable-column> FROM <model> sin una cláusula PREDICTION JOIN.

Una vez que haya asignado correctamente todas las columnas pertinentes, ejecute la consulta y Analysis Services realice predicciones para cada fila de los nuevos datos en función de los patrones del modelo. Puede volver a guardar los resultados en una nueva tabla en la vista del origen de datos que contiene los datos externos, o bien puede copiar y pegar los datos si usa SQL Server Data Tools (SSDT) o SQL Server Management Studio.

Advertencia

Si usa el diseñador en SQL Server Data Tools (SSDT), el origen de datos externo primero debe definirse como una vista del origen de datos.

Si usa DMX para crear una combinación de predicción, puede especificar el origen de datos externo mediante los comandos OPENQUERY, OPENROWSET o SHAPE. El método de acceso a datos predeterminado en las plantillas DMX es OPENQUERY. Para obtener información sobre estos métodos, consulte <consulta> de datos de origen.

Predicciones en modelos de minería de datos de serie temporal

Los modelos de serie temporal son diferentes de otros tipos de modelos; Puede usar el modelo tal como está para crear predicciones, o bien puede proporcionar nuevos datos al modelo para actualizar el modelo y crear predicciones basadas en tendencias recientes. Si agrega nuevos datos, puede especificar la forma en que se deben usar los nuevos datos.

  • Extender los casos de modelo significa que se agregan los nuevos datos a la serie de datos existente en el modelo de serie temporal. Por lo tanto, las predicciones se basan en la nueva serie combinada. Esta opción es buena cuando simplemente desea agregar algunos puntos de datos a un modelo existente.

    Por ejemplo, supongamos que tiene un modelo de serie temporal existente que se ha entrenado en los datos de ventas del año anterior. Después de recopilar varios meses de nuevos datos de ventas, decide actualizar las previsiones de ventas del año actual. Puede crear una combinación de predicción que actualice el modelo agregando nuevos datos y extiende el modelo para realizar nuevas predicciones.

  • Reemplazar los casos de modelo significa que se mantiene el modelo entrenado, pero se reemplazan los casos subyacentes por un nuevo conjunto de datos de casos. Esta opción es útil cuando desea mantener la tendencia en el modelo, pero aplicarla a un conjunto diferente de datos.

    Por ejemplo, es posible que el modelo original se haya entrenado en un conjunto de datos con volúmenes de ventas muy altos; cuando reemplaza los datos subyacentes por una nueva serie (quizás de un almacén con un volumen de ventas inferior), se conserva la tendencia, pero las predicciones comienzan a partir de los valores de la serie de reemplazo.

Independientemente del enfoque que use, el punto de partida de las predicciones es siempre el final de la serie original.

Para obtener más información sobre cómo crear combinaciones de predicción en modelos de serie temporal, consulte Ejemplos de consultas de modelos de serie temporal o PredictTimeSeries (DMX).

Trabajar con los resultados de una consulta de predicción

Las opciones para guardar los resultados de una consulta de predicción de minería de datos son diferentes en función de cómo cree la consulta.

  • Al compilar una consulta mediante el Generador de consultas de predicción en SQL Server Management Studio o SQL Server Data Tools (SSDT), puede guardar los resultados de una consulta de predicción en un origen de datos de Analysis Services existente. Para obtener más información, vea Ver y guardar los resultados de una consulta de predicción.

  • Al crear consultas de predicción mediante DMX en el panel Consulta de SQL Server Management Studio, puede usar las opciones de salida de consulta para guardar los resultados en un archivo o en el panel Resultados de la consulta como texto o en una cuadrícula. Para obtener más información, vea Editores de consultas y texto (SQL Server Management Studio).

  • Al ejecutar una consulta de predicción mediante los componentes de Integration Services, las tareas proporcionan la capacidad de escribir los resultados en una base de datos mediante un administrador de conexiones de ADO.NET disponible o un administrador de conexiones OLEDB. Para obtener más información, vea Tarea de consulta de minería de datos.

Es importante comprender que los resultados de una consulta de predicción no son como los resultados de una consulta en una base de datos relacional, que siempre devuelve una sola fila de valores relacionados. Cada función de predicción DMX que agregue a una consulta devuelve su propio conjunto de filas. Por lo tanto, al realizar una predicción en un solo caso, el resultado podría ser un valor de predicción junto con varias columnas de tablas anidadas que contienen detalles adicionales.

Si combina varias funciones en una consulta, los resultados devueltos se combinan como un conjunto de filas jerárquico. Por ejemplo, supongamos que usa un modelo de serie temporal para predecir valores futuros para el monto de ventas y la cantidad de ventas, mediante una consulta como esta instrucción DMX:

SELECT  
  PredictTimeSeries([Forecasting].[Amount]) as [PredictedAmount]  
, PredictTimeSeries([Forecasting].[Quantity]) as [PredictedQty]  
FROM  
  [Forecasting]  
  

Los resultados de esta consulta son dos columnas, una para cada serie predicha, donde cada fila contiene una tabla anidada con los valores previstos:

CantidadPredicha

$TIME Importe
201101 172067.11
$TIME Importe
201102 363390.68

PredictedQty

$TIME Cantidad
201101 77
$TIME Cantidad
201102 260

Si el proveedor no puede controlar conjuntos de filas jerárquicos, puede aplanar los resultados mediante la palabra clave FLATTEN en la consulta de predicción. Para obtener más información, incluidos ejemplos de conjuntos de filas aplanados, vea SELECT (DMX).

Véase también

Consultas de contenido (minería de datos)
Consultas de definición de datos (minería de datos)