Cluster Scipy

Cluster Scipy
Para pessoas que são novas nas linguagens de programação, o conceito de agrupamento também é novo para eles. Python é um dos idiomas mais usados ​​globalmente. Essa linguagem de programação de alto nível é mais fácil e simples do que qualquer outra linguagem de programação de alto nível, que é a principal razão pela qual os desenvolvedores iniciantes tendem a aprender o Python primeiro do que qualquer outro idioma. Neste artigo, exploramos a Biblioteca Cipy da linguagem de programação Python e tentamos entender o conceito de agrupamento na linguagem de programação.

O que é círculo na linguagem de programação Python?

Scipy é uma biblioteca de computação científica de código aberto e gratuito fornecido pela linguagem de programação Python. É construído sobre Numpy; Portanto, estende as funcionalidades da biblioteca Numpy também. Scipy é uma abreviação do Python científico e fornece métodos úteis para lidar com qualquer aplicação científica. Usando a biblioteca Scipy, você pode gerenciar facilmente qualquer tipo de problemas matemáticos, científicos, de otimização, computacional, processamento de sinais ou estatísticos em um programa Python. Além disso, fornece várias técnicas úteis de visualização e manipulação de dados. O clustering é um dos métodos básicos da biblioteca scipy. Este artigo é especificamente dedicado ao agrupamento na linguagem de programação Python.

O que está agrupando na linguagem de programação Python?

Clustering - como o nome sugere - faz aglomerados de dados. O conceito básico de agrupamento é fazer grupos de dados com as mesmas características. Em palavras simples, o agrupamento é o conceito de fazer pequenos grupos de dados que são semelhantes em característica a um grande grupo de dados. Muitas indústrias como saúde, finanças, varejo, etc. Use o conceito de agrupamento para várias tarefas analíticas.

O conceito de agrupamento na linguagem de programação python é o mesmo que o conceito geral de agrupamento. A linguagem de programação Python fornece várias ferramentas úteis e fáceis de usar para executar a análise de cluster. Você pode selecionar da lista da ferramenta que melhor se adapta ao seu problema. Junto com isso, você também precisa perceber qual algoritmo funciona melhor e você deve ser capaz de avaliar cada algoritmo que pode ser usado para o seu problema.

Para avaliar o desempenho do algoritmo de agrupamento, você precisa encontrar a distância média do cluster do centro. A distância média do centro do cluster de dados para cada observação determina a compactação de um cluster e isso é comumente conhecido como centróide. Isso é sensato porque todos os algoritmos de cluster de Python geram aglomerados de dados fortemente compactados. Quanto mais próximos os pontos de dados no cluster, melhores os resultados do algoritmo de agrupamento. Avaliar o desempenho de um algoritmo de agrupamento é pegar a soma da distância do cluster plotada contra o número total de clusters.

Em geral, existem três técnicas para realizar o agrupamento em cluster de Modelo Python, K-Means, Spectral e Gaussian Model. A técnica de agrupamento K-Mean funciona melhor para tarefas de baixa dimensão com poucos números de entradas, enquanto a técnica de agrupamento espectral é bastante adequada para problemas de alta dimensão com vários milhares de entradas. Pelo contrário, o modelo de mistura gaussiano fica entre K-Means e Técnicas de Cluster Spectral. É um modelo flexível e robusto que funciona melhor com tarefas moderadamente complicadas.

O que é agrupamento círculo?

A biblioteca scipy em Python fornece dois módulos básicos: o módulo VQ e o módulo de hierarquia para fazer clusters com um programa Python. O módulo VQ significa quantização de vetores, que é mais útil para compressão, comunicações, detecção de metas, teoria da informação etc. No entanto, ele suporta apenas os algoritmos de quantização de K-Mean e Vector. Por outro lado, o módulo hierárquico funciona melhor para visualizar os aglomerados com dendrogramas, calculando estatísticas em clusters, gerando aglomerados hierárquicos a partir de matrizes de distância e cortando vínculos para gerar clusters planos. O que significa que é mais útil para aglomerados e aglomerados hierárquicos.

Quantização de vetores e agrupamento K-Mean

A quantização do vetor ou os algoritmos de agrupamento K-Mean da biblioteca Scipy são usados ​​para encontrar os clusters e o centro de clusters em um conjunto de dados. Esses algoritmos tomam o conjunto de vetores de observação e o número de clusters para gerar como entrada. O algoritmo calcula os centróides do cluster e retorna para cada um dos clusters K. A biblioteca scipy fornece a implementação completa do algoritmo K-Means por meio do pacote de cluster. Aqui está como você pode usar o algoritmo VQ ou K-Mean em seu programa:

Exemplo 1:

Vamos demonstrar um exemplo de cluster.VQ para entender como pode ser usado em um programa Python. Dê uma olhada no seguinte código de amostra:

de Scipy.conjunto.VQ Importar Kmeans, VQ
De Numpy Import vStack, Array
de Numpy.Rand de importação aleatória
Data = Vstack ((Rand (10,3) + Array ([.1,.2,.3]), Rand (10,3)))
centr, _ = kmeans (dados, 3)
Imprimir (Centr)
clx, _ = vq (dados, centr)
Imprimir (CLX)

Primeiro, o Scipy.conjunto.O VQ é usado para importar os módulos Kmeans e VQ. Então, a biblioteca Numpy é chamada para importar o vstack e a matriz no programa. Finalmente, o rand é importado para o programa usando o Numpy.módulo aleatório. Uma variável de "dados" é inicializada e passada para a função Kmeans () para encontrar o centróide dos dados. Os dados originais e o centróide calculado dos dados são passados ​​para a função VQ. Veja o resultado dos módulos Kmeans e VQ na seguinte saída:

Agrupamento hierárquico

O agrupamento hierárquico é usado para fazer grupos de objetos semelhantes usando os algoritmos de aprendizado não supervisionado. O algoritmo de cluster hierárquico atribui um cluster a cada ponto de dados no início e depois combina os clusters mais próximos em cada iteração, resultando em apenas um grande cluster. É muito útil para descobrir o número ideal de clusters, apresentar insights e visualização interpretável. Para visualizar os aglomerados hierárquicos, os dendrogramas são utilizados.

Aqui está como você pode usar o cluster hierárquico em seu programa Python:

Exemplo 2:

Este exemplo o guiará sobre como executar o cluster hierárquico em um programa Python. Veja o seguinte código de amostra:

de Scipy.conjunto.Dendrograma de importação de hierarquia, ligação
De Matplotlib Import pyplot como PLT
X = [
[a]
para um em [1, 5, 9, 4, 11, 2]]
Z = Linkage (x, 'ala')
fig = plt.Figura (FigSize = (5, 5))
dn = dendrograma (z)

Primeiro, o Scipy.conjunto.A aula de hierarquia é chamada no programa para fazer os clusters de hierarquia e a biblioteca Matplotlib é importada para exibir o dendrograma do cluster de hierarquia. Os dados são fornecidos na variável "X". Para desenhar o dendrograma, os dados são passados ​​para a função dendrogram (). O dendrograma resultante é o seguinte:

Conclusão

Este artigo foi dedicado a aprender o conceito de agrupamento na linguagem de programação Python. Primeiro, aprendemos o conceito básico de agrupamento. Então, exploramos o que é um cluster em Python. A biblioteca scipy fornece dois módulos de agrupamento - VQ e hierarquia. Exploramos os dois módulos e com a ajuda de um exemplo de cada módulo, aprendemos a usar e fazer os clusters no programa Python.