① 在 K-means 算法中 K 是事先給定的,這個 K 值的選定是非常難以估計的。很多時候,事先并不知道給定的數據集應該分成多少個類別才最合適。這也是 K-means 算法的一個不足。有的算法是通過類的自動合并和分裂,得到較為合理的類型數目 K,例如 ISODATA 算法。關于 K-means 算法中聚類數目K 值的確定在文獻中,是根據方差分析理論,應用混合 F統計量來確定最佳分類數,并應用了模糊劃分熵來驗證最佳分類數的正確性。在文獻中,使用了一種結合全協方差矩陣的 RPCL 算法,并逐步刪除那些只包含少量訓練數據的類。而文獻中使用的是一種稱為次勝者受罰的 競爭學習規則,來自動決定類的適當數目。它的思想是:對每個輸入而言,不僅競爭獲勝單元的權值被修正以適應輸入值,而且對次勝單元采用懲罰的方法使之遠離輸入值。
② 在 K-means 算法中,首先需要根據初始聚類中心來確定一個初始劃分,然后對初始劃分進行優化。這個初始聚類中心的選擇對聚類結果有較大的影響,一旦初始值選擇的不好,可能無法得到有效的聚類結果,這也成為K-means算法的一個主要問題。對于該問題的解決,許多算法采用遺傳算法(GA),例如文獻 中采用遺傳算法(GA)進行初始化,以內部聚類準則作為評價指標。
③ 從 K-means 算法框架可以看出,該算法需要不斷地進行樣本分類調整,不斷地計算調整后的新的聚類中心,因此當數據量非常大時,算法的時間開銷是非常大的。所以需要對算法的時間復雜度進行分析、改進,提高算法應用范圍。在文獻中從該算法的時間復雜度進行分析考慮,通過一定的相似性準則來去掉聚類中心的侯選集。而在文獻中,使用的 K-means 算法是對樣本數據進行聚類,無論是初始點的選擇還是一次迭代完成時對數據的調整,都是建立在隨機選取的樣本數據的基礎之上,這樣可以提高算法的收斂速度。