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_KMeans.py 1.8KB

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