当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cuml.DBSCAN用法及代码示例


用法:

class cuml.DBSCAN(*, eps=0.5, handle=None, min_samples=5, metric='euclidean', verbose=False, max_mbytes_per_batch=None, output_type=None, calc_core_sample_indices=True)

DBSCAN 是一种非常强大且快速的聚类技术,可以找到数据集中的聚类。如果数据点倾向于聚集在更大的组中,这允许 DBSCAN 泛化到许多问题。

cuML 的 DBSCAN 需要一个 array-like 对象或 cuDF DataFrame 并构造一个邻接图来计算近邻之间的距离。

参数

eps浮点数(默认 = 0.5)

两个点之间的最大距离,使它们位于同一邻域。

handlecuml.Handle

指定 cuml.handle 保存用于此模型中计算的内部 CUDA 状态。最重要的是,这指定了将用于模型计算的 CUDA 流,因此用户可以通过在多个流中创建句柄在不同的流中同时运行不同的模型。如果为 None,则创建一个新的。

min_samplesint(默认值 = 5)

邻域中的样本数,使得该组可以被视为重要的核心点(包括点本身)。

metric: {‘euclidean’, ‘precomputed’}, default = ‘euclidean’

计算点之间的距离时使用的度量。如果 metric 是‘precomputed’,X 被假定为一个距离矩阵并且必须是正方形。

verboseint 或布尔值,默认=False

设置日志记录级别。它必须是 cuml.common.logger.level_* 之一。有关详细信息,请参阅详细级别。

max_mbytes_per_batch(可选)int64

使用不超过此兆字节数来计算成对距离计算的批量大小。这可以在运行时和内存使用之间进行权衡,以使 N^2 成对距离计算更易于处理大量样本。如果您在运行 DBSCAN 时遇到内存不足错误,您可以根据设备的内存大小设置此值。注意:此选项不会设置 DBSCAN 计算中使用的最大总内存,因此该值将无法设置为设备上可用的总内存。

output_type{‘input’, ‘cudf’, ‘cupy’, ‘numpy’, ‘numba’},默认=无

用于控制估计器的结果和属性的输出类型的变量。如果为 None,它将继承在模块级别设置的输出类型 cuml.global_settings.output_type 。有关详细信息,请参阅输出数据类型配置。

calc_core_sample_indices(可选)布尔值(默认 = True)

指示是否应计算核心样本的 index 。将不使用属性core_sample_indices_,将其设置为 False 将避免不必要的内核启动

注意

DBSCAN 对其使用的距离度量非常敏感,并且一个很大的假设是数据点需要集中在组中才能构建集群。

DBSCAN 的应用

DBSCAN 的主要好处是集群的数量不是超参数,它可以找到非线性形状的集群。这也允许 DBSCAN 对噪声具有鲁棒性。 DBSCAN 已应用于分析大型强子对撞机中的粒子碰撞、营销分析中的客户细分等等。

有关其他文档,请参阅 scikitlearn’s DBSCAN

例子

# Both import methods supported
from cuml import DBSCAN
from cuml.cluster import DBSCAN

import cudf
import numpy as np

gdf_float = cudf.DataFrame()
gdf_float['0'] = np.asarray([1.0,2.0,5.0], dtype = np.float32)
gdf_float['1'] = np.asarray([4.0,2.0,1.0], dtype = np.float32)
gdf_float['2'] = np.asarray([4.0,2.0,1.0], dtype = np.float32)

dbscan_float = DBSCAN(eps = 1.0, min_samples = 1)
dbscan_float.fit(gdf_float)
print(dbscan_float.labels_)

输出:

0    0
1    1
2    2

属性

labels_array-like 或 cuDF 系列

每个数据点属于哪个集群。噪声样本被标记为 -1。格式取决于 cuml 全局输出类型和估算器output_type。

core_sample_indices_array-like 或 cuDF 系列

核心样本的索引。仅在 calc_core_sample_indices==True 时计算

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cuml.DBSCAN。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。