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