การจัดกลุ่ม
การจัดกลุ่มและไลบรารีการจัดกลุ่มแบบฟัซซี่กับ CLI ในตัว
การติดตั้ง
$ python3 setup.py install
การเรียกใช้สคริปต์ setup.py จะดาวน์โหลดแพ็คเกจที่จำเป็นทั้งหมดและติดตั้งคำสั่งต่อไปนี้ใน ~/.local/bin/ สำหรับการติดตั้งในท้องถิ่นของคุณหรือในไดเรกทอรี /usr/lib/pythonX.X :
- CLUS: คำสั่งหลักสำหรับการจัดกลุ่มที่ใช้พาร์ติชัน
- DCLUS: การจัดกลุ่มตามความหนาแน่น
- HCLUS: การจัดกลุ่มลำดับชั้น
- ECLUS: ประเมินการจัดกลุ่ม การใช้วิธีที่แตกต่างกันในการประเมินผลการจัดกลุ่มโดยการเปรียบเทียบสองพาร์ติชัน
การใช้งาน
# Simple clustering with 500-components kmeans algorithm
$ clus dataset.csv kmeans -k 500 --max-iter 100 --eps 0.001 --header --save-clus
# Clustering with a weighted euclidean distance + matplotlib visualisation
$ clus dataset.npy kmeans --pairwise-distance weighted_euclidean --weights 1 0 1 1 --visualise
# Clustering from a .npz file with a 3D matplotlib visualisation
$ clus dataset.npz fcm --array-name clusters_center --visualise-3d
# Clustering with automatic dataset filetype guessing and with a normalization beforehand
$ clus dataset kmeans --file-type guess --normalization rescaling --save-clus
# DBSCAN clustering with a custom clustering results saving path
$ dclus dataset.csv dbscan --save-clus --seed 1 --format-filename-dest-results dbased_{clustering_algorithm}_{dataset}_{seed}สิ่งที่ต้องทำ
- Paradigm ที่สมบูรณ์เขียนใหม่:
- ย้ายออกจากการรองรับ CLI ไปยังอินเทอร์เฟซคลาส Python ที่สะอาดยิ่งขึ้น
- ออกแบบคลาสการจัดกลุ่มฐานที่ใช้งานง่ายและเป็นนามธรรม
- รับแรงบันดาลใจจากแม่น้ำ
- ตระกูลอัลกอริทึม "ใหม่": อัลกอริทึมการสตรีม/One-Pass
- เท LES FCM, Plusieurs สำเนา De Données sont faites plusieurs fois ปรับให้เหมาะสม, voir: https://pythonhosted.org/scikit-fuzzy/_modules/skfuzzy/cluster/_cmeans.html#cmeans
- rendre les opérations de clustering ในสถานที่ (ne pas dupliquer les données)
- Méthodes de Clustering àImplémenter:
- https://github.com/scikit-learn/scikit-learn/blob/7b136e9/sklearn/cluster/k_means_.py#l1318
- เลนส์
- การเปลี่ยนแปลงค่าเฉลี่ย
- Vérifier le hard_c_medoids
- ผู้ใช้งาน UNE DETECTION AUTOMATIQUE DE Header Si le Flag -หัวหน้า n'est pas passé Voir: https://stackoverflow.com/questions/32312309/check-if-header-exists-with-python-pandas
- PermetTre au hc de prendre plusieurs paramètres pAt ค่า fcluster Si Plusieurs, Alors on applique ces params ตัวเลือก ajouter fcluster_value dans le filename
- Les opérations sur medoids sont lentes S'inspirer d'Autres รหัสเท les ameliorer:
- https://github.com/vitordeatorreao/amproj/blob/844842a532524d5f514e7534da65c7a64ab7ef57/amproj/distance/kmedoids.py
- https://github.com/agartland/utils/blob/e200d7e41039ca0053bd817c1d1857aab33bd503/kmedoids.py#l172
- https://github.com/brain-mapper/brainmapperv2/blob/63075bdca2428197fc18a1cf6c7403c2764e0664/ourlib/clustering.py#l29333
- แอปพลิเคชัน du decorateur "MemoryError_fallback", d'o un parametre de taille de chunk, puis utiliser sklearn.metrics.pairwise_distances_chunked
- au lieu de fixer un nom de fichier par défaut, mettre tous les paramètres par défautà none (et fixer en dur leurs valeus par défaut dans la doc, ou formater selon un fichier), et ajouter les parametres l'tilisateur peut aussi très bien passer ลูกชาย nom de fichier prédéfini
- INTISTémenter un algo d'Appariemment (de comparaison) d'prictations peut être utiliser https://fr.wikipedia.org/wiki/algorithme_hongrois
- revoir les séparations en sous-commandes peut être faire: "clus ประเมิน" ou "clus visualize"
- s'inspirer de l'api d'Autres การจัดกลุ่มซอฟต์แวร์: ** https://elki-project.github.io ** https://www.cs.waikato.ac.nz/ml/weka ** https://www.knime
- INTISTémenter La Lecture de Fichiers: ** memmap: https://docs.scipy.org/doc/numpy/reference/generated/numpy.memmap.html
- S'inspirer des codes suivants: ** https://github.com/overshiki/kmeans_pytorch/blob/master/kmeans.py
- etudier mesures: ** https://scikit-learn.org/stable/modules/generated/sklearn.metrics.adjusted_mutual_info_score.html ** https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.multivariate_normal.html ** https://davetang.org/muse/2017/09/21/adjusted-rand-rand-
- ปัญหา Meilleure Coupe HC: ** https://www.sciencedirect.com/science/article/pii/s0031320310001974
- Etudier d'Autres méthodes de Normalization, leurs effets et leurs buts ** https://en.wikipedia.org/wiki/normalization_(statistics) ** https://en.wikipedia.org/wiki/feature_scaling ** https://sebastianraschka.com/articles/2014_about_feature_scaling.html
- refactoring de l'Artionure CODE: ** clus.methods, qui Offre toutes les méthodes depuis ce โมดูล ** clus.preprocessing, qui Offre les méthodes de normalization, et de pondération ** clus.visualisation ** clus.evaluation ** clus การโหลด
- ผู้เปลี่ยน La Façon Dont Les Paramètres du Clustering SONT Stockésและ Dont Les résultats Sont Sauvegardés ** Virer tous les params liés au nom de fichier ne garder que "file-name-prefix", et ajouter un uuid comme nom de fichier ** Stocker tous les paramètres de clustering dans le dictionnaire résultats clef "params" ** การบำรุงรักษา Que j'écrisça, je me rends compte que sacred serait peut etre plus ที่เหมาะสม pour la gestion des résultats
- Virer Silhouette, Ne Garder Que Silhouette-ตัวอย่าง, Puis Retourner La Moyenne (Qui สอดคล้องกับ Silhouette-Score) บน Lapelle Silhouette_mean, et l'écartประเภท Silhouette_std
- etudier l'Utilization de: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise_distances_chunked.html
- remettre les références dans la doc de chaque โมดูล Les Retirer des Références ci-dessous
- Essayer de Proposer une implémentation de k-means utilisant cuda: http://alexminnaar.com/2019/03/05/cuda-kmeans.html
- ajouter param uuid: ajouter un param ที่เป็นไปได้, {uuid4}, {uuid6}, ฯลฯ dans le futur nom de fichier peut etre? qualter si บน peut l'Inthiser Avec le Temps, Sinon Faudra Faire Gaffe à l'Inthisation Avec Graine Aléatoire, Sinon C'est possiblkz que je retourne les mêmes uuid à Chaque fois
- Ajouter des mesures d'Evaluation: Papier PAR MESURES D'EVAL CLUSTERING: https://amstat.tandfonline.com/doi/abs/10.1080/01621459.1971.10482356#.xxzye6wxxry
- etudier d'Autres normalisations et leurs effets: https://scikit-learn.org/stable/auto_examples/preprocessing/plot_all_scaling.html#results
การอ้างอิง
- [1] R. Krishnapuram; A. Joshi; O. Nasraoui; L. Yi, อัลกอริธึมการจัดกลุ่มเชิงสัมพันธ์ที่มีความซับซ้อนต่ำสำหรับการทำเหมืองเว็บ, ธุรกรรม IEEE บนระบบฟัซซี่ (ปริมาณ: 9, ฉบับ: 4, ส.ค. 2544), P595-607, DOI: 10.1109/91.9409711
- [2] Tolga Can, k-e-means ตัวอย่างคลัสเตอร์ว่าง, http://user.ceng.metu.edu.tr/~tcan/ceng465_f1314/schedule/kmeansempty.html (เก็บถาวร: https://web.archive.org/web/20180626092955/http://user.ceng.metu.edu.tr/~tcan/ceng465_f1314/schedule/kmeansempty.html)
- [3] Ross, Timothy J. , Fuzzy Logic พร้อมแอพพลิเคชั่นทางวิศวกรรม, 3rd ed. ไวลีย์ 2010. ISBN 978-0-470-74376-8 pp 352-353
- [4] Joe Marino, Whitening ทางสถิติ, http://joelouismarino.github.io/blog_posts/blog_whitening.html (เก็บถาวร: https://web.archive.org/web/20180813034201/http://joelouismarino.github.io/blog_posts/blog_whitening.html)
- [5] TODO: การใช้ระยะทางยุคลิดที่มีน้ำหนักเทียบเท่ากับการใช้ระยะทางแบบยุคลิดแบบดั้งเดิมลงในข้อมูลที่ถ่วงน้ำหนักโดยสแควร์รูทของน้ำหนัก
- [6] James C.Bezdek, Robert Ehrlich, William Full, FCM: อัลกอริทึมการจัดกลุ่ม C-Means Fuzzy, https://doi.org/10.1016/0098-3004(84)90020-7, 1983