吳恩達機器學習筆記——無監督學習與K-means


K-meas 算法概述


隨機生成K個點,稱爲聚類中心。K-means算法實際上是一個迭代算法,他有兩步動作。在算法的最開始,隨機初始化K個聚類中心,座標位置分別爲u_{i}。第一步是簇分配,第二步是移動聚類中心。遍歷圖中的每一個點,判斷點跟哪個聚類中心的距離更近,進而劃分到這個聚類中心名下,並將聚類中心的下標賦給對應樣本點x^{(i)}c^{(i)},這個步驟其實也是代價函數的最小化過程。然後對所有c^{(i)}=k的樣本點向量求平均值(忽略x^{(0)})將聚類中心移動到同類點的均值處。重複以上過程,直到各個聚類中心已經不再移動了。如果有一個沒有點的聚類中心,則一般做法是移除之。如果仍需保留K個簇,則可以重新隨機初始化這一沒有點的聚類中心。

K平均算法可以將一堆數據分類爲K組,這類似於市場劃分,可以應用到產品型號生產中去。


K-meas 算法代價函數


注意,u_{c^{(i)}}x^{(i)}代表的簇的聚類中心所在的座標位置。K平均算法是根據代價函數找到使得其最小的c和u。這個代價函數的每次變動也叫失真。J也稱爲失真函數。第一步是u不變,找到使得失真函數最小的c。第二部c不變,找到使得失真函數最小的u。


避免局部最優


在算法的一開始,我們需要隨機初始化聚類中心的位置。

最好的辦法是從訓練樣本中隨機挑選K個點,作爲u1...uk。

然而,K平均算法可能收斂到不同的結果,這取決於初始化時聚類狀態。我們可以嘗試多次隨機初始化,運行K算法,計算畸變函數J。最後我們選取畸變值最小,也就是代價最小的。

當K較小,即約爲2-10時,多次隨機初始化效果較好。否則可能雖然有改善,但第一次的值已經相對不錯,後面的改善較小。


K值的選擇


  • “肘部”原則。
  • 通過使用價值人工指定。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章