Clustering scipy

Clustering scipy
Pour les personnes nouvelles dans les langages de programmation, le concept de clustering est également nouveau pour eux. Python est l'une des langues les plus utilisées dans le monde entier. Ce langage de programmation de haut niveau est plus facile et plus simple que tout autre langage de programmation de haut niveau, ce qui est la principale raison pour laquelle les développeurs débutants ont tendance à apprendre le python en premier que n'importe quelle autre langue. Dans cet article, nous explorons la bibliothèque Scipy Bibliothèque du langage de programmation Python et essayons de comprendre le concept de clustering dans le langage de programmation.

Qu'est-ce que Scipy dans le langage de programmation Python?

Scipy est une bibliothèque de calculs scientifiques open-source et gratuite fournie par le langage de programmation Python. Il est construit sur Numpy; Par conséquent, il étend également les fonctionnalités de la bibliothèque Numpy. Scipy est une abréviation de Python scientifique et fournit des méthodes utiles pour gérer toute application scientifique. En utilisant la bibliothèque Scipy, vous pouvez facilement gérer tout type de problèmes mathématiques, scientifiques, optimisation, de calcul, de traitement du signal ou statistique dans un programme Python. De plus, il fournit diverses techniques de visualisation et de manipulation des données utiles. Le clustering est l'une des méthodes de base de la bibliothèque Scipy. Cet article est spécifiquement dédié au regroupement dans le langage de programmation Python.

Qu'est-ce que le regroupement dans le langage de programmation Python?

Clustering - comme son nom l'indique - fait des grappes de données. Le concept de base du clustering est de faire des grappes de données ayant les mêmes caractéristiques. En termes simples, le regroupement est le concept de fabrication de petits groupes de données similaires caractéristiques à un grand groupe de données. De nombreuses industries comme les soins de santé, la finance, le commerce de détail, etc. Utilisez le concept de clustering pour plusieurs tâches analytiques.

Le concept de regroupement dans le langage de programmation Python est le même que le concept général de clustering. Le langage de programmation Python fournit plusieurs outils utiles et faciles à utiliser pour effectuer l'analyse du cluster. Vous pouvez sélectionner dans la liste de l'outil qui convient le mieux à votre problème. Parallèlement à cela, vous devez également réaliser quel algorithme fonctionne mieux et vous devez être en mesure d'évaluer chaque algorithme qui peut être utilisé pour votre problème.

Pour évaluer les performances de l'algorithme de clustering, vous devez trouver la distance moyenne du cluster du centre. La distance moyenne du centre du cluster de données à chaque observation détermine la compacité d'un cluster et c'est communément appelé centroïde. Ceci est raisonnable car tous les algorithmes de clustering Python génèrent des grappes de données étroitement emballées. Plus les points de données dans le cluster sont lieux, plus les résultats de l'algorithme de clustering sont. Évaluer les performances d'un algorithme de clustering, c'est prendre la somme de la distance de cluster tracée par rapport au nombre total de clusters.

En général, il existe trois techniques pour effectuer le regroupement dans Python, K-Means, Spectral et Gaussian Mixture Model Clustering. La technique de clustering K-Mean fonctionne mieux pour les tâches de basse dimension avec peu de nombres d'entrées, tandis que la technique de clustering spectrale convient tout à fait pour des problèmes de dimension élevée avec plusieurs milliers d'entrées. Au contraire, le modèle de mélange gaussien se situe entre les k-means et les techniques de regroupement spectrales. C'est un modèle flexible et robuste qui fonctionne mieux avec des tâches modérément compliquées.

Qu'est-ce que le clustering Scipy?

La bibliothèque Scipy à Python fournit deux modules de base: le module VQ et le module de hiérarchie pour fabriquer des clusters avec un programme Python. Le module VQ signifie la quantification vectorielle qui est la plus utile pour la compression, les communications, la détection des cibles, la théorie de l'information, etc. Cependant, il ne prend en charge que les algorithmes de quantification K-Mean et vectoriels. D'un autre côté, le module hiérarchique fonctionne mieux pour visualiser les clusters avec des dendrogrammes, le calcul des statistiques sur les clusters, la génération de grappes hiérarchiques à partir de matrices de distance et la coupe de liens pour générer des grappes plates. Ce qui signifie qu'il est très utile pour le regroupement agglomératif et hiérarchique.

Quantification vectorielle et clustering k-kean

La quantification vectorielle ou les algorithmes de clustering K-Mean de la bibliothèque Scipy sont utilisés pour trouver les grappes et le centre de clusters dans un ensemble de données. Ces algorithmes prennent l'ensemble des vecteurs d'observation et le nombre de clusters à générer en entrée. L'algorithme calcule les centroïdes du cluster et revient pour chacun des k clusters. La bibliothèque Scipy donne la mise en œuvre complète de l'algorithme K-means via le package de cluster. Voici comment vous pouvez utiliser l'algorithme VQ ou K-Mean dans votre programme:

Exemple 1:

Voyons un exemple de cluster.VQ pour comprendre comment il peut être utilisé dans un programme Python. Jetez un œil à l'exemple de code suivant:

de Scipy.grappe.VQ Import Kmeans, VQ
De Numpy Import Vstack, Array
de Numpy.Importation aléatoire Rand
data = vstack ((rand (10,3) + array ([[.1,.2,.3]), Rand (10,3)))
centr, _ = kmeans (données, 3)
Imprimer (Centr)
clx, _ = vq (données, centr)
Imprimer (CLX)

Tout d'abord, le scipy.grappe.VQ est utilisé pour importer les modules Kmeans et VQ. Ensuite, la bibliothèque Numpy est appelée pour importer le vstack et le tableau du programme. Enfin, le Rand est importé dans le programme en utilisant le Numpy.module aléatoire. Une variable «données» est initialisée et transmise à la fonction kmeans () pour trouver le centroïde des données. Les données d'origine et le centroïde calculé des données sont transmis à la fonction VQ. Voir le résultat des modules Kmeans et VQ dans la sortie suivante:

Classification hiérarchique

Le regroupement hiérarchique est utilisé pour fabriquer des grappes d'objets similaires en utilisant les algorithmes d'apprentissage non supervisés. L'algorithme de clustering hiérarchique attribue un cluster à chaque point de données au début, puis combine les clusters les plus proches à chaque itération, ce qui entraîne un seul grand cluster. Il est très utile pour découvrir le nombre optimal de clusters, présenter des informations et une visualisation interprétable. Pour visualiser les grappes hiérarchiques, les dendrogrammes sont utilisés.

Voici comment vous pouvez utiliser le clustering hiérarchique dans votre programme Python:

Exemple 2:

Cet exemple vous guidera sur la façon d'effectuer le clustering hiérarchique dans un programme Python. Voir l'exemple de code suivant:

de Scipy.grappe.Hiérarchie Import Dendrogram, liaison
de Matplotlib importe Pypllot comme plt
X = [
[un]
pour A dans [1, 5, 9, 4, 11, 2]]
Z = lien (x, 'ward')
Fig = plt.Figure (FigSize = (5, 5))
dn = dendrogram (z)

Tout d'abord, le scipy.grappe.La classe de hiérarchie est appelée dans le programme pour faire des grappes de hiérarchie et la bibliothèque Matplotlib est importée pour afficher le dendrogramme du cluster de hiérarchie. Les données sont fournies dans la variable «x». Pour dessiner le dendrogramme, les données sont transmises à la fonction dendrogram (). Le dendrogramme résultant est le suivant:

Conclusion

Cet article est conçu avec dévouement pour apprendre le concept de regroupement dans le langage de programmation Python. Tout d'abord, nous avons appris le concept de base du regroupement. Ensuite, nous avons exploré ce qu'est un cluster à Python. La bibliothèque Scipy fournit deux modules de clustering - VQ et hiérarchie. Nous avons exploré les deux modules et avec l'aide d'un exemple de chaque module, nous avons appris à utiliser et à faire les grappes du programme Python.