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])