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 ',',',默认='自动'
用于计算最近邻居的算法:
注意:在稀疏输入上进行调整将使用暴力覆盖此参数的设置。
- leaf_sizeint,默认=30
叶子大小传递给
BallTree
或KDTree
.这可能会影响构建和查询的速度,以及存储树所需的内存。最佳值取决于问题的性质。- 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])