Contient les fichiers et dossiers liés au TP en Apprentissage portant sur les algorithmes de clustering.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

part_limits_AgglomerativeClustering.py 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import os
  2. from scipy.io import arff
  3. from sklearn.cluster import AgglomerativeClustering
  4. from graphs import clustering_plot
  5. #####################################################
  6. #####################################################
  7. ### LIMITES DE LA METHODE AGGLOMERATIVECLUSTERING ###
  8. ### ###
  9. ### Données choisies: ###
  10. ### wingnut.arff --> 2 clusters ###
  11. ### zelnik4.arff --> 5 clusters ###
  12. ### cure-t1-2000n-2D.arff --> 6 clusters ###
  13. ### ###
  14. ### Etudiant: Abdel Kader CHABI SIKA B. ###
  15. ### DGEI / 5 SDBD 2020-2021 ###
  16. #####################################################
  17. #####################################################
  18. files = ["wingnut.arff", "zelnik4.arff", "cure-t1-2000n-2D.arff"]
  19. n_clusters = {"wingnut.arff":2, "zelnik4.arff":5, "cure-t1-2000n-2D.arff":6}
  20. print("Génération des figures ...")
  21. # Création des différents dossiers d'output
  22. try:
  23. os.mkdir("AgglClustOutput")
  24. except FileExistsError:
  25. pass
  26. try:
  27. os.mkdir("AgglClustOutput/limits")
  28. except FileExistsError:
  29. pass
  30. ################################
  31. ### NOMBRE DE CLUSTERS CONNU ###
  32. ################################
  33. for file in files:
  34. # Chargement des données contenues dans le fichier
  35. data = arff.loadarff(f="artificial/"+file)[0]
  36. # Extraction des points contenus dans la donnée
  37. points = [[c[0],c[1]] for c in data]
  38. # Création d'un modèle AgglomerativeClustering pour le clustering des points
  39. modele_kmeans = AgglomerativeClustering(n_clusters=n_clusters[file], affinity="euclidean")
  40. # Clustering et prédiction des clusters
  41. predictions = modele_kmeans.fit_predict(points)
  42. # Plotting des clusters
  43. clustering_plot([p[0] for p in points], [p[1] for p in points], predictions, xlabel="Abcisses", ylabel="Ordonnes",
  44. fig_title="Graphe de visualisation des clusters de "+file+"\nMéthode: AgglomerativeClustering",
  45. output="AgglClustOutput/limits/bad_clusters_" + file.split(".")[0] + "_n_clust_connu.png")#, show=True)