kmeans 一般速度為 O ( k * d* n ), d=dimension, 並不快
分群的數目可以依據個人經驗決定,或是讓程式自動估算。讓程式自動估算的方式是,每回合會計算所有點到群心的半徑總和,此總和應該要越來越小 若半徑總和增加,就是該停止的時候
那在學長的程式中,所用kmeans的種子是random撒的嗎?
是從輸入的data set中random選出一個做kmeans,之後每輪都會新增一個群心,直到無法再增加群心為止。
分群結果好壞,也因此奠基於初始random選到的那點的合適度。
你提的Affinity Propagation是更穩定的做法,因為他先假設以data set中每一點當作群心,再慢慢收斂到最合適的群心
其缺點是速度慢,且針對超高維度的應用,可能需自己加以改良distance measure function (responsibilities 與 availabilities)