Filtrar un tabla anidada en un modelo de minería de datos (tutorial intermedio de minería de datos)

Una vez creado y explorado el modelo, tal vez decida centrarse en un subconjunto de datos del cliente. Por ejemplo, es posible que sólo desee analizar las cestas que contienen un producto específico o los datos demográficos de los clientes que no han realizado ninguna compra en un determinado período.

SQL Server 2008 Analysis Services permite filtrar los datos que se utilizan en un modelo de minería de datos, de modo que no sea necesario configurar una nueva vista del origen de datos para usar datos diferentes. En el Tutorial básico de minería de datos, aprendió a filtrar los datos de una tabla sin formato aplicando condiciones a la tabla de casos. En esta tarea, creará un filtro que se aplica a una tabla anidada.

Comparación de los filtros en tablas anidadas y en tablas de casos

Si la vista del origen de datos contiene una tabla de casos y una tabla anidada, como la vista del origen de datos usada en el modelo Association, puede filtrar valores de la tabla de casos, comprobar la presencia o ausencia de un valor en la tabla anidada o alguna combinación de ambos.

En esta tarea, primero realizará una copia del modelo Association y, a continuación, agregará los atributos IncomeGroup y Region al nuevo modelo relacionado, para que pueda crear un filtro a partir de esos atributos en la tabla de casos.

Para crear y modificar una copia del modelo de asociación

  1. En la ficha Modelos de minería de datos de Business Intelligence Development Studio, haga clic con el botón secundario en el modelo Asociación y seleccione Nuevo modelo de minería de datos.

  2. Para Nombre del modelo, escriba Asociación filtrada. Para Nombre del algoritmo, seleccione Reglas de asociación de Microsoft. Haga clic en Aceptar.

  3. En la columna para el modelo Association Filtered, haga clic en la fila IncomeGroup y cambie el valor de Omitir a Entrada.

A continuación, creará un filtro para la tabla de casos en el nuevo modelo de asociación. El filtro pasará al modelo sólo los clientes de la región de destino o con el nivel de ingresos de destino. A continuación, agregará un segundo conjunto de condiciones de filtro para especificar que el modelo use sólo los clientes cuyas cestas de la compra contengan al menos un producto.

Para agregar un filtro a un modelo de minería de datos

  1. En la pestaña Modelos de minería de datos, haga clic con el botón secundario en el modelo Association Filtered y seleccione Establecer filtro de modelos.

  2. En el cuadro de diálogo Filtro del modelo, haga clic en la fila superior de la cuadrícula en el cuadro de texto Columna de la estructura de minería de datos.

  3. En el cuadro de texto Columna de la estructura de minería de datos, seleccione IncomeGroup.

    El icono situado en la parte izquierda del cuadro de texto cambia para indicar que el elemento seleccionado es una columna.

  4. Haga clic en el cuadro de texto Operador y seleccione el operador = de la lista.

  5. Haga clic en el cuadro de texto Valor y escriba Alto en el cuadro.

  6. Haga clic en la siguiente fila de la cuadrícula.

  7. Haga clic en el cuadro de texto AND/OR de la siguiente fila de la cuadrícula y seleccione OR.

  8. En el cuadro de texto Columna de la estructura de minería de datos, seleccione IncomeGroup. En el cuadro de texto Valor, escriba Moderado.

    La condición de filtro creada se agrega automáticamente al cuadro de texto Expresión y debe ser similar a la siguiente:

    [IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate'

  9. Haga clic en la fila siguiente de la cuadrícula, dejando el valor del operador predeterminado, AND.

  10. Para Operador, deje el valor predeterminado, Contains. Haga clic en el cuadro de texto Valor.

  11. En el cuadro de diálogo Filtro, en la primera fila bajo Columna de la estructura de minería de datos, seleccione Modelo.

  12. Para Operador, seleccione IS NOT NULL. Deje en blanco el cuadro de texto Valor. Haga clic en Aceptar.

    La condición de filtro del cuadro de texto Expresión del cuadro de diálogo Filtro del modelo se actualiza automáticamente para incluir la nueva condición en la tabla anidada. La expresión completa es la siguiente:

    [IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate' AND EXISTS (SELECT * FROM [vAssocSeqLineItems] WHERE [Model] <> NULL)

  13. Haga clic en Aceptar.  

Para habilitar la obtención de detalles y procesar el modelo filtrado

  1. En la ficha Modelos de minería de datos, haga clic con el botón secundario en el modelo Asociación filtrada y seleccione Propiedades.

  2. Cambie la propiedad AllowDrillThrough a True.

  3. Haga clic con el botón secundario en el modelo de minería de datos Asociación filtrada y seleccione Procesar modelo.

  4. Haga clic en en el mensaje de error para implementar el nuevo modelo en la base de datos de Analysis Services.

  5. En el cuadro de diálogo Procesar estructura de minería de datos, haga clic en Ejecutar.

  6. Cuando termine de procesarse la estructura, haga clic en Cerrar para salir del cuadro de diálogo Progreso del proceso y haga clic de nuevo en Cerrar para salir del cuadro de diálogo Procesar estructura de minería de datos.

Mediante el Visor de árbol de contenido genérico de Microsoft y examinando el valor de NODE_SUPPORT, puede comprobar que el modelo filtrado contiene menos casos que el modelo original.

Observaciones

El filtro de tabla anidada que acaba de crear sólo comprueba la presencia de al menos una fila en la tabla anidada; no obstante, puede crear condiciones de filtro que comprueben la existencia de productos específicos. Por ejemplo, podría crear el siguiente filtro:

 [IncomeGroup] = 'High' AND
  EXISTS (SELECT * FROM [<nested table name>] WHERE [Model] = 'Water Bottle' ) 

Esta instrucción restringe los clientes de la tabla de casos a sólo aquéllos que han comprado una botella de agua. Sin embargo, dado que el número de atributos de tabla anidada es potencialmente ilimitado, Analysis Services no suministra ninguna lista de valores posibles entre los que seleccionar. En lugar de ello, debe escribir el valor exacto.

Puede hacer clic en Editar consulta para cambiar manualmente la expresión de filtro. Sin embargo, si cambia manualmente una parte de la expresión de filtro, la cuadrícula estará deshabilitada y a partir de este momento deberá trabajar solo con la expresión de filtro en modo de edición de texto. Para restaurar el modo de edición de cuadrícula, debe borrar la expresión de filtro y comenzar de nuevo.

Tenga en cuenta también que no se puede usar el operador LIKE en una tabla anidada.