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