diff --git a/clustering/fonctions_clustering.py b/clustering/fonctions_clustering.py new file mode 100644 index 0000000000000000000000000000000000000000..f5ba7f05c5f72b07890f7d9099ff8b8caea24ba9 --- /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