ML 9day 開始無監督學習 聚類算法 K-means clustering.

先看一個flush動畫
http://shabal.in/visuals/kmeans/6.html
在這裏插入圖片描述
如圖所示,數據樣本用圓點表示,每個簇的中心點用叉叉表示。(a)剛開始時是原始數據,雜亂無章,沒有label,看起來都一樣,都是綠色的。(b)假設 數據集可以分爲兩類,令K=2,隨機在座標上選兩個點,作爲兩個類的中心點。(c-f)演示了聚類的兩種迭代。先劃分,把每個數據樣本劃分到最近的中心點 那一簇;劃分完後,更新每個簇的中心,即把該簇的所有數據點的座標加起來去平均值。這樣不斷進行”劃分—更新—劃分—更新”,直到每個簇的中心不在移動爲止。

在這裏插入圖片描述

對比KNN算法和k-means算法
在這裏插入圖片描述

Kmeans算法的缺陷

聚類中心的個數K 需要事先給定,但在實際中這個 K 值的選定是非常難以估計的,很多時候,事先並不知道給定的數據集應該分成多少個類別才最合適
Kmeans需要人爲地確定初始聚類中心,不同的初始聚類中心可能導致完全不同的聚類結果。(可以使用Kmeans++算法來解決)

層次聚類法

層次聚類法的原理較爲簡單。它的基本過程如下:

每一個樣本點視爲一個簇;
1、計算各個簇之間的距離,最近的兩個簇聚合成一個新簇;
2、重複以上過程直至最後只有一簇。
3、層次聚類不指定具體的簇數,而只關注簇之間的遠近,最終會形成一個樹形圖。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章