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


Python sklearn Birch用法及代碼示例


本文簡要介紹python語言中 sklearn.cluster.Birch 的用法。

用法:

class sklearn.cluster.Birch(*, threshold=0.5, branching_factor=50, n_clusters=3, compute_labels=True, copy=True)

實現 BIRCH 聚類算法。

它是一種節省內存的 online-learning 算法,作為 MiniBatchKMeans 的替代方案提供。它構造了一個樹形數據結構,其中簇中心從葉子中讀取。這些可以是最終的聚類質心,也可以作為其他聚類算法的輸入,例如 AgglomerativeClustering

在用戶指南中閱讀更多信息。

參數

threshold浮點數,默認=0.5

將新樣本與最近的子簇合並得到的子簇的半徑應小於閾值。否則將啟動一個新的子集群。將此值設置為非常低會促進拆分,反之亦然。

branching_factor整數,默認=50

每個節點中的最大 CF 子集群數。如果一個新樣本進入,使得子集群的數量超過branching_factor,則該節點將被拆分為兩個節點,每個節點都重新分配了子集群。刪除該節點的父子集群,並添加兩個新子集群作為 2 個拆分節點的父節點。

n_clustersint,sklearn.cluster模型的實例,默認=3

最終聚類步驟後的聚類數,它將葉子中的子聚類視為新樣本。

  • None :不執行最後的聚類步驟,子聚類按原樣返回。
  • sklearn.cluster Estimator :如果提供了模型,則該模型適合將子集群視為新樣本,並且將初始數據映射到最近的子集群的標簽。
  • int :模型擬合為 AgglomerativeClustering ,其中 n_clusters 設置為等於 int。
compute_labels布爾,默認=真

是否為每個擬合計算標簽。

copy布爾,默認=真

是否複製給定數據。如果設置為 False,初始數據將被覆蓋。

屬性

root__CFNode

CFTree 的根。

dummy_leaf__CFNode

開始指向所有葉子的指針。

subcluster_centers_ndarray

所有子簇的質心直接從葉子中讀取。

subcluster_labels_ndarray

在全局聚類後分配給子聚類質心的標簽。

labels_ndarray 形狀 (n_samples,)

分配給輸入數據的標簽數組。如果使用 partial_fit 而不是 fit,則將它們分配給最後一批數據。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當 X 具有全為字符串的函數名稱時才定義。

注意

樹數據結構由節點組成,每個節點由許多子集群組成。一個節點中的最大子簇數由分支因子決定。每個子集群維護一個線性和、平方和以及該子集群中的樣本數。此外,如果子集群不是葉節點的成員,每個子集群也可以有一個節點作為其子節點。

對於進入根的新點,將其與最接近它的子簇合並,並更新該子簇的線性和、平方和和樣本數。這是遞歸完成的,直到葉節點的屬性被更新。

參考

例子

>>> from sklearn.cluster import Birch
>>> X = [[0, 1], [0.3, 1], [-0.3, 1], [0, -1], [0.3, -1], [-0.3, -1]]
>>> brc = Birch(n_clusters=None)
>>> brc.fit(X)
Birch(n_clusters=None)
>>> brc.predict(X)
array([0, 0, 0, 1, 1, 1])

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.cluster.Birch。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。