compute_optics_graph#

sklearn.cluster.compute_optics_graph(X, *, min_samples, max_eps, metric, p, metric_params, algorithm, leaf_size, n_jobs)[源代码]#

计算OPTICS可达性图。

阅读更多的 User Guide .

参数:
X形状(n_samples,n_features)的{nd数组,稀疏矩阵},或 (n_samples,n_samples)如果指标='预先计算'

一个特征数组,或者样本之间的距离数组(如果metric ='precomputed')。

min_samplesint > 1或在0和1之间浮动

被视为核心点的点在邻近区域中的样本数。以绝对数字或样本数量的一小部分表示(四舍五入至少为2)。

max_epsfloat,默认=NP.inf

两个样本之间的最大距离,其中一个样本被视为在另一个样本的附近。默认值 np.inf 将识别所有规模的集群;减少 max_eps 将导致运行时间更短。

metric字符串或可调用,默认=' minkowski '

用于距离计算的指标。可以使用scikit-learn或scipy.spatial.Distance中的任何指标。

如果metric是可调用的函数,则会对每对实例(行)调用它并记录结果值。可调用对象应该将两个数组作为输入,并返回一个指示它们之间距离的值。这适用于Scipy的指标,但比将指标名称作为字符串传递效率低。如果度量是“预先计算的”,则假设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']

有关这些指标的详细信息,请参阅scipy.spatial.Distance的文档。

备注

'kulsinski' SciPy 1.9已废弃,并将在SciPy 1.11中删除。

pfloat,默认=2

Minkowski指标的参数来自 pairwise_distances .当p = 1时,这相当于对于p = 2使用manhattan_Distance(l1)和euclidean_Distance(l2)。对于任意p,使用minkowski_Distance(l_p)。

metric_paramsdict,默认=无

指标函数的附加关键字参数。

algorithm'自动',' ball_tree ',',',默认='自动'

用于计算最近邻居的算法:

  • 'ball_tree'将使用 BallTree .

  • 'kd_tree'将使用 KDTree .

  • “brute”将使用暴力搜索。

  • “Auto”将尝试根据传递给 fit 法(默认)

注意:在稀疏输入上进行调整将使用暴力覆盖此参数的设置。

leaf_sizeint,默认=30

叶子大小传递给 BallTreeKDTree .这可能会影响构建和查询的速度,以及存储树所需的内存。最佳值取决于问题的性质。

n_jobsint,默认=无

为邻居搜索运行的并行作业数。 None 意思是1,除非在a中 joblib.parallel_backend 上下文 -1 意味着使用所有处理器。看到 Glossary 了解更多详细信息。

返回:
ordering_形状数组(n_samples,)

样本索引的集群排序列表。

core_distances_形状数组(n_samples,)

每个样本成为核心点的距离,按对象顺序索引。永远不会成为核心的点有一定的使用距离 clust.core_distances_[clust.ordering_] 以按集群顺序访问。

reachability_形状数组(n_samples,)

每个样本的可达性距离,按对象顺序索引。使用 clust.reachability_[clust.ordering_] 以按集群顺序访问。

predecessor_形状数组(n_samples,)

到达样本的点,按对象顺序索引。种子点的前身是-1。

引用

[1]

Ankerst、Mihael、Markus M.布鲁尼格、汉斯-彼得·克里格尔和约尔格·桑德。“OPTICS:排序点以识别集群结构。“ACN SIGMOD Record 28,no. 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])