Referência técnica do algoritmo Microsoft Clustering

Esta seção explica a implementação do algoritmo de clustering Microsoft, inclusive os parâmetros que podem ser usados para controlar o comportamento de modelos de clustering. Ela também fornece orientação sobre como melhorar o desempenho ao criar e processar modelos de clustering. 

Para obter informações adicionais sobre como usar modelos de clustering, consulte os seguintes tópicos:

Implementação do algoritmo do Microsoft Clustering

O algoritmo do Microsoft Clustering fornece dois métodos para criar clusters e atribuir pontos de dados aos clusters. O primeiro, o algoritmo K-means, é um método de cluster rígido. Isso significa que um ponto de dados pode pertencer somente a um cluster e que uma única probabilidade é calculada para a associação de cada ponto de dados nesse cluster. O segundo método, de Maximização de Expectativa (EM), é um método de cluster flexível. Isso significa que um ponto de dados sempre pertence a vários clusters e que uma probabilidade é calculada para cada combinação de ponto de dados e cluster.

Você pode escolher o algoritmo que será usado definindo o parâmetro CLUSTERING_METHOD. O método padrão de cluster é o EM evolutivo.

Cluster EM

No cluster EM, o algoritmo refina de modo iterativo um modelo de clustering inicial para ajustar os dados e determina a probabilidade de um ponto de dados existir no cluster. O algoritmo termina o processo quando o modelo de probabilidade ajusta os dados. A função usada para determinar o ajuste é a probabilidade de log dos dados de acordo com o modelo.

Se clusters vazios forem gerados durante o processo ou se a associação de um ou mais clusters estiver abaixo de um determinado limite, os clusters com baixas populações serão propagados novamente em novos pontos e o algoritmo EM será executado mais uma vez.

Os resultados do método de cluster EM são probabilidades. Isso significa que cada ponto de dados pertence a todos os clusters, mas cada atribuição de um ponto de dados a um cluster tem uma probabilidade diferente. Como o método permite a sobreposição dos clusters, a soma dos itens de todos os clusters pode ultrapassar o total de itens do conjunto de treinamento. Nos resultados de modelo de mineração, as pontuações que indicam suporte são ajustadas para cumprir esse requisito.

O algoritmo EM é o algoritmo padrão usado nos modelos de clustering da Microsoft. Esse algoritmo é usado como o padrão porque oferece inúmeras vantagens em comparação ao cluster K-means:

  • Requer no máximo uma verificação de banco de dados.

  • Funciona apesar da memória limitada (RAM).

  • Pode usar um cursor de somente avanço.

  • Supera as abordagens de amostragem.

A implementação da Microsoft fornece duas opções: EM evolutivo e não evolutivo. Por padrão, no EM evolutivo, os primeiros 50.000 registros são usados para propagar a verificação inicial. Se esse processo for bem-sucedido, o modelo só usará esses dados. Se não for possível ajustar o modelo com 50.000 registros, serão lidos mais 50.000. No EM não evolutivo, o conjunto de dados inteiro é lido independentemente do tamanho. Esse método pode criar clusters mais precisos, mas os requisitos de memória podem ser significativos. Como o EM evolutivo atua em um buffer local, a iteração através dos dados é muito mais rápida e o algoritmo usa muito melhor o cache de memória da CPU do que o EM não evolutivo. Além disso, o EM evolutivo é três vezes mais rápido do que o EM não evolutivo, mesmo que seja possível ajustar os dados na memória principal. Na maioria dos casos, a melhoria do desempenho não diminui a qualidade do modelo completo.

Para obter um relatório técnico que descreve a implementação do EM no algoritmo do Microsoft Clustering, consulte Cluster EM (Maximização de Expectativa) evolutivo em grandes bancos de dados.

Cluster K-Means

O cluster K-means é um método conhecido de atribuir a associação de clusters minimizando as diferenças entre os itens de um cluster e maximizando a distância entre os clusters. Em K-means, a palavra “means” (médio) refere-se ao centroide do cluster, que é um ponto de dados escolhido arbitrariamente e refinado de modo iterativo até representar a média real de todos os pontos de dados do cluster. O “K” refere-se a um número arbitrário de pontos que são usados para propagar o processo de cluster. O algoritmo K-means calcula as distâncias euclidianas quadradas entre os registros de dados de um cluster e o vetor que representa a média do cluster e é convertido em um conjunto final de K clusters quando essa soma atinge um valor mínimo.

