Алгоритм кластеризации с порогом для объема кластера
Делаю кластеризацию погодных данных по дням.
Есть условие - объем каждого кластера должен быть не менее заданного порога.
Если кластер маленький - он должен быть поглощен другим (или сделана новая итерация).
Я изучил почти все алгоритмы из Mathematica и Python' Skikit.
Число самих кластеров изначально не заданно, поэтому это не должны быть "KMeans" or "KMedoids".
А какие опции использовать для, скажем, "DBSCAN" так и не понял.
Есть подозрение, что придется писать полностью свой алгоритм (
Ответы (1 шт):
Есть условие - объем каждого кластера должен быть не менее заданного порога.
Посмотрите на HDBSCAN, там можно задать минимальный размер кластера в точках:
min_cluster_size
int, default=5
The minimum number of samples in a group for that group to be considered a cluster; groupings smaller than this size will be left as noise.
Такой же параметр есть и у алгоритма OPTICS, но там можно задать не только минимальное число точек в кластере, но и как вариант - их долю в общем количестве:
min_samples
int > 1 or float between 0 and 1, default=5
The number of samples in a neighborhood for a point to be considered as a core point. Also, up and down steep regions can’t have more than min_samples consecutive non-steep points. Expressed as an absolute number or a fraction of the number of samples (rounded to be at least 2).