кластеризация
Кластеризация и библиотека нечеткой кластеризации со интегрированным CLI.
Установка
$ python3 setup.py install
Запуск скрипта setup.py загрузит все необходимые пакеты и установит следующие команды либо в вашем ~/.local/bin/ для локальной установки или в каталогах /usr/lib/pythonX.X 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}Тодо
- Полная парадигма переписывается:
- Перейти от поддержки CLI в более чистый интерфейс класса Python
- Дизайн простых в использовании и абстрактных классах кластеризации базовых классов
- Черпать вдохновение в реке
- «Новые» семейство алгоритмов: потоковые/однопроходные алгоритмы.
- Pul Les FCM, Plusieurs Copies 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 inplace (ne pas dupliquer les données)
- Méthodes de Clustering à implementer:
- https://github.com/scikit-learn/scikit-learn/blob/7b136e9/sklearn/cluster/k_means_.py#l1318
- ОПТИКА
- Средний сдвиг
- Vérifier le hard_c_medoids
- Реализатор UNE обнаружения Automatique de Header Si Le Flag -заголовок N'EST PAS Passé. Voir: https://stackoverflow.com/questions/32312309/check-if-heder-fecists-with-python-pandas
- Permettre au hc de prendre plusieurs paramètres изливают значения fcluster. Si Plusieurs, Alors on Applique CES Params. Аджутер опция fcluster_value dans le filename.
- Les Opérations Sur Medoids Sont Lentes. S'inspirer D'Autres Коды Pul Les Amelierer:
- https://github.com/vitordeatororeao/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#l293
- Приложение Du Decatoratur "memoryError_fallback", d'On parametre de taille de Chunk, puis utiliser sklearn.metrics.pairsies_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 NON None passés par l'utilisateur au nom de fichier selon un ordre prédéfini. L'Utilisateur Peut Aussi Très Bien Son Son Nom De Fichier Prédéfini.
- Имплектор un algo d'Appiemment (de comparaison) d'Ampactations. Peut être utiliser https://fr.wikipedia.org/wiki/algorithme_hongrois
- Revoir Les Séparations En Sous-Commandes. Peut être Faire: "Clus againaing" ou "clus визуализируется».
- S'Inspirer de l'Api d'Outres Clustering SoftWares: ** https://elki-project.github.io ** https://www.cs.waikato.ac.nz/ml/weka ** https://www.knime.com/nodeguide/analytics/clustic
- Имплектор 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-index/
- Управление Meilleure Coupe HC: ** https://www.sciendirect.com/science/article/pii/s0031320310001974
- Etudier d'Outres 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
- Рефакторинг de l'Architecture du Code: ** clus.methods, qui offre wouts les méthodes depuis ce module. ** clus.preprocessing, qui offre les méthodes de normalization, et de de pondération ** clus.visualisation ** clus.valuation ** clus.loading
- Changer la façon dont les paramètres du clustering sont stockés et 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 res Compte que sacred serait peut etre plus plus pour la gestion des résultats.
- Virer Silhouette, NE Garder Que Silhouette-Samples, Puis Repurner La Moyenne (Qui Corpply à Silhouette-Score), на палелью Silhouette_mean, et l'Ecart Type Silhouette_std.
- Etudier l'Apilization de: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairise_distances_chunked.html
- Remettre Les Références Dans La Doc de Chaque Module. Les Petirer des Références Ci-Dessous.
- Essayer de proposer une имплектиация de k-means utilisant cuda: http://alexminnaar.com/2019/03/05/cuda-kmeans.html
- Ajouter param uuid: ajouter un param возможна, {uuid4}, {uuid6} и т. Д. Данс Ле -Футур Ном Де -де -Фихье Пейт Этр? Заместитель SI на PEUT L'INIGINASER AVEC LE TEMPS, SINON FAUDRA FAIRE FAFFE à l'An инициализация avec Graine aléatoire, Sinon C'est Offiblkz que je retourne les mêmes uuid à Chaque fois.
- Ajouter des mesures d'visuation: papier pour mesure d'agan clustering: https://amstat.tandfonline.com/doi/abs/10.1080/01621459.1971.10482356#.xxzy6wxxry
- Etudier D'Outres Нормализации и effets: https://scikit-learn.org/stable/auto_examples/preprocessing/plot_all_scaling.html#results
Ссылки
- [1] Р. Кришнапурам; А. Джоши; О. Насрауи; L. Yi, Нечеткая реляционная реляционная кластеризационная алгоритмы реляционной кластеризации для веб-добычи, транзакции IEEE на нечетких системах (том: 9, выпуск: 4, август 2001 г.), p595-607, doi: 10.1109/91.940971
- [2] Tolga Can, k-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] Росс, Тимоти Дж., Нечеткая логика с инженерными приложениями, 3 -е изд. Уайли. 2010. ISBN 978-0-470-74376-8 PP 352-353
- [4] Джо Марино, Статистическое отбеливание, 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] Джеймс С.бездек, Роберт Эрлих, Уильям Фул, FCM: алгоритм кластеризации Cuzzy C-Means, https://doi.org/10.1016/0098-3004(84)90020-7, 1983