簡體   English   中英

K-Means ++算法-解釋下一個集群中心的選擇

[英]The K-Means++ Algorithm - Explain the Choice of the Next Cluster Center

在此處輸入圖片說明

就像圖片一樣,為什么不只選擇點2作為聚類的第二個點呢?而是去生成一個隨機數bettwen [0,1]?

def initialize(X, K):#kmean++
m,n=shape(X)
C = mat(zeros((K,n)))
random_number=random.randint(0,m)
C[0,:]=X[random_number]
for k in range(1, K):
    D2 = scipy.array([min([scipy.inner(c-x,c-x) for c in C]) for x in X])
    probs = D2/D2.sum()
    cumprobs = probs.cumsum()
    r = scipy.rand()
    for j,p in enumerate(cumprobs):
        if r < p:
            i = j
            break
    C[k,:]=X[i]
return C

為什么生成r與p(圖片中的累計概率為Sum)進行比較?

因為對於行為分析,更容易理解在處理概率驅動的選擇時發生的情況。

憑直覺,您不想選擇最遠的點,因為它可能是異常值。
您想選擇一個點,該點可能是很遠的質量的一部分。
為此,選擇PDF的效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM