OPTICS
- классsklearn.cluster.OPTICS(*, min_samples=5, max_eps=inf, metric='minkowski', p=2, metric_params=None, cluster_method='xi', eps=None, xi=0.05, predecessor_correction=True, min_cluster_size=None, algorithm='auto', leaf_size=30, memory=None, n_jobs=None)[source]
-
Оценить структуру кластеризации из массива векторов.
OPTICS (Ordering Points To Identify the Clustering Structure), тесно связанный с DBSCAN, находит ядро образцов высокой плотности и расширяет кластеры от них [1]. В отличие от DBSCAN, сохраняет иерархию кластеров для переменного радиуса окрестности. Лучше подходит для использования на больших наборах данных, чем текущая реализация sklearn для DBSCAN.
Затем кластеры извлекаются с помощью метода DBSCAN (cluster_method = ‘dbscan’) или автоматического метода, предложенного в [1] (cluster_method = ‘xi’).
Эта реализация отличается от исходного OPTICS тем, что сначала выполняет поиск k-ближайших соседей для всех точек, чтобы определить размеры ядер, а затем вычисляет только расстояния до необработанных точек при построении порядка кластеров. Обратите внимание, что мы не используем кучу для управления кандидатами на расширение, поэтому временная сложность будет O(n^2).
Дополнительные сведения см. в Руководстве пользователя.
- Параметры:
-
- min_samplesint > 1 или float между 0 и 1, по умолчанию=5
-
Количество образцов в окрестности для точки, чтобы быть признанной ядром. Кроме того, крутые участки вверх и вниз не могут иметь более
min_samplesпоследовательных некрутых точек. Выражается как абсолютное число или дробь от числа образцов (округляется до не менее 2). - max_epsfloat, по умолчанию=np.inf
-
Максимальное расстояние между двумя образцами для того, чтобы один считался находящимся в окрестности другого. Значение по умолчанию
np.infопределит кластеры по всем масштабам; уменьшениеmax_epsприведет к сокращению времени выполнения. - metricstr или callable, по умолчанию=’minkowski’
-
Метрика для вычисления расстояния. Любая метрика из scikit-learn или scipy.spatial.distance может быть использована.
Если метрика — это вызываемая функция, она вызывается для каждой пары экземпляров (строк), и полученное значение записывается. Вызываемая функция должна принимать два массива в качестве входных данных и возвращать одно значение, указывающее расстояние между ними. Это работает для метрик Scipy, но менее эффективно, чем передача имени метрики в виде строки. Если метрика «precomputed»,
Xпредполагается матрицей расстояний и должна быть квадратной.Допустимые значения для метрики:
- из scikit-learn: [‘cityblock’, ‘cosine’, ‘euclidean’, ‘l1’, ‘l2’, ‘manhattan’]
- из scipy.spatial.distance: [‘braycurtis’, ‘canberra’, ‘chebyshev’, ‘correlation’, ‘dice’, ‘hamming’, ‘jaccard’, ‘kulsinski’, ‘mahalanobis’, ‘minkowski’, ‘rogerstanimoto’, ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’, ‘sqeuclidean’, ‘yule’]
Разреженные матрицы поддерживаются только метриками scikit-learn. См. документацию scipy.spatial.distance для получения подробной информации об этих метриках.
Примечание
'kulsinski'устарела начиная со SciPy 1.9 и будет удалена в SciPy 1.11. - pfloat, по умолчанию=2
-
Параметр для метрики Минковского из
pairwise_distances. При p = 1 это эквивалентно использованию manhattan_distance (l1), а euclidean_distance (l2) для p = 2. Для произвольного p используется minkowski_distance (l_p). - metric_paramsdict, по умолчанию=None
-
Дополнительные ключевые аргументы для функции метрики.
- cluster_methodstr, по умолчанию=’xi’
-
Метод извлечения, используемый для извлечения кластеров, используя вычисленные достижимые расстояния и порядок. Возможные значения — «xi» и «dbscan».
- epsfloat, по умолчанию=None
-
Максимальное расстояние между двумя образцами для того, чтобы один считался находящимся в окрестности другого. По умолчанию предполагается то же значение, что и
max_eps. Используется только приcluster_method='dbscan'. - xifloat между 0 и 1, по умолчанию=0.05
-
Определяет минимальную крутизну на графике достижимости, которая составляет границу кластера. Например, точка вверх на графике достижимости определяется отношением от одной точки к ее преемнику, которое не больше 1-xi. Используется только при
cluster_method='xi'. - predecessor_correctionbool, по умолчанию=True
-
Исправлять кластеры в соответствии с предшественниками, вычисленными OPTICS [2]. Этот параметр минимально влияет на большинство наборов данных. Используется только при
cluster_method='xi'. - min_cluster_sizeint > 1 или float между 0 и 1, по умолчанию=None
-
Минимальное количество образцов в кластере OPTICS, выраженное как абсолютное число или дробь от числа образцов (округляется до не менее 2). Если
None, значениеmin_samplesиспользуется вместо этого. Используется только приcluster_method='xi'. - algorithm{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, по умолчанию=’auto’
-
Алгоритм, используемый для вычисления ближайших соседей:
- ‘ball_tree’ будет использовать
BallTree. - ‘kd_tree’ будет использовать
KDTree. - ‘brute’ будет использовать поиск методом грубой силы.
- ‘auto’ (по умолчанию) попытается выбрать наиболее подходящий алгоритм на основе значений, переданных методу
fit.
Примечание: подгонка на разреженном входе переопределит значение этого параметра, используя метод грубой силы.
- ‘ball_tree’ будет использовать
- leaf_sizeint, по умолчанию=30
-
Размер листа, передаваемый в
BallTreeилиKDTree. Это может повлиять на скорость построения и запроса, а также на требуемую память для хранения дерева. Оптимальное значение зависит от характера задачи. - memorystr или объект с интерфейсом joblib.Memory, по умолчанию=None
-
Используется для кэширования результатов вычисления дерева. По умолчанию кэширование не выполняется. Если задана строка, это путь к каталогу кэширования.
- n_jobsint, по умолчанию=None
-
Количество параллельных задач для поиска соседей.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. См. Словарь для получения более подробной информации.
- Атрибуты:
-
- labels_ndarray формы (n_samples,)
-
Метки кластеров для каждой точки в наборе данных, переданном в fit(). Шумные образцы и точки, которые не включены в листовой кластер
cluster_hierarchy_помечены как -1. - reachability_ndarray формы (n_samples,)
-
Расстояния достижимости на образец, индексированные по порядку объектов. Используйте
clust.reachability_[clust.ordering_]для доступа в порядке кластера. - ordering_ndarray формы (n_samples,)
-
Отсортированный по кластерам список индексов образцов.
- core_distances_ndarray формы (n_samples,)
-
Расстояние, при котором каждый образец становится ядром, индексированное по порядку объектов. Точки, которые никогда не будут ядром, имеют расстояние inf. Используйте
clust.core_distances_[clust.ordering_]для доступа в порядке кластера. - predecessor_ndarray формы (n_samples,)
-
Точка, из которой был достигнут образец, индексированная по порядку объектов. Точки-семена имеют предшественника -1.
- cluster_hierarchy_ndarray формы (n_clusters, 2)
-
Список кластеров в виде
[start, end]в каждой строке, со всеми включенными индексами. Кластеры упорядочены по(end, -start)(возрастанию), так что более крупные кластеры, охватывающие меньшие, следуют за этими меньшими. Посколькуlabels_не отражает иерархию, обычноlen(cluster_hierarchy_) > np.unique(optics.labels_). Обратите также внимание, что эти индексы относятся кordering_, т.е.X[ordering_][start:end + 1]образуют кластер. Доступно только приcluster_method='xi'. - n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Имена признаков, увиденные во время fit. Определено только тогда, когда
Xимеют имена признаков, которые являются строками.Добавлено в версии 1.0.
См. также
DBSCAN-
Аналогичная кластеризация для заданного радиуса окрестности (eps). Наша реализация оптимизирована для времени выполнения.
Список литературы
- [1] (1,2)
Ankerst, Mihael, Markus M. Breunig, Hans-Peter Kriegel, and Jörg Sander. “OPTICS: ordering points to identify the clustering structure.” ACM SIGMOD Record 28, no. 2 (1999): 49-60.
[2]Schubert, Erich, Michael Gertz. “Improving the Cluster Structure Extracted from OPTICS Plots.” Proc. of the Conference “Lernen, Wissen, Daten, Analysen” (LWDA) (2018): 318-329.
Примеры
>>> from sklearn.cluster import OPTICS >>> import numpy as np >>> X = np.array([[1, 2], [2, 5], [3, 6], ... [8, 7], [8, 8], [7, 3]]) >>> clustering = OPTICS(min_samples=2).fit(X) >>> clustering.labels_ array([0, 0, 0, 1, 1, 1])
Для более подробного примера см. Демонстрация алгоритма кластеризации OPTICS.
- fit(X, y=None)[source]
-
Выполнить кластеризацию OPTICS.
Извлекает упорядоченный список точек и расстояния достижимости и выполняет начальную кластеризацию, используя расстояние, указанное при создании объекта OPTICS.
- Параметры:
-
- X{ndarray, разреженная матрица} формы (n_samples, n_features), или (n_samples, n_samples), если metric=’precomputed’
-
Массив признаков или массив расстояний между образцами, если metric=’precomputed’. Если предоставлена разреженная матрица, она будет преобразована в формат CSR.
- yИгнорируется
-
Не используется, присутствует для согласованности API по соглашению.
- Возвращает:
-
- selfобъект
-
Возвращает обученную копию self.
- fit_predict(X, y=None, **kwargs)[source]
-
Выполняет кластеризацию на
Xи возвращает метки кластеров.- Параметры:
-
- Xмассив-подобный формы (n_samples, n_features)
-
Входные данные.
- yИгнорируется
-
Не используется, присутствует для согласованности API по соглашению.
- **kwargsсловарь
-
Аргументы, которые будут переданы в
fit.Добавлен в версии 1.4.
- Возвращает:
-
- labelsndarray формы (n_samples,), dtype=np.int64
-
Метки кластеров.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя по тому, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращает параметры этого оценщика и содержащихся вложенных подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsсловарь
-
Имена параметров, сопоставленные с их значениями.
- set_params(**params)[source]
-
Установить параметры этого оценщика.
Метод работает как с простыми оценщиками, так и со вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsсловарь
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.cluster.OPTICS.html