compute_optics_graph#
- sklearn.cluster.compute_optics_graph(X, *, min_samples, max_eps, metric, p, metric_params, algorithm, leaf_size, n_jobs)[源]#
计算 OPTICS 可达性图。
在用户指南中阅读更多内容。
- 参数:
- X形状为 (n_samples, n_features) 的 {ndarray, 稀疏矩阵},如果 metric='precomputed' 则为 (n_samples, n_samples)
特征数组,如果 metric='precomputed' 则为样本之间的距离数组。
- min_samples大于 1 的整数或 0 到 1 之间的浮点数
一个点被视为核心点所需的邻域中的样本数量。表示为绝对数字或样本数量的分数(四舍五入至少为 2)。
- max_eps浮点数, 默认值=np.inf
两个样本之间被视为彼此邻域中的最大距离。默认值
np.inf
将识别所有尺度的簇;减小max_eps
将缩短运行时间。- metric字符串或可调用对象, 默认值='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 中移除。- p浮点数, 默认值=2
来自
pairwise_distances
的 Minkowski 度量的参数。当 p = 1 时,这等同于使用 manhattan_distance (l1),当 p = 2 时等同于使用 euclidean_distance (l2)。对于任意 p,使用 minkowski_distance (l_p)。- metric_params字典, 默认值=None
度量函数的附加关键字参数。
- algorithm{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, 默认值='auto'
用于计算最近邻的算法
注意:对稀疏输入进行拟合将覆盖此参数的设置,转而使用暴力法。
- leaf_size整数, 默认值=30
- n_jobs整数, 默认值=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_]
以聚类顺序访问。- predecessor_形状为 (n_samples,) 的数组
样本来源点,按对象顺序索引。种子点的先行点为 -1。
参考文献
[1]Ankerst, Mihael, Markus M. Breunig, Hans-Peter Kriegel, and Jörg Sander. “OPTICS: ordering points to identify the clustering structure.” ACM 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])