Compartir a través de


Ejemplos de consulta de modelos de árboles de decisión

Al crear una consulta en un modelo de minería de datos, puede crear una consulta de contenido, que proporciona detalles sobre los patrones detectados en el análisis, o bien puede crear una consulta de predicción, que usa los patrones del modelo para realizar predicciones para nuevos datos. Por ejemplo, una consulta de contenido para un modelo de árboles de decisión puede proporcionar estadísticas sobre el número de casos en cada nivel del árbol o las reglas que diferencian entre los casos. Como alternativa, una consulta de predicción asigna el modelo a nuevos datos para generar recomendaciones, clasificaciones, etc. También puede recuperar metadatos sobre el modelo mediante una consulta.

En esta sección se explica cómo crear consultas para modelos basados en el algoritmo de árboles de decisión de Microsoft.

Consultas de contenido

Recuperación de parámetros de modelo del conjunto de filas de esquema de minería de datos

Obtención de detalles sobre árboles en el modelo mediante DMX

Recuperación de subárboles del modelo

Consultas de predicción

Devolver predicciones con probabilidades

Predicción de asociaciones a partir de un modelo de árboles de decisión

Recuperación de una fórmula de regresión a partir de un modelo de árboles de decisión

Buscar información sobre un modelo de árboles de decisión

Para crear consultas significativas en el contenido de un modelo de árboles de decisión, debe comprender la estructura del contenido del modelo y qué tipos de nodo almacenan qué tipo de información. Para obtener más información, vea Contenido del modelo de minería de datos para los modelos de árbol de decisión (Analysis Services - Minería de datos).

Consulta de ejemplo 1: Recuperación de parámetros del modelo desde el esquema de filas de minería de datos

Al consultar el conjunto de filas del esquema de minería de datos, puede encontrar metadatos sobre el modelo, como cuando se creó, cuando se procesó por última vez el modelo, el nombre de la estructura de minería de datos en la que se basa el modelo y el nombre de la columna usada como atributo de predicción. También puede devolver los parámetros que se usaron cuando se creó el modelo por primera vez.

select MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'TM_Decision Tree'  

Resultados de ejemplo:

PARÁMETROS_DE_MINERÍA

COMPLEXITY_PENALTY=0,5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=

Consulta de ejemplo 2: Devolver detalles sobre el contenido del modelo mediante DMX

La consulta siguiente devuelve información básica sobre los árboles de decisión que se crearon al compilar el modelo en el Tutorial básico de minería de datos. Cada estructura de árbol se almacena en su propio nodo. Dado que este modelo contiene un único atributo de predicción, solo hay un nodo de árbol. Sin embargo, si crea un modelo de asociación mediante el algoritmo árboles de decisión, puede haber cientos de árboles, uno para cada producto.

Esta consulta devuelve todos los nodos del tipo 2, que son los nodos de nivel superior de un árbol que representa un atributo de predicción determinado.

Nota:

La columna , CHILDREN_CARDINALITY, debe incluirse entre corchetes para distinguirla de la palabra clave reservada MDX del mismo nombre.

SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION,   
NODE_SUPPORT, [CHILDREN_CARDINALITY]  
FROM TM_DecisionTrees.CONTENT  
WHERE NODE_TYPE = 2  

Resultados de ejemplo:

MODEL_NAME NODE_NAME Etiqueta de nodo SOPORTE_DE_NODO CARDINALIDAD_DE_HIJOS
TM_DecisionTree 000000001 Todos 12939 5

¿Qué le dicen estos resultados? En un modelo de árboles de decisión, la cardinalidad de un nodo determinado indica cuántos elementos secundarios inmediatos tiene ese nodo. La cardinalidad de este nodo es 5, lo que significa que el modelo divide la población objetivo de posibles compradores de bicicletas en 5 subgrupos.

La siguiente consulta relacionada devuelve los hijos de estos cinco subgrupos, junto con la distribución de atributos y valores en los nodos hijo. Dado que las estadísticas como la compatibilidad, la probabilidad y la varianza se almacenan en la tabla anidada, NODE_DISTRIBUTIONen este ejemplo se usa la FLATTENED palabra clave para generar las columnas de la tabla anidada.

Nota:

La columna de tabla anidada, SUPPORT, debe incluirse entre corchetes para distinguirla de la palabra clave reservada del mismo nombre.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,  
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT]  
FROM NODE_DISTRIBUTION) AS t  
FROM TM_DecisionTree.CONTENT  
WHERE [PARENT_UNIQUE_NAME] = '000000001'  

Resultados de ejemplo:

NODE_NAME Etiqueta de nodo T.ATTRIBUTE_NAME T.ATTRIBUTE_VALUE SOPORTE TÉCNICO
00000000100 Número de coches propiedad = 0 Comprador de Bicicletas Desaparecido 0
00000000100 Número de coches propiedad = 0 Comprador de Bicicletas 0 1067
00000000100 Número de coches propiedad = 0 Comprador de Bicicletas 1 1875
00000000101 Número de coches propiedad = 3 Comprador de Bicicletas Desaparecido 0
00000000101 Número de coches propiedad = 3 Comprador de Bicicletas 0 678
00000000101 Número de coches propiedad = 3 Comprador de Bicicletas 1 473

A partir de estos resultados, puede decir que de los clientes que compraron una bicicleta ([Bike Buyer] = 1), 1067 clientes tenían 0 coches y 473 clientes tenían 3 coches.

Consulta de ejemplo 3: Recuperación de subárboles del modelo

Supongamos que quería descubrir más sobre los clientes que compraron una bicicleta. Puede ver detalles adicionales de cualquiera de los subárboles mediante la función IsDescendant (DMX) en la consulta, como se muestra en el ejemplo siguiente. La consulta devuelve el recuento de compradores de bicicletas recuperando nodos hoja (NODE_TYPE = 4) del árbol que contiene clientes que tienen más de 42 años de edad. La consulta restringe las filas de la tabla anidada a aquellas donde el campo 'Bike Buyer' es igual a 1.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,NODE_TYPE,  
(  
SELECT [SUPPORT] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Bike Buyer' AND ATTRIBUTE_VALUE = '1'  
) AS t  
FROM TM_DecisionTree.CONTENT  
WHERE ISDESCENDANT('0000000010001')  
AND NODE_TYPE = 4  

Resultados de ejemplo:

NODE_NAME Etiqueta de nodo t.SOPORTE
000000001000100 Ingresos >anuales = 26000 y < 42000 266
00000000100010100 Total de niños = 3 75
0000000010001010100 Número de niños en casa = 1 75

Realizar predicciones mediante un modelo de árboles de decisión

Dado que los árboles de decisión se pueden usar para varias tareas, incluida la clasificación, la regresión e incluso la asociación, al crear una consulta de predicción en un modelo de árbol de decisión, tiene muchas opciones disponibles. Debe comprender el propósito para el que se creó el modelo para comprender los resultados de la predicción. En los ejemplos de consulta siguientes se muestran tres escenarios diferentes:

  • Devolver una predicción para un modelo de clasificación, junto con la probabilidad de que la predicción sea correcta y, a continuación, filtrar los resultados por la probabilidad;

  • Crear una consulta singleton para predecir asociaciones.

  • Recuperar la fórmula de regresión para una parte de un árbol de decisión donde la relación entre la entrada y la salida es lineal.

Consulta de ejemplo 4: Devolver predicciones con probabilidades

En la consulta de ejemplo siguiente se usa el modelo de árbol de decisión que se creó en el Tutorial básico de minería de datos. La consulta pasa un nuevo conjunto de datos de ejemplo de la tabla dbo. ProspectiveBuyers en AdventureWorks2012 DW, para predecir cuáles de los clientes del nuevo conjunto de datos comprarán una bicicleta.

La consulta usa la función de predicción PredictHistogram (DMX), que devuelve una tabla anidada que contiene información útil sobre las probabilidades detectadas por el modelo. La cláusula WHERE final de la consulta filtra los resultados para devolver solo los clientes que se predicen como probables compradores de una bicicleta, con una probabilidad superior a 0%.

SELECT  
  [TM_DecisionTree].[Bike Buyer],  
  PredictHistogram([Bike Buyer]) as Results  
From  
  [TM_DecisionTree]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    'SELECT  
      [FirstName],  
      [LastName],  
      [MaritalStatus],  
      [Gender],  
      [YearlyIncome],  
      [TotalChildren],  
      [NumberChildrenAtHome],  
      [HouseOwnerFlag],  
      [NumberCarsOwned]  
    FROM  
      [dbo].[ProspectiveBuyer]  
    ') AS t  
ON  
  [TM_DecisionTree].[First Name] = t.[FirstName] AND  
  [TM_DecisionTree].[Last Name] = t.[LastName] AND  
  [TM_DecisionTree].[Marital Status] = t.[MaritalStatus] AND  
  [TM_DecisionTree].[Gender] = t.[Gender] AND  
  [TM_DecisionTree].[Yearly Income] = t.[YearlyIncome] AND  
  [TM_DecisionTree].[Total Children] = t.[TotalChildren] AND  
  [TM_DecisionTree].[Number Children At Home] = t.[NumberChildrenAtHome] AND  
  [TM_DecisionTree].[House Owner Flag] = t.[HouseOwnerFlag] AND  
  [TM_DecisionTree].[Number Cars Owned] = t.[NumberCarsOwned]  
WHERE [Bike Buyer] = 1  
AND PredictProbability([Bike Buyer]) >'.05'  

De forma predeterminada, Analysis Services devuelve tablas anidadas con la etiqueta de columna Expression. Puede cambiar esta etiqueta poniendo un alias a la columna que se devuelve. Si lo hace, el alias (en este caso, Resultados) se usa como encabezado de columna y como valor de la tabla anidada. Es necesario expandir la tabla anidada para ver los resultados.

Resultados de ejemplo en los que Bike Buyer = 1:

Comprador de Bicicletas $SOPORTE $PROBABILITY $PROBABILIDADAJUSTADA $VARIANCE $STDEV
1 2540 0.634849242045644 0.013562168281562 0 0
0 1460 0.364984174579377 0,00661336932550915 0 0
0 0.000166583374979177 0.000166583374979177 0 0

Si el proveedor no admite conjuntos de filas jerárquicos, como los que se muestran aquí, puede usar la palabra clave FLATTENED en la consulta para devolver los resultados como una tabla que contenga valores NULL en lugar de los valores de columna repetidos. Para obtener más información, vea Tablas anidadas (Analysis Services - Minería de datos) o Descripción de la instrucción SELECT de DMX.

Consulta de ejemplo 5: Predicción de asociaciones a partir de un modelo de árboles de decisión

La siguiente consulta de ejemplo se basa en la estructura de minería de datos Association. Para seguir este ejemplo, puede agregar un nuevo modelo a esta estructura de minería de datos y seleccionar Árboles de decisión de Microsoft como algoritmo. Para obtener más información sobre cómo crear la estructura de minería de datos Association, vea Lección 3: Construyendo un escenario de cesta de mercado (Tutorial de minería de datos intermedio).

La consulta de ejemplo siguiente es una consulta singleton, que puede crear fácilmente en SQL Server Data Tools (SSDT) eligiendo campos y seleccionando valores para esos campos en una lista desplegable.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)  
FROM  
  [DT_Association]  
NATURAL PREDICTION JOIN  
(SELECT (SELECT 'Patch kit' AS [Model]) AS [v Assoc Seq Line Items]) AS t  

Resultados esperados:

Modelo
Montaña-200
Tubo de neumáticos de montaña
Tubo para neumático de touring

Los resultados indican los tres mejores productos que se recomiendan a los clientes que han comprado el producto Patch Kit. También puede proporcionar varios productos como entrada al realizar recomendaciones, ya sea escribiendo valores o mediante el cuadro de diálogo Entrada de consulta singleton y agregando o quitando valores. En la consulta de ejemplo siguiente se muestra cómo se proporcionan varios valores, sobre los que se va a realizar una predicción. Los valores se conectan mediante una cláusula UNION en la instrucción SELECT que define los valores de entrada.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)  
From  
  [DT_Association]  
NATURAL PREDICTION JOIN  
(SELECT (SELECT 'Racing Socks' AS [Model]  
  UNION SELECT 'Women''s Mountain Shorts' AS [Model]) AS [v Assoc Seq Line Items]) AS t  

Resultados esperados:

Modelo
Logotipo de Long-Sleeve Jersey
Mountain-400-W
Vestidura clásica

Consulta de ejemplo 6: Recuperación de una fórmula de regresión a partir de un modelo de árboles de decisión

Al crear un modelo de árbol de decisión que contenga una regresión en un atributo continuo, puede usar la fórmula de regresión para realizar predicciones o puede extraer información sobre la fórmula de regresión. Para obtener más información sobre las consultas en los modelos de regresión, vea Ejemplos de consultas de modelos de regresión lineal.

Si un modelo de árboles de decisión contiene una combinación de nodos de regresión y nodos que se dividen en atributos o intervalos discretos, puede crear una consulta que devuelva solo el nodo de regresión. La tabla NODE_DISTRIBUTION contiene los detalles de la fórmula de regresión. En este ejemplo, las columnas se aplanan y a la tabla NODE_DISTRIBUTION se le asigna un alias para facilitar la visualización. Sin embargo, en este modelo, no se encontraron regresores para relacionar Income con otros atributos continuos. En tales casos, Analysis Services devuelve el valor medio del atributo y la varianza total en el modelo para ese atributo.

SELECT FLATTENED NODE_DISTRIBUTION AS t  
FROM DT_Predict. CONTENT  
WHERE NODE_TYPE = 25  

Resultados de ejemplo:

t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.SOPORTE t.PROBABILIDAD t.VARIANZA t.VALUETYPE
Ingresos anuales Desaparecido 0 0.000457142857142857 0 1
Ingresos anuales 57220.8876687257 17484 0.999542857142857 1041275619.52776 3
57220.8876687257 0 0 1041216662.54387 11

Para obtener más información sobre los tipos de valor y las estadísticas usadas en los modelos de regresión, vea Contenido del modelo de minería de datos para modelos de regresión lineal (Analysis Services - Minería de datos).

Lista de funciones de predicción

Todos los algoritmos de Microsoft admiten un conjunto común de funciones. Sin embargo, el algoritmo de árboles de decisión de Microsoft admite las funciones adicionales enumeradas 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.
IsInNode (DMX) Indica si el nodo especificado contiene el caso actual.
PredictAdjustedProbability (DMX) Devuelve la probabilidad ponderada.
PredictAssociation (DMX) Predice la pertenencia a un conjunto de datos asociativo.
PredictHistogram (DMX) Devuelve una tabla de valores relacionados con el valor previsto actual.
PredictNodeId (DMX) Devuelve el Node_ID para cada caso.
PredictProbability (DMX) Devuelve la probabilidad del valor previsto.
PredictStdev (DMX) Devuelve la desviación estándar prevista para la columna especificada.
PredictSupport (DMX) Devuelve el valor de compatibilidad para un estado especificado.
PredictVariance (DMX) Devuelve la varianza de una columna especificada.

Para obtener una lista de las funciones que son comunes a todos los algoritmos de Microsoft, consulte Funciones de predicción general (DMX). Para obtener la sintaxis de funciones específicas, vea Referencia de funciones de Extensiones de Minería de Datos (DMX).

Véase también

Consultas de minería de datos
Algoritmo de árboles de decisión de Microsoft
Referencia técnica del algoritmo de árboles de decisión de Microsoft
Contenido del modelo de minería para los modelos de árbol de decisión (Analysis Services - Minería de datos)