本文简要介绍python语言中 sklearn.cluster.DBSCAN
的用法。
用法:
class sklearn.cluster.DBSCAN(eps=0.5, *, min_samples=5, metric='euclidean', metric_params=None, algorithm='auto', leaf_size=30, p=None, n_jobs=None)
从向量数组或距离矩阵执行 DBSCAN 聚类。
DBSCAN - 基于密度的噪声应用空间聚类。找到高密度的核心样本并从中扩展集群。适用于包含相似密度集群的数据。
在用户指南中阅读更多信息。
- eps:浮点数,默认=0.5
两个样本之间的最大距离,一个被认为是在另一个附近。这不是集群内点距离的最大界限。 This is the most important DBSCAN parameter to choose appropriately for your data set and distance function.
- min_samples:整数,默认=5
将一个点视为核心点的邻域中的样本数(或总权重)。这包括点本身。
- metric:str,或可调用,默认='euclidean'
计算特征数组中实例之间的距离时使用的度量。如果 metric 是一个字符串或可调用的,它必须是
sklearn.metrics.pairwise_distances
为其 metric 参数允许的选项之一。如果 metric 是“precomputed”,X 被假定为一个距离矩阵并且必须是正方形。 X 可能是一个词汇表,在这种情况下,只有 “nonzero” 元素可以被视为 DBSCAN 的邻居。- metric_params:字典,默认=无
度量函数的附加关键字参数。
- algorithm:{‘auto’, ‘ball_tree’,‘kd_tree’, ‘brute’},默认='自动'
NearestNeighbors 模块用于计算逐点距离并查找最近邻居的算法。有关详细信息,请参阅NearestNeighbors 模块文档。
- leaf_size:整数,默认=30
叶子大小传递给BallTree或cKDTree。这会影响构建和查询的速度以及存储树所需的内存。最佳值取决于问题的性质。
- p:浮点数,默认=无
用于计算点之间距离的 Minkowski 度量的幂。如果没有,那么
p=2
(相当于欧几里得距离)。- n_jobs:整数,默认=无
要运行的并行作业数。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关详细信息,请参阅词汇表。
- core_sample_indices_:ndarray 形状 (n_core_samples,)
岩心样品 index 。
- components_:ndarray 形状 (n_core_samples, n_features)
通过训练找到的每个核心样本的副本。
- labels_:形状的ndarray(n_samples)
给fit()的数据集中每个点的聚类标签。嘈杂的样本被赋予标签-1。
- n_features_in_:int
拟合期间看到的特征数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。
参数:
属性:
注意:
有关示例,请参见示例/集群/plot_dbscan.py。
这个实现bulk-computes所有邻域查询,这将内存复杂度增加到 O(n.d),其中 d 是平均邻居数,而原始 DBSCAN 的内存复杂度为 O(n)。在查询这些最近的邻域时,它可能会吸引更高的内存复杂度,具体取决于
algorithm
。避免查询复杂性的一种方法是使用
NearestNeighbors.radius_neighbors_graph
和mode='distance'
预先计算块中的稀疏邻域,然后在此处使用metric='precomputed'
。另一种减少内存和计算时间的方法是删除(接近)重复点并改用
sample_weight
。cluster.OPTICS
提供了类似的集群,但内存使用量较低。参考:
Ester, M.、H. P. Kriegel、J. Sander 和 X. Xu,“一种基于密度的算法,用于在有噪声的大型空间数据库中发现集群”。在:第二届知识发现和数据挖掘国际会议论文集,俄勒冈州波特兰市,AAAI 出版社,第 226-231 页。 1996
Schubert, E.、Sander, J.、Ester, M.、Kriegel, H. P. 和 Xu, X.(2017 年)。 DBSCAN 重新审视,重新审视:为什么以及如何(仍然)使用 DBSCAN。 ACM 数据库系统事务 (TODS),42(3),19。
例子:
>>> from sklearn.cluster import DBSCAN >>> import numpy as np >>> X = np.array([[1, 2], [2, 2], [2, 3], ... [8, 7], [8, 8], [25, 80]]) >>> clustering = DBSCAN(eps=3, min_samples=2).fit(X) >>> clustering.labels_ array([ 0, 0, 0, 1, 1, -1]) >>> clustering DBSCAN(eps=3, min_samples=2)
相关用法
- Python sklearn DummyRegressor用法及代码示例
- Python sklearn DictVectorizer用法及代码示例
- Python sklearn DictVectorizer.restrict用法及代码示例
- Python sklearn DummyClassifier用法及代码示例
- Python sklearn DotProduct用法及代码示例
- Python sklearn DistanceMetric用法及代码示例
- Python sklearn DecisionTreeClassifier用法及代码示例
- Python sklearn DictionaryLearning用法及代码示例
- Python sklearn DetCurveDisplay.from_predictions用法及代码示例
- Python sklearn DetCurveDisplay.from_estimator用法及代码示例
- Python sklearn DetCurveDisplay用法及代码示例
- Python sklearn DecisionTreeRegressor用法及代码示例
- Python sklearn jaccard_score用法及代码示例
- Python sklearn WhiteKernel用法及代码示例
- Python sklearn CalibrationDisplay.from_predictions用法及代码示例
- Python sklearn VotingRegressor用法及代码示例
- Python sklearn gen_batches用法及代码示例
- Python sklearn ExpSineSquared用法及代码示例
- Python sklearn MDS用法及代码示例
- Python sklearn adjusted_rand_score用法及代码示例
- Python sklearn MLPClassifier用法及代码示例
- Python sklearn train_test_split用法及代码示例
- Python sklearn RandomTreesEmbedding用法及代码示例
- Python sklearn GradientBoostingRegressor用法及代码示例
- Python sklearn GridSearchCV用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.cluster.DBSCAN。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。