Technique de clustering pour les données catégorielles en python (2024)

k-modes est utilisé pour regrouper les variables catégorielles. Il définit les clusters en fonction du nombre de catégories correspondantes entre les points de données. (Ceci contraste avec l'algorithme k-means plus connu, qui regroupe des données numériques basées sur des mesures distantes comme la distance euclidienne, etc.) L'algorithme k-prototypes combine les k-modes et les k-means et est capable de regrouper des / données catégorielles.

Les fonctions objectives typiques du clustering formalisent l'objectif d'atteindre une similarité intra-cluster élevée (les documents au sein d'un cluster sont similaires) et une faible similitude inter-cluster (les documents provenant de différents clusters sont différents). Il s'agit d'un critère interne de qualité d'un clustering. Mais de bons scores sur un critère interne ne se traduisent pas nécessairement par une bonne efficacité dans une application. Une alternative aux critères internes est l'évaluation directe dans l'application de l'intérêt. Pour le clustering des résultats de recherche, nous souhaitons peut-être mesurer le temps nécessaire aux utilisateurs pour trouver une réponse avec différents algorithmes de clustering. Il s'agit de l'évaluation la plus directe, mais elle est coûteuse, surtout si de grandes études sur les utilisateurs sont nécessaires.

Types de technique de clustering catégorique

  1. Algorithme en mode k.
  2. k-prototypes

Pourquoi avons-nous besoin d'un algorithme en mode k?

Ralambondrainy (1995) a présenté une approche d'utilisation de l' algorithme k -means pour regrouper les données catégorielles. L'approche de Ralambondrainy est de convertir plusieurs attributs de catégorie en attributs binaires (en utilisant 0 et 1 pour représenter une catégorie absente ou présente) et de traiter les attributs binaires comme numériques dans l' algorithme k -means. Si elle est utilisée dans l'exploration de données, cette approche doit gérer un grand nombre d'attributs binaires car les ensembles de données dans l'exploration de données ont souvent des attributs catégoriels avec des centaines ou des milliers de catégories. Cela augmentera inévitablement les coûts de calcul et d'espace de l' algorithme k -means. L'autre inconvénient est que les moyennes de cluster, données par des valeurs réelles comprises entre 0 et 1, n'indiquent pas les caractéristiques des clusters.

Les données catégorielles ont une structure différente de celle des données numériques. Les fonctions de distance dans les données numériques peuvent ne pas être applicables aux données catégorielles. Les algorithmes de regroupement des données numériques ne peuvent pas être appliqués aux données catégorielles.

L'algorithme k-means est bien connu pour son efficacité dans le regroupement de grands ensembles de données. Cependant, travailler uniquement sur des valeurs numériques l'empêche d'être utilisé pour regrouper des données du monde réel contenant des valeurs catégorielles.

La raison pour laquelle l'algorithme k-means ne peut pas regrouper les objets catégoriels est sa mesure de dissimilarité. Ces barrières peuvent être supprimées en apportant les modifications suivantes à l'algorithme k-means:

  1. Utilisation d'une simple mesure de dissimilarité correspondante pour les objets catégoriels.
  2. Remplacement des moyens des clusters par des modes
  3. Utilisation d'une méthode basée sur la fréquence pour trouver les modes de résolution du problème.

A. Mesure de dissimilarité

L'algorithme de clustering est libre de choisir n'importe quel score de métrique / similarité de distance. Euclidienne est la plus populaire. Mais n'importe quelle autre métrique peut être utilisée qui évolue en fonction de la distribution des données dans chaque dimension / attribut, par exemple la métrique Mahalanobis.

Soit X , Y deux objets catégoriels décrits par m attributs catégoriels. La mesure de dissimilarité entre X et Y peut être définie par les non-concordances totales des catégories d'attributs correspondantes des deux objets. Plus le nombre de discordances est petit, plus les deux objets sont similaires. Cette mesure est souvent appelée appariement simple (Kaufman et Rousseeuw, 1990). Officiellement,

Technique de clustering pour les données catégorielles en python (1)

B. Mode d'un ensemble

Soit X un ensemble d'objets catégoriels décrits par des attributs catégoriels, A 1, A 2,. . . , Suis - je . Définition 1 . Un mode de X = { X 1, X 2,…, Xn } est un vecteur Q = [ q 1, q 2,…, qm ] qui minimise

Technique de clustering pour les données catégorielles en python (2)

C. Trouver un mode pour un ensemble

Technique de clustering pour les données catégorielles en python (3)

Le théorème 1 définit une manière de trouver Q à partir d'un X donné , et est donc important car il permet d' utiliser le paradigme k -means pour regrouper des données catégorielles. Le théorème implique que le mode d'un ensemble de données X n'est pas unique. Par exemple, le mode de l'ensemble {[a, b], [a, c], [c, b], [b, c]} peut être [a, b] ou [a, c].

D. L'algorithme k-modes

Lorsque (5) est utilisé comme mesure de dissimilarité pour les objets catégoriels, la fonction de coût (1) devient

Pour minimiser la fonction de coût, l' algorithme de base k -means peut être modifié en utilisant la simple mesure de dissimilarité de correspondance pour résoudre P 1, en utilisant des modes pour les clusters au lieu des moyennes et en sélectionnant des modes selon le théorème 1 pour résoudre P 2.
Dans l'algorithme de base, nous besoin de calculer le coût total P par rapport à l'ensemble de données à chaque fois qu'un nouveau Q ou W est obtenu. Pour rendre le calcul plus efficace, nous utilisons plutôt l'algorithme suivant dans la pratique.
1. Sélectionnez k modes initiaux, un pour chaque cluster.

2. Allouez un objet au cluster dont le mode est le plus proche selon (5). Mettre à jour le mode du cluster après chaque allocation selon le théorème 1.

3. Une fois que tous les objets ont été attribués aux clusters, testez à nouveau la dissemblance des objets par rapport aux modes actuels. Si un objet est trouvé de telle sorte que son mode le plus proche appartient à un autre cluster plutôt que son mode actuel, réattribuez l'objet à ce cluster et mettez à jour les modes des deux clusters.

4. Répétez 3 jusqu'à ce qu'aucun objet n'ait changé de clusters après un test de cycle complet de l'ensemble de données.

La preuve de convergence de cet algorithme n'est pas encore disponible (Anderberg, 1973). Cependant, son utilisation pratique a montré qu'elle converge toujours.

Comme l' algorithme k -means, l'algorithme k -modes produit également des solutions localement optimales qui dépendent des modes initiaux et de l'ordre des objets dans l'ensemble de données. Dans notre implémentation actuelle de l' algorithme k -modes, nous incluons deux méthodes de sélection de mode initial. La première méthode sélectionne les k premiers enregistrements distincts de l'ensemble de données en tant que k modes initiaux .

La deuxième méthode est mise en œuvre avec les étapes suivantes.

  1. Calculez les fréquences de toutes les catégories pour tous les attributs et stockez-les dans un tableau de catégories par ordre décroissant de fréquence comme indiqué sur la figure 1. Ici, ci , j désigne la catégorie i de l'attribut j et f ( ci , j ) ≥ f ( ci + 1, j ) où f ( ci , j ) est la fréquence de la catégorie ci , j .
  2. Attribuez les catégories les plus fréquentes de manière égale aux k modes initiaux . Par exemple dans la figure 1, supposons k = 3. Nous affectons Q 1 = [ q 1,1 = c 1,1, q 1,2 = c 2,2, q 1,3 = c 3,3, q 1, 4 = c 1,4],
  3. Technique de clustering pour les données catégorielles en python (4)

L'étape 3 est prise pour éviter l'apparition de clusters vides. Le but de cette méthode de sélection est de rendre les modes initiaux diversifiés, ce qui peut conduire à de meilleurs résultats de clustering

Il est simple d'intégrer les algorithmes k -means et k -modes dans l' algorithme k -prototypes qui est utilisé pour regrouper les objets de type mixte. L' algorithme k -prototypes est pratiquement plus utile car les objets fréquemment rencontrés dans les bases de données du monde réel sont des objets de type mixte.

Technique de clustering pour les données catégorielles en python (5)

où le premier terme est la mesure de distance euclidienne au carré sur les attributs numériques et le second terme est la mesure de dissimilarité de correspondance simple sur les attributs catégoriels. Le poids γ est utilisé pour éviter de privilégier l'un ou l'autre type d'attribut. L'influence de γ dans le processus de clustering est discutée dans (Huang, 1997a)

Technique de clustering pour les données catégorielles en python (6)

Technique de clustering pour les données catégorielles en python (7)

Technique de clustering pour les données catégorielles en python (8)

Implémentation du mode k

Les implémentations Python des algorithmes de clustering k-modes et k-prototypes reposent sur Numpy pour une grande partie du travail lourd et il existe une bibliothèque python pour faire exactement la même chose.

https://github.com/nicodv/kmodes

Conclusion

Les deux algorithmes sont efficaces lors du regroupement de très grands ensembles de données complexes en termes à la fois du nombre d'enregistrements et du nombre de clusters.

En général, l' algorithme k -modes est beaucoup plus rapide que l' algorithme k -prototypes. La raison principale est que l' algorithme k- modes a besoin de beaucoup moins d'itérations pour converger que l' algorithme k- prototypes en raison de sa nature discrète.

Choses à explorer:

Il existe un certain nombre d'algorithmes de clustering qui peuvent gérer de manière appropriée des types de données mixtes. Certaines possibilités comprennent les suivantes:

  1. Algorithmes basés sur le partitionnement: k-Prototypes, Squeezer.
  2. Algorithmes hiérarchiques: ROCK, liaison agglomérative simple, moyenne et complète.
  3. Algorithmes basés sur la densité: HIERDENC, MULIC , CLIQUE.
  4. Algorithmes basés sur des modèles: clustering SVM, cartes auto-organisées.

Références

[1] https://www.ijert.org/research/review-paper-on-data-clustering-of-categorical-data-IJERTV1IS10372.pdf

[2] http://www.cs.ust.hk/~qyang/Teaching/537/Papers/huang98extensions.pdf

[3] https://arxiv.org/ftp/cs/papers/0603/0603120.pdf

[4] https://www.ee.columbia.edu/~wa2171/MULIC/AndreopoulosPAKDD2007.pdf

[5] https://datascience.stackexchange.com/questions/22/k-means-clustering-for-mixed-numeric-and-categorical-data

Technique de clustering pour les données catégorielles en python (2024)

FAQs

What are the clustering techniques in Python? ›

There are three widely used techniques for how to form clusters in Python: K-means clustering, Gaussian mixture models and spectral clustering. For relatively low-dimensional tasks (several dozen inputs at most) such as identifying distinct consumer populations, K-means clustering is a great choice.

What is the clustering algorithm for categorical data in Python? ›

In Python, the Kmodes function is part of the kmodes library, which implements the K-modes clustering algorithm. This function is used to perform clustering on categorical data, grouping similar data points into clusters based on their categorical attributes.

How to implement clustering in Python? ›

An introduction to popular clustering algorithms in Python
  1. Randomly pick k centroids from the examples as initial cluster centers.
  2. Assign each example to the nearest centroid 𝜇(i),j ∊ [1,…,k]
  3. Move the centroids to the center of the examples that were assigned to it.
Sep 25, 2023

What is K clustering for text classification in Python? ›

K-means clustering on text features. Two feature extraction methods are used in this example: TfidfVectorizer uses an in-memory vocabulary (a Python dict) to map the most frequent words to features indices and hence compute a word occurrence frequency (sparse) matrix.

What are clustering techniques? ›

The clustering method divides the area into a set of regions using the hierarchical concept. It is efficiently applied to improve the network scalability. In several works, the distance between nodes or node residual energy were used as a metric for clustering.

What is K-Means clustering classification in Python? ›

The k-means clustering method is an unsupervised machine learning technique used to identify clusters of data objects in a dataset. There are many different types of clustering methods, but k-means is one of the oldest and most approachable.

How to handle categorical data in clustering? ›

One way to handle categorical variables is to use one-hot encoding. One-hot encoding transforms categorical variables into a set of binary features, where each feature represents a distinct category. For example, suppose we have a categorical variable “color” that can take on the values red, blue, or yellow.

What is the example of clustering algorithm? ›

Popular examples of clustering algorithms include hierarchical, expectation maximization, k-medians and k-means clustering approaches.

What is the best clustering algorithm? ›

What are the top 5 types of Clustering Algorithms Data Scientists should know?
  • K-mean clustering algorithm. ...
  • Mean-shift clustering algorithm. ...
  • Hierarchical clustering (Agglomerative) ...
  • Expectation maximization (using Gaussian Mixture Model) ...
  • Spatial clustering (based on density)

How do I run a Python code on a cluster? ›

Running multiple copies of a script
  1. submit.sh. #!/bin/bash # python test.py $1 $1. Your Python script can access these parameters via the sys. argv[] list.
  2. test.py. import sys a = sys. argv[1] b = sys. argv[2] ... ...
  3. test.py. ... import os job_id = os. environ.

How to make data clustering? ›

Initially, all data points are disconnected from each other; each data point is treated as an independent cluster. Then, the two closest data points are connected, forming a cluster. Then, the next two closest data points (or clusters) are connected to those two data points to form a larger cluster. And so on.

Which library is used for clustering in Python? ›

PyClustering library is a collection of cluster analysis, graph coloring, travelling salesman problem algorithms, oscillatory and neural network models, containers, tools for visualization and result analysis, etc.

How to do clustering on text data? ›

Text clustering can be done using a variety of methods, including k-means clustering, hierarchical clustering, and density-based clustering. You can use these methods with different kinds of text data for different reasons.

What is the best clustering algorithm for text classification? ›

K-means Clustering - It is the most common unsupervised machine learning algorithm. Its objective is to group similar data points to discover underlying patterns. In K-means, we define the target number k, the number of centroids in the dataset.

How do you plot text clusters in Python? ›

Clustering text documents using k-means

In this example, we first use the TfidfVectorizer to vectorize the dataset. This converts the text into a numerical representation that can be used as input for the k-means algorithm. Then we specify the number of clusters to be used (in this case, 2) and build a KMeans model.

How many methods are there for clustering? ›

Its types include partition-based, hierarchical, density-based, and grid-based clustering. The choice of clustering algorithm and the number of clusters to use depend on the nature of the data and the specific problem at hand.

What are the different types of clustering in Sklearn? ›

According to scikit-learn official documentation, there are 11 different clustering algorithms: K-Means, Affinity propagation, Mean Shift, Special Clustering, Hierarchical Clustering, Agglomerative Clustering, DBScan, Optics, Gaussian Mixture, Birch, Bisecting K-Means.

Is KNN clustering or classification? ›

K-NN is a Supervised machine learning while K-means is an unsupervised machine learning. K-NN is a classification or regression machine learning algorithm while K-means is a clustering machine learning algorithm. K-NN is a lazy learner while K-Means is an eager learner.

References

Top Articles
Latest Posts
Article information

Author: Msgr. Benton Quitzon

Last Updated:

Views: 5929

Rating: 4.2 / 5 (63 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Msgr. Benton Quitzon

Birthday: 2001-08-13

Address: 96487 Kris Cliff, Teresiafurt, WI 95201

Phone: +9418513585781

Job: Senior Designer

Hobby: Calligraphy, Rowing, Vacation, Geocaching, Web surfing, Electronics, Electronics

Introduction: My name is Msgr. Benton Quitzon, I am a comfortable, charming, thankful, happy, adventurous, handsome, precious person who loves writing and wants to share my knowledge and understanding with you.