當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。