martes, 2 de agosto de 2011

Métodos de discretización (minería de datos) en SQL Server Analysis Services

Creo que la mayoria que hemos hecho DataMining nos hemos encontrado con variable continuas que nos complican un poco cuando estamos en la etapa del preprocesamiento. La accion mas comun es la discretizacion que me hizo acuerdo a este grafico en SAS:

image

A continuacion se indicara el porque de la discretizacion y como lo plantea Microsoft en SQL SERVER Analysis Services.
Algunos de los algoritmos que se utilizan para crear modelos de minería de datos en SQL ServerAnalysis Services requieren tipos de contenido específicos para poder funcionar correctamente. Por ejemplo, el algoritmo Bayes naive de Microsoft no puede utilizar columnas continuas como entrada ni predecir valores continuos. Además, algunas columnas pueden contener tal cantidad de valores que el algoritmo no puede identificar con facilidad patrones de interés en los datos para crear un modelo a partir de los mismos.

En estos casos, puede discretizar los datos en las columnas de modo que pueda utilizar los algoritmos para producir un modelo de minería de datos. La discretización es el proceso mediante el cual los valores se incluyen en depósitos para que haya un número limitado de estados posibles. Los depósitos se tratan como si fueran valores ordenados y discretos. Puede discretizar tanto columnas numéricas como de cadena.

Pueden utilizarse varios métodos para discretizar datos. Si la solución de minería de datos usa datos relacionales, puede controlar el número de depósitos que se deben usar para agrupar los datos estableciendo el valor de la propiedad DiscretizationBucketCount. El número predeterminado de depósitos es 5.

Si la solución de minería de datos usa datos de un cubo OLAP (Procesamiento analítico en línea), el algoritmo de minería de datos calcula automáticamente el número de depósitos que se deben generar mediante la siguiente ecuación, donde n es el número de valores de datos distintos existentes en la columna:

Number of Buckets = sqrt(n)

Si no desea que Analysis Services calcule el número de depósitos, puede utilizar la propiedad DiscretizationBucketCount para especificar manualmente el número de depósitos.

La siguiente tabla describe los métodos que puede utilizar para discretizar datos en Analysis Services.

Método de discretización

Descripción

AUTOMATIC

Analysis Services determina el método de discretización que se va a utilizar.

CLUSTERS

El algoritmo divide los datos en grupos mediante el muestreo de los datos de entrenamiento, inicializa en un número de puntos aleatorios y, a continuación, ejecuta varias iteraciones del algoritmo de clústeres de Microsoft utilizando el método de agrupación en clústeres EM (Expectation Maximization). El método CLUSTERS resulta útil porque funciona en cualquier curva de distribución. Sin embargo, requiere más tiempo de procesamiento que otros métodos de discretización.

Este método sólo puede utilizarse con columnas numéricas.

EQUAL_AREAS

El algoritmo divide los datos en grupos que contienen el mismo número de valores. Este método es la mejor opción para las curvas de distribución normales, pero no se obtendrán resultados óptimos si la distribución incluye grandes cantidades de valores en un grupo pequeño de los datos continuos. Por ejemplo, si la mitad de los productos tiene un costo de 0, la mitad de los datos se encontrarán bajo un solo punto de la curva. En esta distribución, este método divide los datos en un intento de establecer una discretización igual en varias áreas. Esto produce una representación inexacta de los datos.

0 comentarios: