Spec-Zone.ru › scikit-learn

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.

Примечание: подгонка на разреженном входе переопределит значение этого параметра, используя метод грубой силы.

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). Наша реализация оптимизирована для времени выполнения.

Список литературы

END_OF_DOCUMENT_MARKER
[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экземпляр оценщика

Экземпляр оценщика.

Примеры галереи

Сравнение различных алгоритмов кластеризации на наборах данных-игрушках

Демонстрация алгоритма кластеризации OPTICS

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API