compute_optics_graph#

sklearn.cluster.compute_optics_graph(X, *, min_samples, max_eps, метрика, p, metric_params, алгоритм, leaf_size, n_jobs)[источник]#

Вычислите граф достижимости OPTICS.

Подробнее в Руководство пользователя.

Параметры:
X{ndarray, sparse matrix} формы (n_samples, n_features), или (n_samples, n_samples) если metric=’precomputed’

Массив признаков или массив расстояний между образцами, если metric='precomputed'.

min_samplesint > 1 или float между 0 и 1

Количество образцов в окрестности точки, чтобы она считалась основной точкой. Выражается как абсолютное число или доля от количества образцов (округляется до минимум 2).

max_epsfloat, по умолчанию=np.inf

Максимальное расстояние между двумя образцами, чтобы один считался в окрестности другого. Значение по умолчанию np.inf будет идентифицировать кластеры на всех масштабах; уменьшение max_eps приведет к более короткому времени выполнения.

метрикаstr или callable, по умолчанию='minkowski'

Метрика для вычисления расстояния. Может использоваться любая метрика из scikit-learn или scipy.spatial.distance.

Если metric — вызываемая функция, она вызывается для каждой пары экземпляров (строк), и результирующее значение записывается. Вызываемая функция должна принимать два массива на вход и возвращать одно значение, указывающее расстояние между ними. Это работает для метрик Scipy, но менее эффективно, чем передача имени метрики в виде строки. Если metric — 'precomputed', предполагается, что X — матрица расстояний и должна быть квадратной.

Допустимые значения для metric:

  • из 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’]

См. документацию для 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

Дополнительные именованные аргументы для метрической функции.

алгоритм{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, по умолчанию=’auto’

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

  • 'ball_tree' будет использовать BallTree.

  • 'kd_tree' будет использовать KDTree.

  • 'brute' будет использовать поиск методом грубой силы.

  • 'auto' попытается определить наиболее подходящий алгоритм на основе значений, переданных в fit метод. (по умолчанию)

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

leaf_sizeint, по умолчанию=30

Размер листа, передаваемый в BallTree или KDTree. Это может повлиять на скорость построения и запроса, а также на память, необходимую для хранения дерева. Оптимальное значение зависит от характера задачи.

n_jobsint, default=None

Количество параллельных задач для поиска соседей. None означает 1, если только не в joblib.parallel_backend контекст. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.

Возвращает:
ordering_массив формы (n_samples,)

Упорядоченный список индексов образцов для кластера.

core_distances_массив формы (n_samples,)

Расстояние, на котором каждый образец становится центральной точкой, индексированное по порядку объектов. Точки, которые никогда не будут центральными, имеют расстояние inf. Используйте clust.core_distances_[clust.ordering_] для доступа в порядке кластера.

reachability_массив формы (n_samples,)

Расстояния достижимости для каждого образца, индексированные по порядку объектов. Используйте clust.reachability_[clust.ordering_] для доступа в порядке кластера.

предшественник_массив формы (n_samples,)

Точка, из которой была достигнута выборка, индексируется по порядку объектов. Начальные точки имеют предшественника -1.

Ссылки

[1]

Анкерст, Михаэль, Маркус М. Бройниг, Ханс-Петер Кригель и Йорг Зандер. "OPTICS: упорядочивание точек для идентификации структуры кластеризации." ACM SIGMOD Record 28, № 2 (1999): 49-60.

Примеры

>>> import numpy as np
>>> from sklearn.cluster import compute_optics_graph
>>> X = np.array([[1, 2], [2, 5], [3, 6],
...               [8, 7], [8, 8], [7, 3]])
>>> ordering, core_distances, reachability, predecessor = compute_optics_graph(
...     X,
...     min_samples=2,
...     max_eps=np.inf,
...     metric="minkowski",
...     p=2,
...     metric_params=None,
...     algorithm="auto",
...     leaf_size=30,
...     n_jobs=None,
... )
>>> ordering
array([0, 1, 2, 5, 3, 4])
>>> core_distances
array([3.16, 1.41, 1.41, 1.        , 1.        ,
       4.12])
>>> reachability
array([       inf, 3.16, 1.41, 4.12, 1.        ,
       5.        ])
>>> predecessor
array([-1,  0,  1,  5,  3,  2])