O algoritmo K-means atribui cada ponto de dados exatamente a um cluster e não permite incertezas na associação. A associação em um cluster é expressa como uma distância do centroide.

Normalmente, o algoritmo K-means é usado para criar clusters de atributos contínuos, onde calcular a distância até o centro é simples. No entanto, a implementação do Microsoft adapta o método K-means para atributos de distinção de cluster usando probabilidades.  Para os atributos de distinção, a distância de um ponto de dados a partir de um cluster específico é calculada da seguinte maneira:

1 - P (ponto de dados, cluster)

ObservaçãoObservação

O algoritmo do Microsoft Clustering não expõe a função de distância usada no cálculo de K-means e as medidas de distância não estão disponíveis no modelo concluído. No entanto, é possível usar uma função de previsão para retornar um valor que corresponde à distância, onde a distância é calculada como a probabilidade de um ponto de dados pertencer ao cluster. Para obter mais informações, consulte ClusterProbability (DMX).

O algoritmo K-means fornece dois métodos de amostragem do conjunto de dados: K-means não evolutivo, que carrega o conjunto de dados inteiro e faz uma passagem de cluster, ou K-means evolutivo, em que o algoritmo usa os primeiros 50.000 casos e lê mais casos somente se precisar de mais dados para atingir um bom ajuste do modelo aos dados.

Atualizações para o algoritmo Microsoft Clustering no SQL Server 2008

No SQL Server 2008, a configuração padrão do algoritmo Microsoft Clustering foi alterada para usar o parâmetro interno, NORMALIZATION = 1. A normalização é executada usando pontuação z e pressupõe uma distribuição normal. O objetivo dessa alteração no comportamento padrão foi minimizar o efeito de atributos que podem ter grandes magnitudes e muitas exceções. No entanto, a normalização da pontuação z pode alterar os resultados do clustering em distribuições que não são normais (como distribuições uniformes). Como resultado dessa implementação, clientes que migram soluções do SQL Server 2005 Analysis Services para 2008 podem observar que os modelos de clustering agora produzem resultados diferentes. Para impedir a normalização e obter o mesmo comportamento do algoritmo de clustering K-means no SQL Server 2005, é possível usar a caixa de diálogo Configurações de Parâmetro para adicionar o parâmetro personalizado, NORMALIZATION, e definir seu valor como 0.

ObservaçãoObservação

O parâmetro NORMALIZATION é uma propriedade interna do algoritmo Microsoft Clustering, e não há suporte para ele. Em geral, o uso da normalização é recomendável em modelos de clustering para melhorar os resultados do modelo.

Personalizando o algoritmo Microsoft Clustering

O algoritmo Microsoft Clustering dá suporte a vários parâmetros que afetam o comportamento, o desempenho e a exatidão do modelo de mineração resultante.

Definindo parâmetros de algoritmo

