From 550b469dfe9ad5d05e43171fe2fb994da34b6ee2 Mon Sep 17 00:00:00 2001
From: MAFTOUH Mohammed Amine <mohammed-amine.maftouh@imt-atlantique.net>
Date: Mon, 3 Mar 2025 10:46:30 +0000
Subject: [PATCH] ajout des fonctions de clustering

---
 clustering/fonctions_clustering.py | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 clustering/fonctions_clustering.py

diff --git a/clustering/fonctions_clustering.py b/clustering/fonctions_clustering.py
new file mode 100644
index 0000000..f5ba7f0
--- /dev/null
+++ b/clustering/fonctions_clustering.py
@@ -0,0 +1,29 @@
+def agglomerative_clustering(reduced_embeddings, cluster_range=range(2, 21)):
+    """
+    Teste l'Agglomerative Clustering avec différents nombres de clusters.
+    
+    :param reduced_embeddings: Matrice des embeddings réduits
+    :param cluster_range: Intervalle du nombre de clusters à tester
+    :return: Liste des labels prédits
+    """
+    clustering_results = {}
+    for n_clusters in cluster_range:
+        agg_clustering = AgglomerativeClustering(n_clusters=n_clusters)
+        agg_labels = agg_clustering.fit_predict(reduced_embeddings)
+        clustering_results[n_clusters] = agg_labels
+    return clustering_results
+
+def gaussian_mixture(reduced_embeddings, cluster_range=range(2, 21)):
+    """
+    Teste le modèle de mélange gaussien (GMM) avec différents nombres de clusters.
+    
+    :param reduced_embeddings: Matrice des embeddings réduits
+    :param cluster_range: Intervalle du nombre de clusters à tester
+    :return: Liste des labels prédits
+    """
+    clustering_results = {}
+    for n_clusters in cluster_range:
+        gmm = GaussianMixture(n_components=n_clusters, random_state=42)
+        gmm_labels = gmm.fit_predict(reduced_embeddings)
+        clustering_results[n_clusters] = gmm_labels
+    return clustering_results
-- 
GitLab