cluster_optics_dbscan#

sklearn.cluster.cluster_optics_dbscan(*, reachability, core_distances, ordering, eps)[source]#

为任意 epsilon 值执行 DBSCAN 提取。

聚类提取的运行时间是线性的。请注意,这会生成与具有相似设置和 DBSCAN 及 `eps` 接近的 labels_,仅当 `eps` 接近 `max_eps` 时。

参数:
reachability形状为 (n_samples,) 的 ndarray

由 OPTICS 计算的可达性距离 (reachability_)。

core_distances形状为 (n_samples,) 的 ndarray

点变为核心点的距离 (core_distances_)。

ordering形状为 (n_samples,) 的 ndarray

OPTICS 有序点索引 (ordering_)。

eps浮点数

DBSCAN eps 参数。必须设置为 < max_eps。如果 epsmax_eps 彼此接近,结果将与 DBSCAN 算法的结果接近。

返回:
labels_形状为 (n_samples,) 的数组

估计的标签。

示例

>>> import numpy as np
>>> from sklearn.cluster import cluster_optics_dbscan, 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,
... )
>>> eps = 4.5
>>> labels = cluster_optics_dbscan(
...     reachability=reachability,
...     core_distances=core_distances,
...     ordering=ordering,
...     eps=eps,
... )
>>> labels
array([0, 0, 0, 1, 1, 1])