Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta sección se explica la implementación del algoritmo de agrupación en clústeres de Microsoft, incluidos los parámetros que puede usar para controlar el comportamiento de los modelos de agrupación en clústeres. También proporciona instrucciones sobre cómo mejorar el rendimiento al crear y procesar modelos de agrupación en clústeres.
Para obtener información adicional sobre cómo usar modelos de agrupación en clústeres, consulte los temas siguientes:
Implementación del algoritmo de agrupación en clústeres de Microsoft
El algoritmo de agrupación en clústeres de Microsoft proporciona dos métodos para crear clústeres y asignar puntos de datos a los clústeres. El primero, el algoritmo K-means , es un método de agrupación en clústeres duro. Esto significa que un punto de datos solo puede pertenecer a un clúster y que se calcula una sola probabilidad para la pertenencia de cada punto de datos de ese clúster. El segundo método, el método Expectation Maximization (EM), es un método de agrupación en clústeres suaves . Esto significa que un punto de datos siempre pertenece a varios clústeres y que se calcula una probabilidad para cada combinación de punto de datos y clúster.
Puede elegir qué algoritmo usar estableciendo el parámetro CLUSTERING_METHOD . El método predeterminado para la agrupación en clústeres es EM escalable.
Agrupación EM
En la agrupación en clústeres EM, el algoritmo refina de forma iterativa un modelo de clúster inicial para ajustarse a los datos y determina la probabilidad de que exista un punto de datos en un clúster. El algoritmo finaliza el proceso cuando el modelo probabilístico se ajusta a los datos. La función que se usa para determinar el ajuste es la verosimilitud logarítmica de los datos dados el modelo.
Si los clústeres vacíos se generan durante el proceso, o si la pertenencia de uno o varios de los clústeres está por debajo de un umbral determinado, los clústeres con poblaciones bajas se vuelven a crear en nuevos puntos y se vuelve a ejecutar el algoritmo EM.
Los resultados del método de agrupación en clústeres EM son probabilísticos. Esto significa que cada punto de datos pertenece a todos los clústeres, pero cada asignación de un punto de datos a un clúster tiene una probabilidad diferente. Dado que el método permite que los clústeres se superpongan, la suma de elementos de todos los clústeres puede superar el total de elementos del conjunto de entrenamiento. En los resultados del modelo de minería de datos, las puntuaciones que indican el apoyo se ajustan para reflejar esto.
El algoritmo EM es el algoritmo predeterminado que se usa en los modelos de agrupación en clústeres de Microsoft. Este algoritmo se usa como valor predeterminado porque ofrece varias ventajas en comparación con la agrupación en clústeres k-means:
Requiere un examen de base de datos, como máximo.
Funcionará a pesar de la memoria limitada (RAM).
Tiene la capacidad de utilizar un cursor de avance único.
Supera los enfoques de muestreo.
La implementación de Microsoft proporciona dos opciones: EM escalable y no escalable. De forma predeterminada, en EM escalable, los primeros 50 000 registros se usan para inicializar el examen inicial. Si esto se realiza correctamente, el modelo solo usa estos datos. Si el modelo no se puede ajustar con 50 000 registros, se leen 50 000 registros adicionales. En EM no escalable, se lee todo el conjunto de datos independientemente de su tamaño. Este método puede crear clústeres más precisos, pero los requisitos de memoria pueden ser significativos. Dado que EM escalable funciona en un búfer local, la iteración a través de los datos es mucho más rápida y el algoritmo utiliza mucho mejor la caché de memoria del CPU que el EM no escalable. Además, EM escalable es tres veces más rápido que EM no escalable, incluso si todos los datos pueden caber en la memoria principal. En la mayoría de los casos, la mejora del rendimiento no conduce a una menor calidad del modelo completo.
Para obtener un informe técnico que describa la implementación de EM en el algoritmo de agrupación de Microsoft, consulte Escalado de Clústeres EM (Expectativa Maximización) en Bases de Datos Grandes.
Agrupación en clústeres K-Means
La agrupación en clústeres K-means es un método conocido de asignación de pertenencia al clúster mediante la minimización de las diferencias entre los elementos de un clúster al tiempo que maximiza la distancia entre clústeres. El término "medias" en k-means hace referencia al centroide del clúster, que es un punto de datos elegido arbitrariamente y luego refinado de forma iterativa hasta que representa la media real de todos los puntos de datos del clúster. "k" hace referencia a un número arbitrario de puntos que se usan para inicializar el proceso de agrupación en clústeres. El algoritmo k-means calcula las distancias euclidianas cuadradas entre los registros de datos de un clúster y el vector que representa la media del clúster y converge en un conjunto final de clústeres k cuando esa suma alcanza su valor mínimo.
El algoritmo k-means asigna cada punto de datos a exactamente un clúster y no permite la incertidumbre en la pertenencia. La pertenencia a un clúster se expresa como una distancia desde el centroide.
Normalmente, el algoritmo k-means se usa para crear clústeres de atributos continuos, donde calcular la distancia a una media es sencillo. Sin embargo, la implementación de Microsoft adapta el método k-means a los atributos discretos del clúster mediante el uso de probabilidades. Para los atributos discretos, la distancia de un punto de datos desde un clúster determinado se calcula de la siguiente manera:
1 - P(punto de datos, clúster)
Nota:
El algoritmo de agrupación en clústeres de Microsoft no expone la función de distancia usada en la computación k-means y las medidas de distancia no están disponibles en el modelo completado. Sin embargo, puede usar una función de predicción para devolver un valor que corresponda a la distancia, donde se calcula la distancia como probabilidad de un punto de datos que pertenece al clúster. Para más información, consulte ClusterProbability (DMX).
El algoritmo k-means proporciona dos métodos de muestreo del conjunto de datos: K-means no escalable, que carga todo el conjunto de datos y hace que una agrupación en clústeres pase, o k-means escalable, donde el algoritmo usa los primeros 50 000 casos y lee más casos solo si necesita más datos para lograr un buen ajuste del modelo a los datos.
Actualizaciones del algoritmo de agrupación en clústeres de Microsoft en SQL Server 2008
En SQL Server 2008, se cambió la configuración predeterminada del algoritmo de agrupación en clústeres de Microsoft para usar el parámetro interno NORMALIZATION = 1. La normalización se realiza mediante estadísticas de puntuación z y supone la distribución normal. La intención de este cambio en el comportamiento predeterminado es minimizar el efecto de los atributos que podrían tener grandes magnitudes y muchos valores atípicos. Sin embargo, la normalización de la puntuación z puede modificar los resultados de agrupación en clústeres en distribuciones que no son normales (como distribuciones uniformes). Para evitar la normalización y obtener el mismo comportamiento que el algoritmo de agrupación en clústeres K-means en SQL Server 2005, puede usar el cuadro de diálogo Configuración de parámetros para agregar el parámetro personalizado, NORMALIZATION y establecer su valor en 0.
Nota:
El parámetro NORMALIZATION es una propiedad interna del algoritmo de agrupación en clústeres de Microsoft y no se admite. En general, se recomienda usar la normalización en los modelos de agrupación en clústeres para mejorar los resultados del modelo.
Personalización del algoritmo de agrupación en clústeres de Microsoft
El algoritmo de agrupación en clústeres de Microsoft admite varios parámetros que afectan al comportamiento, el rendimiento y la precisión del modelo de minería de datos resultante.
Establecer parámetros de algoritmo
En la tabla siguiente se describen los parámetros que se pueden usar con el algoritmo de clústeres de Microsoft. Estos parámetros afectan tanto al rendimiento como a la precisión del modelo de minería de datos resultante.
Método de agrupamiento
Especifica el método de agrupación en clústeres que se va a usar para el algoritmo. Están disponibles los siguientes métodos de agrupación en clústeres:
| identificación | Método |
|---|---|
| 1 | EM escalable |
| 2 | EM no escalable |
| 3 | K-Means escalable |
| 4 | K-Means no es escalable. |
El valor predeterminado es 1 (EM escalable).
CLUSTER_COUNT
Especifica el número aproximado de clústeres que va a compilar el algoritmo. Si el número aproximado de clústeres no se puede compilar a partir de los datos, el algoritmo compila tantos clústeres como sea posible. Establecer el CLUSTER_COUNT en 0 hace que el algoritmo use heurística para determinar mejor el número de clústeres que se van a compilar.
El valor predeterminado es 10.
SEMILLA_DEL_CLUSTER
Especifica el número de semilla que se usa para generar clústeres aleatoriamente en la fase inicial de la construcción del modelo.
Al cambiar este número, puede cambiar la forma en que se compilan los clústeres iniciales y, a continuación, comparar los modelos que se han creado con diferentes semillas. Si se cambia la semilla, pero los clústeres que se encuentran no cambian en gran medida, el modelo se puede considerar relativamente estable.
El valor predeterminado es 0.
Soporte mínimo
Especifica el número mínimo de casos necesarios para compilar un clúster. Si el número de casos del clúster es inferior a este número, el clúster se trata como vacío y descartado.
Si establece este número demasiado alto, es posible que se pierdan clústeres válidos.
Nota:
Si usa EM, que es el método de agrupación en clústeres predeterminado, algunos clústeres pueden tener un valor de compatibilidad inferior al valor especificado. Esto se debe a que cada caso se evalúa para su pertenencia a todos los clústeres posibles y, para algunos clústeres, es posible que solo haya compatibilidad mínima.
El valor predeterminado es 1.
Modelado de Cardinalidad
Especifica el número de modelos de ejemplo que se construyen durante el proceso de agrupación en clústeres.
Reducir el número de modelos candidatos puede mejorar el rendimiento en riesgo de que falten algunos buenos modelos candidatos.
El valor predeterminado es 10.
Tolerancia de Parada
Especifica el valor que se usa para determinar cuándo se alcanza la convergencia y el algoritmo termina de compilar el modelo. Se alcanza la convergencia cuando el cambio general en las probabilidades del clúster es menor que la relación del parámetro STOPPING_TOLERANCE dividido por el tamaño del modelo.
El valor predeterminado es 10.
TAMAÑO_DE_MUESTRA
Especifica el número de casos que usa el algoritmo en cada paso si el parámetro CLUSTERING_METHOD se establece en uno de los métodos de agrupación en clústeres escalables. Si se establece el parámetro SAMPLE_SIZE en 0, todo el conjunto de datos se agrupará en un solo paso. Cargar todo el conjunto de datos en un solo paso puede provocar problemas de memoria y rendimiento.
El valor predeterminado es 50000.
ATRIBUTOS_DE_ENTRADA_MÁXIMOS
Especifica el número máximo de atributos de entrada que el algoritmo puede controlar antes de invocar la selección de características. Establecer este valor en 0 especifica que no hay ningún número máximo de atributos.
Aumentar el número de atributos puede degradar significativamente el rendimiento.
El valor predeterminado es 255.
ESTADOS MÁXIMOS
Especifica el número máximo de estados de atributo que admite el algoritmo. Si un atributo tiene más estados que el máximo, el algoritmo usa los estados más populares y omite los estados restantes.
Aumentar el número de estados puede degradar significativamente el rendimiento.
El valor predeterminado es 100.
Indicadores de modelado
El algoritmo admite las siguientes marcas de modelado. Se definen indicadores de modelado al crear la estructura o el modelo de minería de datos. Las marcas de modelado especifican cómo se controlan los valores de cada columna durante el análisis.
| Bandera de modelado | Descripción |
|---|---|
| MODEL_EXISTENCE_ONLY | La columna se tratará como si tuviera dos estados posibles: Falta y Existente. Un valor NULL es un valor que falta. Se aplica a la columna del modelo de minería. |
| NO NULO | La columna no puede contener un valor NULL. Se producirá un error si Analysis Services encuentra un valor NULL durante el entrenamiento del modelo. Se aplica a la columna de la estructura de minería. |
Requisitos
Un modelo de agrupación en clústeres debe contener una columna de clave y columnas de entrada. También puede definir columnas de entrada como predecibles. Las columnas establecidas en Predict Only no se utilizan para formar clústeres. La distribución de estos valores en los clústeres se calcula después de compilar los clústeres.
Columnas de entrada y predicción
El algoritmo de agrupación en clústeres de Microsoft admite las columnas de entrada específicas y las columnas de predicción que se enumeran en la tabla siguiente. Para obtener más información sobre lo que significan los tipos de contenido cuando se usan en un modelo de minería de datos, vea Tipos de contenido (minería de datos).
| Columna | Tipos de contenido |
|---|---|
| Atributo de entrada | Continuo, cíclico, discreto, discretizado, clave, tabla, ordenado |
| Atributo de predicción | Continuo, cíclico, discreto, discretizado, tabla, ordenado |
Nota:
Se admiten tipos de contenido cíclicos y ordenados, pero el algoritmo los trata como valores discretos y no realiza un procesamiento especial.
Véase también
Algoritmo de agrupación en clústeres de Microsoft
Ejemplos de consultas de modelos de agrupación en clústeres
Contenido del modelo de minería de datos para los modelos de agrupación en clústeres (Analysis Services - Minería de datos)