Agrupación

Agrupación
Para las personas que son nuevas en los lenguajes de programación, el concepto de agrupación también es nuevo para ellas. Python es uno de los idiomas más utilizados a nivel mundial. Este lenguaje de programación de alto nivel es más fácil y simple que cualquier otro lenguaje de programación de alto nivel, que es la razón principal por la cual los desarrolladores principiantes tienden a aprender primero la Python que cualquier otro idioma. En este artículo, exploramos la biblioteca escasa del lenguaje de programación de Python e intentamos comprender el concepto de agrupación en el lenguaje de programación.

¿Qué es Scipy en el lenguaje de programación de Python??

Scipy es una biblioteca de computación científica de código abierto y de código abierto proporcionada por el lenguaje de programación de Python. Está construido en Numpy; Por lo tanto, extiende las funcionalidades de la biblioteca Numpy también. Scipy es una abreviatura de la pitón científico y proporciona métodos útiles para manejar cualquier aplicación científica. Usando la biblioteca Scipy, puede administrar fácilmente cualquier tipo de problemas matemáticos, científicos, de optimización, computación, procesamiento de señales o estadísticos en un programa de Python. Además, proporciona varias técnicas útiles de visualización de datos y manipulación. La agrupación es uno de los métodos básicos de la biblioteca Scipy. Este artículo está específicamente dedicado a la agrupación en el lenguaje de programación de Python.

¿Qué se agrupa en el lenguaje de programación de Python??

La agrupación, como su nombre indica, hace grupos de datos. El concepto básico de agrupación es hacer que los grupos de datos tengan las mismas características. En palabras simples, la agrupación es el concepto de hacer pequeños grupos de datos que son similares en características para un gran grupo de datos. Muchas industrias como la atención médica, las finanzas, el comercio minorista, etc. Utilice el concepto de agrupación para varias tareas analíticas.

El concepto de agrupación en el lenguaje de programación de Python es el mismo que el concepto general de agrupación. El lenguaje de programación de Python proporciona varias herramientas útiles y fáciles de usar para realizar el análisis de clúster. Puede seleccionar entre la lista de la herramienta que mejor se adapte a su problema. Junto con eso, también debe darse cuenta de qué algoritmo funciona mejor y debe ser capaz de evaluar cada algoritmo que pueda usarse para su problema.

Para evaluar el rendimiento del algoritmo de agrupación, debe encontrar la distancia promedio del clúster desde el centro. La distancia promedio desde el centro del clúster de datos a cada observación determina la compacidad de un clúster y esto se conoce comúnmente como centroide. Esto es sensato porque todos los algoritmos de agrupación de Python generan grupos de datos bien empaquetados. Cuanto más sean los puntos de datos en el clúster, mejores serán los resultados del algoritmo de agrupación. Evaluar el rendimiento de un algoritmo de agrupación es tomar la suma de la distancia trazada del clúster contra el número total de grupos.

En general, hay tres técnicas para realizar la agrupación de la agrupación en Python, K-Means, Spectral y Gaussian Menchure Model Clustering. La técnica de agrupación K-Mean funciona mejor para tareas de baja dimensión con pocos números de entradas, mientras que la técnica de agrupación espectral es bastante adecuada para problemas de alta dimensión con varios miles de entradas. Por el contrario, el modelo de mezcla gaussiana se encuentra entre K-means y las técnicas de agrupación espectral. Es un modelo flexible y robusto que funciona mejor con tareas moderadamente complicadas.

¿Qué es Scipy Clustering??

La biblioteca Scipy en Python proporciona dos módulos básicos: el módulo VQ y el módulo de jerarquía para hacer grupos con un programa de Python. El módulo VQ significa cuantización vectorial que es más útil para compresión, comunicaciones, detección de objetivos, teoría de la información, etc. Sin embargo, solo admite los algoritmos de cuantización K-mean y vectorial. Por otro lado, el módulo jerárquico funciona mejor para visualizar los grupos con dendrogramas, calcular estadísticas en grupos, generar grupos jerárquicos a partir de matrices de distancia y cortar enlaces para generar grupos planos. Lo que significa que es más útil para la agrupación aglomerativa y jerárquica.

Cuantización vectorial y agrupación de K-mean

La cuantización vectorial o los algoritmos de agrupación K-mean de la biblioteca Scipy se utilizan para encontrar los grupos y el centro de los grupos en un conjunto de datos. Estos algoritmos toman el conjunto de vectores de observación y el número de grupos para generar como entrada. El algoritmo calcula los centroides del clúster y devuelve para cada uno de los k clústeres. La biblioteca Scipy ofrece la implementación completa del algoritmo K-means a través del paquete de clúster. Así es como puede usar el algoritmo VQ o K-Mean en su programa:

Ejemplo 1:

Demostrar un ejemplo de clúster.VQ para comprender cómo se puede usar en un programa de Python. Eche un vistazo al siguiente código de muestra:

De Scipy.grupo.VQ Import Kmeans, VQ
De Numpy Import vstack, Array
De Numpy.importación aleatoria rand
data = vstack ((rand (10,3) + array ([[.1,.2,.3]), rand (10,3)))
centr, _ = kmeans (datos, 3)
Impresión (Centr)
CLX, _ = VQ (datos, centr)
Imprimir (CLX)

Primero, el Scipy.grupo.VQ se utiliza para importar los módulos KMeans y VQ. Luego, se llama a la biblioteca Numpy para importar el Vstack y la matriz en el programa. Finalmente, el rand se importa al programa utilizando el Numpy.módulo aleatorio. Una variable de "datos" se inicializa y se pasa a la función KMeans () para encontrar el centroide de los datos. Los datos originales y el centroide calculado de los datos se pasan a la función VQ. Consulte el resultado de los módulos KMeans y VQ en la siguiente salida:

Agrupación jerárquica

La agrupación jerárquica se usa para hacer grupos de objetos similares utilizando los algoritmos de aprendizaje no supervisados. El algoritmo de agrupación jerárquica asigna un clúster a cada punto de datos al principio y luego combina los grupos más cercanos en cada iteración, lo que resulta en un solo grupo grande. Es muy útil para descubrir el número óptimo de grupos, presentar ideas y visualización interpretable. Para visualizar los grupos jerárquicos, se utilizan los dendrogramas.

Así es como puede usar la agrupación jerárquica en su programa Python:

Ejemplo 2:

Este ejemplo lo guiará sobre cómo realizar la agrupación jerárquica en un programa de Python. Consulte el siguiente código de muestra:

De Scipy.grupo.Dendrograma de importación de jerarquía, enlace
de matplotlib import pyplot como plt
X = [
[a]
para a en [1, 5, 9, 4, 11, 2]]
Z = linkage (x, 'Ward')
Fig = PLT.Figura (Figsize = (5, 5))
dn = dendrogram (z)

Primero, el Scipy.grupo.La clase de jerarquía se llama en el programa para hacer los grupos de jerarquía y la biblioteca Matplotlib se importa para mostrar el dendrograma del clúster de jerarquía. Los datos se proporcionan en la variable "x". Para dibujar el dendrograma, los datos se pasan a la función dendrogram (). El dendrograma resultante es el siguiente:

Conclusión

Este artículo está dedicado para aprender el concepto de agrupación en el lenguaje de programación de Python. Primero, aprendimos el concepto básico de agrupación. Entonces, exploramos qué es un clúster en Python. La biblioteca Scipy proporciona dos módulos de agrupación: VQ y jerarquía. Exploramos ambos módulos y con la ayuda de un ejemplo de cada módulo, aprendimos a usar y hacer los grupos en el programa Python.