A tabela a seguir descreve os parâmetros que podem ser usados com o algoritmo do Microsoft Clustering. Esses parâmetros afetam o desempenho e a exatidão do modelo de mineração resultante.

  • CLUSTERING_METHOD
    Especifica o método de cluster para o algoritmo a ser usado. Os métodos de cluster a seguir estão disponíveis:

    ID

    Método

    1

    EM evolutivo

    2

    EM não evolutivo

    3

    K-Means evolutivo

    4

    K-means não evolutivo

    O padrão é 1 (EM evolutivo).

  • CLUSTER_COUNT
    Especifica o número aproximado de clusters a serem criados pelo algoritmo. Se o número aproximado de clusters não pode ser criado a partir dos dados, o algoritmo cria o máximo de clusters possível. Quando CLUSTER_COUNT é definido como 0, o algoritmo usa heurísticos para determinar melhor o número de clusters a serem criados.

    O padrão é 10.

  • CLUSTER_SEED
    Especifica o número de propagação usado apenas para gerar clusters aleatoriamente para o estágio inicial de criação de modelo.

    Ao alterar esse número, você pode alterar o modo de criação dos clusters iniciais e, em seguida, comparar os modelos criados com propagações diferentes. Se a propagação for alterada, mas os clusters encontrados não mudarem muito, o modelo pode ser considerado relativamente estável.

    O padrão é 0.

  • MINIMUM_SUPPORT
    Especifica o número mínimo de casos necessários para criar um cluster. Se o número de casos do cluster for menor que esse número, o cluster será tratado como vazio e descartado.

    Se você definir este número muito alto, poderá perder clusters válidos.

    ObservaçãoObservação

    Se o EM for usado, que é o método de cluster padrão, alguns clusters poderão ter um valor de suporte inferior ao valor especificado. Isso acontece porque a associação de cada caso é avaliada em todos os clusters possíveis e, em alguns clusters, talvez exista apenas um suporte mínimo.

    O padrão é 1.

  • MODELLING_CARDINALITY
    Especifica o número de modelos de exemplo construídos durante o processo de cluster.

    Reduzir o número de modelos candidatos pode melhorar o desempenho, mas pode acarretar a perda de alguns bons modelos candidatos.

    O padrão é 10.

  • STOPPING_TOLERANCE
    Especifica o valor usado para determinar quando a convergência é alcançada e o algoritmo terminou de criar o modelo. A convergência é alcançada quando a alteração geral nas probabilidades do cluster é menor do que a taxa do parâmetro STOPPING_TOLERANCE dividida pelo tamanho do modelo.

    O padrão é 10.

  • SAMPLE_SIZE
    Especifica o número de casos que o algoritmo usará em cada passagem se o parâmetro CLUSTERING_METHOD for definido como um dos métodos de cluster evolutivo. A definição do parâmetro SAMPLE_SIZE como 0 fará com que todo o conjunto de dados seja clusterizado em uma única passagem. Carregar o conjunto de dados inteiro em uma única passagem pode causar problemas de memória e de desempenho.

    O padrão é 50.000.

  • MAXIMUM_INPUT_ATTRIBUTES
    Especifica o número máximo de atributos de entrada que o algoritmo pode manipular antes de invocar a seleção de recurso. A definição deste valor como 0 especifica que não há um número máximo de atributos.

    O aumento do número de atributos pode afetar o desempenho significativamente.

    O padrão é 255.

  • MAXIMUM_STATES
    Especifica o número máximo de estados de atributo para os quais o algoritmo dá suporte. Se um atributo tiver mais estados que o valor máximo, o algoritmo usará os estados mais populares e ignorará os demais estados.

    O aumento do número de estados pode afetar o desempenho significativamente.

    O padrão é 100.

Sinalizadores de modelagem

O algoritmo dá suporte aos seguintes sinalizadores de modelagem. Você define sinalizadores de modelagem ao criar a estrutura de mineração ou o modelo de mineração. Os sinalizadores de modelagem especificam como os valores de cada coluna são controlados durante a análise.

Sinalizador de modelagem

Descrição

MODEL_EXISTENCE_ONLY

A coluna será tratada como tendo dois estados possíveis: Ausente e Existente. Nulo é um valor ausente.

Aplica-se à coluna de modelo de mineração.

NOT NULL

A coluna não pode conter um valor nulo. Um erro ocorrerá se o Analysis Services encontrar um valor nulo durante o treinamento do modelo.

Aplica-se à coluna de estrutura de mineração.

Requisitos

Um modelo de clustering deve conter uma coluna chave e colunas de entrada. Você também pode definir colunas de entrada como sendo previsíveis. As colunas definidas como Predict Only não são usadas para criar clusters. A distribuição desses valores nos clusters é calculada após a criação dos clusters.

Colunas de entrada e colunas previsíveis

O algoritmo do Microsoft Clustering dá suporte a colunas de entrada e colunas previsíveis específicas que são listadas na tabela a seguir. Para obter mais informações sobre o significado do tipo de conteúdo quando usado em um modelo de mineração, consulte Tipos de conteúdo (mineração de dados).

Coluna

Tipos de conteúdo

Atributo de entrada

Contínuo, cíclico, discreto, diferenciado, chave, tabela, ordenado

Atributo previsível

Contínuo, cíclico, discreto, diferenciado, tabela, ordenado

ObservaçãoObservação

Os tipos de conteúdo Cíclico e Ordenado têm suporte, mas o algoritmo os trata como valores discretos e não executa processamento especial.