Consultar modelos de minería de datos (Analysis Services - Minería de datos)
Después de entrenar un modelo de minería de datos, puede explorarlo utilizando los visores personalizados de SQL Server Management Studio o de Business Intelligence Development Studio. Sin embargo, si desea realizar predicciones u obtener información avanzada o más específica del modelo, deberá crear una consulta en el modelo de minería de datos. Las consultas ayudan a entender mejor la información del modelo y a trabajar con ella de las siguientes maneras:
Realizando predicciones únicas y por lotes.
Obteniendo más información sobre los patrones que encuentra el modelo.
Viendo detalles o los casos de entrenamiento de un patrón determinado o de un subconjunto del modelo.
Obteniendo detalles de los casos existentes en el modelo de minería de datos.
Extrayendo fórmulas, reglas o estadísticas sobre la totalidad del modelo y de los datos o sobre un subconjunto de los mismos.
SQL ServerAnalysis Services proporciona una interfaz de diseño gráfica para crear consultas y un lenguaje de consulta denominado Extensiones de minería de datos (DMX) que resulta de gran utilidad para crear predicciones personalizadas y consultas complejas. Para generar las consultas de predicción DMX, se pueden iniciar con los generadores de consultas disponibles en SQL Server Management Studio y Business Intelligence Development Studio. SQL Server Management Studio también proporciona un conjunto de plantillas de consultas DMX.
Para obtener más información sobre la forma de utilizar el generador de consultas, vea Usar el Generador de consultas de predicción para crear consultas de predicción DMX.
Para obtener más información sobre la forma de utilizar las plantillas de consultas DMX, vea Crear consultas DMX en SQL Server Management Studio o Cómo utilizar plantillas en SQL Server Management Studio.
En esta sección se describen los tipos de consultas que se pueden crear y la información que proporciona cada uno. Esta sección también incluye ejemplos de consultas para tipos específicos de modelos de minería de datos.
Consultas de predicción
Consultas de predicción singleton
Consultas de predicción por lotes
Predicciones de serie temporal
Consultas de contenido
Consultas de definición de datos
Consultas de predicción
El objetivo principal de muchos de los proyectos de minería de datos es utilizar los modelos de minería de datos para realizar predicciones. Por ejemplo, es posible que desee predecir cuántos productos venderá su empresa en diciembre del próximo año, o si un cliente potencial comprará un producto en respuesta a una campaña de publicidad.
Cuando se crea una predicción, normalmente se proporciona parte de los nuevos datos y se pide al modelo que genere la predicción basándose en dichos datos. Se pueden realizar predicciones en un lote, asignando el modelo a un origen externo de datos en una combinación de predicción. También se pueden proporcionar valores de uno en uno y crear una consulta singleton.
Ambas consultas, las de predicción de lotes y las consultas singleton, utilizan la sintaxis de PREDICTION JOIN para definir los datos nuevos: la diferencia radica en cómo se especifica el lado de entrada de la unión de la predicción. En una consulta singleton, los datos se proporcionan en línea como parte de la consulta. En una consulta por lotes, los datos proceden de un origen de datos externo que se especifica utilizando la sintaxis de OPENQUERY. Para obtener más información, vea OPENQUERY (DMX).
Además, los modelos de serie temporal permiten realizar predicciones basadas simplemente en el modelo: no es necesario proporcionar nuevos datos, sólo se tiene que solicitar predicciones basadas en las series existentes.
La sección siguiente proporciona información sobre cómo crear cada uno de estos tipos de consultas:
Tipo de consulta |
Opciones de consulta |
---|---|
Consulta de predicción singleton |
Realizar una predicción sobre un nuevo caso, o sobre varios casos nuevos, incluidos en la consulta. |
Predicciones por lotes |
Asignar los casos nuevos del origen de datos externo al modelo y realizar predicciones. |
Predicciones de serie temporal |
Predecir un número concreto de pasos futuros, basándose en un modelo existente. Ampliar un modelo existente agregando nuevos datos y realizar predicciones basadas en la serie compuesta. Aplicar el modelo existente a nuevas series de datos utilizando la opción REPLACE_MODEL_CASES. |
Además de predecir un valor concreto, como la cantidad de ventas para el próximo mes o el producto que conviene recomendar a un cliente, se puede personalizar una consulta de predicción para que devuelva diversos tipos de información relacionados con la predicción. Por ejemplo, puede ser útil conocer la probabilidad de que la predicción sea correcta para poder decidir si se debe presentar o no la recomendación al usuario.
Para personalizar la información devuelta por una consulta de predicción, agregue funciones de predicción a la misma. Cada modelo o tipo de consulta admite unas determinadas funciones. Por ejemplo, los modelos de agrupación en clústeres admiten funciones de predicción especiales que proporcionan detalles adicionales sobre las agrupaciones creadas por el modelo. Los modelos de serie temporal admiten funciones de predicción que calculan las diferencias a lo largo del tiempo. También existen funciones de predicción generales que funcionan con casi todos los tipos de modelos. Para obtener una lista de las funciones de predicción admitidas en los diferentes tipos de consultas, vea Asignar funciones a tipos de consulta (DMX). Para obtener una lista completa de las funciones de predicción, vea Referencia de funciones de Extensiones de minería de datos (DMX).
Volver al principio
Consultas singleton
Las consultas singleton resultan de gran utilidad para crear predicciones simples en tiempo real. Por ejemplo, se puede obtener información de un cliente utilizando un sitio web y, a continuación, usar esos datos para devolver las predicciones, presentadas como recomendaciones específicas para ese cliente. O bien, se puede analizar el contenido de un mensaje de correo electrónico y, a continuación, utilizar un modelo de clasificación existente para asignar una categoría al mensaje y enrutarlo de forma apropiada.
Las consultas singleton no requieren ninguna tabla independiente que contenga la entrada. En su lugar, se pasa una única fila de datos en el modelo y se devuelve una única predicción en tiempo real. También puede extender la consulta singleton para realizar varias predicciones escribiendo una instrucción SELECT que contenga un solo caso, agregando el operador UNION y escribiendo a continuación otra instrucción SELECT para especificar otro caso.
Se pueden crear consultas singleton en un modelo existente de las maneras siguientes:
Utilizando el Diseñador de minería de datos.
Utilizando una plantilla de consulta singleton.
Creando una instrucción DMX mediante programación o en otro cliente Analysis Services.
Al crear una consulta singleton, se deben proporcionar los nuevos datos al modelo con el formato PREDICTION JOIN. Esto significa que, aunque no se esté realizando una asignación a una tabla real, hay que asegurarse de que los nuevos datos coinciden con las columnas existentes en el modelo de minería de datos. Si las nuevas columnas de datos y los nuevos datos coinciden exactamente, Analysis Services asignará las columnas. Esto se denomina NATURAL PREDICTION JOIN. Sin embargo, si las columnas no coinciden, o si los nuevos datos no contienen el mismo tipo y la misma cantidad de datos que hay en el modelo, se debe especificar qué columnas del modelo se asignan a los nuevos datos, o especificar los valores que faltan.
Para obtener información sobre cómo crear una consulta singleton en el Diseñador de minería de datos, vea Cómo crear una consulta singleton en el Diseñador de minería de datos y Usar el Generador de consultas de predicción para crear consultas de predicción DMX.
Para obtener más información sobre el uso de DMX para crear una consulta singleton, vea Consultas de predicción (DMX).
Para obtener un ejemplo de cómo utilizar las plantillas de consultas DMX en SQL Server Management Studio, vea Cómo crear una consulta de predicción singleton desde una plantilla.
Volver al principio
Consultas de predicción por lotes
Cuando se realiza una combinación de predicción, se asigna el modelo a un nuevo origen de datos y, a continuación, Analysis Services realiza las predicciones para cada fila de los nuevos datos basándose en los patrones del modelo. Una combinación de predicción resulta útil cuando se dispone de mucha información en una tabla o en otro origen de datos externo y se desea realizar predicciones utilizando el modelo entrenado.
Se pueden crear consultas de predicción por lotes en un modelo existente de las maneras siguientes:
Utilizando el Diseñador de minería de datos.
Utilizando una plantilla.
Creando una instrucción DMX mediante programación o en otro cliente Analysis Services.
Si se crea una consulta de predicción por lotes utilizando el Diseñador de minería de datos, el origen de datos externo debe definirse primero como una vista del origen de datos.
Si utiliza DMX para crear una combinación de predicción, puede especificar el origen de datos externo utilizando los comandos OPENQUERY, OPENROWSET o SHAPE. El método de acceso a datos predeterminado en las plantillas DMX es OPENQUERY. Para obtener información acerca de estos métodos, vea <source data query>.
Independientemente del modo en que se definan los datos externos, el origen de datos que se especifique debe contener columnas con datos como los del modelo. Sin embargo, la nueva información puede estar incompleta. Por ejemplo, la lista de clientes podría tener una columna de edad pero ninguna información sobre los ingresos. Incluso si se utilizaran los datos de ingresos al entrenar el modelo, puede asignar datos nuevos al modelo y crear una predicción; sin embargo, en algunos casos, la falta de una información completa podría afectar a la calidad de las predicciones.
Para obtener los mejores resultados, se deben combinar tantas columnas coincidentes como sea posible entre los nuevos datos y el modelo. Sin embargo, la consulta se realizará correctamente incluso ni no hay ninguna coincidencia. Si no se combina ninguna columna, la consulta devolverá la predicción marginal, que equivale a la instrucción SELECT <predictable-column> FROM <model> sin una cláusula PREDICTION JOIN.
Trabajar con los resultados de una consulta de predicción
Una consulta de predicción no es como una consulta en una base de datos relacional. Cada función de predicción que agrega a una consulta devuelve su propio conjunto de filas. Por consiguiente, si se realiza una predicción sobre un único caso, el resultado puede ser un valor predicho junto con varias columnas de tablas anidadas que contienen detalles adicionales.
Siempre que se combinen varias funciones en una consulta, los resultados devueltos se combinarán como un conjunto de filas jerárquico. Sin embargo, si el proveedor no puede procesar conjuntos de filas jerárquicos, se puede eliminar la estructura de los resultados utilizando la palabra clave FLATTEN en la consulta de predicción.
Para obtener más información y ejemplos de conjuntos de filas sin estructura jerárquica, vea SELECT (DMX).
Predicciones en modelos de minería de datos de serie temporal
Los modelos de serie temporal proporcionan más flexibilidad en la medida en que se pueden utilizar nuevos datos y crear predicciones. Se puede utilizar el modelo tal como está para crear predicciones, o se pueden proporcionar datos nuevos al modelo para actualizar predicciones basadas en tendencias recientes. Si se agregan nuevos datos, se puede especificar la manera en que deben utilizarse, ya sea para ampliar los casos del modelo o para reemplazarlos.
Cuando se amplían los casos del modelo, se agregan los nuevos datos de hechos al modelo de serie temporal; las predicciones que se realicen a partir de ese momento se basarán en las nuevas series combinadas. Al reemplazar los casos del modelo, se mantiene el modelo entrenado, pero se reemplazan los casos subyacentes por un nuevo conjunto de datos de casos.
Independientemente del método utilizado, el punto inicial para las predicciones siempre es el final de la serie original.
Por ejemplo, suponga que tiene un modelo de serie temporal existente entrenado con los datos de ventas del año anterior. Después de haber recopilado varios meses de nuevos datos de ventas, decide actualizar los pronósticos de ventas para el año actual. Puede crear una combinación de predicción que actualice el modelo agregando los nuevos datos y que amplíe el modelo para que realice nuevas predicciones.
También puede generar el modelo basándose en los datos existentes y, a continuación, crear una combinación de predicción que reemplace los datos de los casos por los nuevos datos. Esto es útil si, por ejemplo, en un almacén faltan muchos datos y desea utilizar un modelo generado a partir de los datos de otro almacén para realizar las predicciones. Para obtener más información sobre cómo crear combinaciones de predicciones en modelos de serie temporal, vea Consultar un modelo de serie temporal o PredictTimeSeries (DMX).
Volver al principio
Consultas de contenido
Una consulta de contenido es una manera de extraer información sobre las estadísticas internas y la estructura del modelo de minería de datos. A veces, una consulta de contenido puede proporcionar detalles que no están disponibles con facilidad en el visor. También puede utilizar los resultados de una consulta de contenido para extraer mediante programación información para otros usos. Por ejemplo, puede extraer fórmulas o probabilidades por realizar sus propios cálculos o recuperar la información procesable sobre los casos en un modelo.
En esta sección se proporciona información general sobre los tipos de información que se pueden recuperar utilizando una consulta de contenido. Las consultas de contenido utilizan la sintaxis DMX que se muestra en la tabla siguiente:
Tipo de consulta |
Opciones de consulta |
---|---|
SELECT FROM <model>.CASES |
Buscar los casos que se utilizaron para entrenar o probar un modelo. Obtenga detalles en los datos, como son las columnas de la estructura de minería de datos subyacente. |
SELECT FROM <estructure>.CASES |
Ver todos los datos existentes en la estructura, incluso las columnas que no están incluidas en un modelo de minería de datos determinado. |
SELECT FROM <model>.CONTENT |
Recuperar información detallada sobre nodos concretos del modelo, incluidas las reglas y las fórmulas, estadísticas de compatibilidad y varianza, entre otras. |
SELECT FROM <model>.DIMENSIONCONTENT |
Admite consultas en una dimensión de minería de datos. Este tipo de consulta es principalmente para uso interno. Si desarrolla su propio algoritmo de complemento, podría utilizar esta sintaxis para probar sus modelos. No todos los algoritmos son compatibles con esta funcionalidad. Un marcador indica la compatibilidad en el conjunto de filas de esquema MINING_SERVICES. |
Algún contenido de modelo es estándar en todos los algoritmos. Generalmente, sin embargo, el contenido de cada modelo depende del algoritmo utilizado para generar el modelo. Por consiguiente, al crear una consulta de contenido, se debe comprender qué tipos de información existentes en el modelo son las más útiles.
Por ejemplo, si se crea una consulta que utiliza la sintaxis SELECT FROM <model>.CONTENT, dicha consulta devolverá una información muy diferente dependiendo de si el modelo es un modelo de clústeres de secuencia, un modelo de árboles de decisión o un modelo de serie temporal. En un modelo de asociación, se pueden recuperar las descripciones de reglas concretas para poder utilizarlas en una aplicación personalizada, mientras que en un modelo de serie temporal o de clústeres de secuencia, se puede buscar más información sobre los patrones de tiempo detectados por el modelo.
En las secciones siguientes se incluyen algunos ejemplos que ilustran la amplitud y la profundidad de la información que se puede obtener de una consulta de contenido; sin embargo, para obtener información sobre el contenido del modelo de minería de datos y el contenido específico de cada tipo de modelo, vea Contenido del modelo de minería de datos (Analysis Services - Minería de datos).
Ejemplo 1: consulta de contenido en un modelo de asociación
Puede utilizar una instrucción SELECT FROM <modelo>.CONTENT para devolver distintos tipos de contenido, dependiendo del tipo de modelo que esté consultando. En un modelo de asociación, los nodos que representan las reglas tienen un valor NODE_TYPE de 8, mientras que los conjuntos de elementos tienen un valor NODE_TYPE de 7. Así, la consulta siguiente devolverá los 10 mejores conjuntos de elementos, clasificados según el soporte (la ordenación predeterminada).
SELECT TOP 10 NODE_DESCRIPTION, NODE_PROBABILITY, SUPPORT
FROM <model>.CONTENT WHERE NODE_TYPE = 7
En el ejemplo siguiente se devuelven tres columnas: el identificador del nodo, la regla completa y el producto situado en el lado derecho del conjunto de elementos; es decir, el producto que se prevé que estará asociado a otros productos como parte de un conjunto de elementos.
La palabra clave FLATTENED indica que el conjunto de filas anidado se debe convertir en una tabla plana. El atributo que representa el producto situado en el lado derecho de la regla se encuentra dentro de la tabla NODE_DISTRIBUTION; por consiguiente, sólo recuperamos la fila que contiene un nombre de atributo agregando el requisito de que la longitud sea mayor que 2. Se utiliza una función de cadena sencilla para quitar el nombre del modelo de la tercera columna. Normalmente, el nombre del modelo siempre se antepone a los valores de las columnas anidadas. La cláusula WHERE especifica que el valor de NODE_TYPE debe ser 8 para recuperar sólo reglas.
SELECT FLATTENED NODE_UNIQUE_NAME , NODE_DESCRIPTION,
(SELECT RIGHT(ATTRIBUTE_NAME, (LEN(ATTRIBUTE_NAME)-LEN('Association model name')))
FROM NODE_DISTRIBUTION
WHERE LEN(ATTRIBUTE_NAME)>2
)
AS RightSideProduct
FROM [<Association model name>].CONTENT
WHERE NODE_TYPE = 8
ORDER BY NODE_SUPPORT DESC
Para obtener más ejemplos, vea Consultar un modelo de asociación (Analysis Services - Minería de datos).
Ejemplo 2: consulta de contenido en un modelo de árboles de decisión
Un escenario en el que puede ser útil consultar el contenido del modelo es cuando se desea realizar el seguimiento de una consulta de predicción devolviendo la regla que explica por qué se predijo ese estado. Por ejemplo, se puede agregar la función de predicción PredictNodeId (DMX) a una consulta para obtener el identificador del nodo que contiene la regla, utilizando la sintaxis siguiente:
SELECT Predict([Bike Buyer]), PredictNodeID([Bike Buyer])
FROM [<decision tree model name>]
PREDICTION JOIN
<input rowset>
En un modelo del árboles de decisión, el título contiene la descripción de la ruta de acceso al resultado. Por consiguiente, una vez conseguido el identificador del nodo que contiene el resultado, se puede recuperar la regla o la ruta de acceso que explica la predicción creando una consulta de contenido como la siguiente:
SELECT NODE_CAPTION
FROM [<decision tree model name>]
WHERE NODE_UNIQUE_NAME= '<node id>'
Para obtener más ejemplos, vea Consultar un modelo de árboles de decisión (Analysis Services - Minería de datos).
Volver al principio
Consultas de definición de datos
Analysis Services proporciona varios tipos de instrucciones de definición de datos para la creación y la administración de estructuras y modelos de minería de datos. Para obtener más información, vea Administrar estructuras y modelos de minería de datos.