K-Means聚類若干問題

1 K-Means聚類收斂性怎么證明?一定會收斂???

2 聚類中止條件:迭代次數、簇中心變化率、最小平方誤差MSE???

3 聚類初值的選擇,對聚類結果的影響???(K-Means對初值是敏感的)

4 肘部選擇法——確定聚類數K

沒有所謂最好的選擇聚類數的方法,通常是需要根據不同的問題,人工進行選擇的。選擇的時候思考我們運用 K-均值算法聚類的動機是什么,然后選擇能最好服務于該目的標聚類數。當人們在討論,選擇聚類數目的方法時,有一個可能會談及的方法叫作“肘部法則”。關于“肘部法則”,我們所需要做的是改變 K 值,也就是聚類類別數目的總數。我們用一個聚類來運行 K 均值聚類方法。這就意味著,所有的數據都會分到一個聚類里,然后計算成本函數J,K 代表聚類種類。

我們可能會得到一條類似于這樣的曲線。像一個人的肘部。這就是“肘部法則”所做的,讓我們來看這樣一個圖,看起來就好像有一個很清楚的肘在那兒。好像人的手臂,如果你伸出你的胳膊,那么這就是你的肩關節、肘關節、手。這就是“肘部法則”。你會發現這種模式,它的畸變值會迅速下降,從 1 到 2,從 2 到 3 之后,你會在 3 的時候達到一個肘點。在此之后,畸變值就下降的非常慢,看起來就像使用 3 個聚類來進行聚類是正確的,這是因為那個點是曲線的肘點,畸變值下降得很快,K 等于 3 之后就下降得很慢,那么我們就選 K 等于 3。當你應用“肘部法則”的時候,如果你得到了一個像上面這樣的圖,那么這將是一種用來選擇聚類個數的合理方法。

uk是第k 個類的重心位置。成本函數是各個類畸變程度(distortions)之和。每個類的畸變程度等于該類重心與其內部成員位置距離的平方和。若類內部的成員彼此間越緊湊則類的畸變程度越小,反之,若類內部的成員彼此間越分散則類的畸變程度越大。求解成本函數最小化的參數就是一個重復配置每個類包含的觀測值,并不斷移動類重心的過程。

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportKMeansfromscipy.spatial.distanceimportcdistx = np.array([1,2,3,1,5,6,5,5,6,7,8,9,7,9])y = np.array([1,3,2,2,8,6,7,6,7,1,2,1,1,3])data = np.array(list(zip(x, y)))# 肘部法則 求解最佳分類數# K-Means參數的最優解也是以成本函數最小化為目標# 成本函數是各個類畸變程度(distortions)之和。每個類的畸變程度等于該類重心與其內部成員位置距離的平方和# 畫肘部圖aa=[]K = range(1,10)forkinrange(1,10):? ? kmeans=KMeans(n_clusters=k)? ? kmeans.fit(data)? ? aa.append(sum(np.min(cdist(data, kmeans.cluster_centers_,'euclidean'),axis=1))/data.shape[0])plt.figure()plt.plot(np.array(K), aa,'bx-')plt.show()# 繪制散點圖及聚類結果中心點plt.figure()plt.axis([0,10,0,10])plt.grid(True)plt.plot(x, y,'k.')kmeans = KMeans(n_clusters=3)kmeans.fit(data)plt.plot(kmeans.cluster_centers_[:,0], kmeans.cluster_centers_[:,1],'r.')plt.show()

5 K-Means優缺點及適用范圍

K值需要預先給定,屬于預先知識,很多情況下K值的估計是非常困難的,對于像計算全部微信用戶的交往圈這樣的場景就完全的沒辦法用K-Means進行。對于可以確定K值不會太大但不明確精確的K值的場景,可以進行迭代運算,然后找出Cost Function最小時所對應的K值,這個值往往能較好的描述有多少個簇類。

K-Means算法對初始選取的聚類中心點是敏感的,不同的隨機種子點得到的聚類結果完全不同

K-Means算法并不是適用所有的樣本類型。它不能處理非球形簇、不同尺寸和不同密度的簇。

K-Means算法對離群點的數據進行聚類時,K均值也有問題,這種情況下,離群點檢測和刪除有很大的幫助。(異常值對聚類中心影響很大,需要離群點檢測和剔除

5.K-Means算法對噪聲和離群點敏感,最重要是結果不一定是全局最優,只能保證局部最優。

6 從K-Means 到 Gaussian Mixture Model

數據表示

在 k-means 中,我們用單個點來對 cluster 進行建模,這實際上是一種最簡化的數據建模形式。這種用點來對 cluster 進行建模實際上就已經假設了各 cluster 的數據是呈圓形(或者高維球形)分布的。但在實際生活中,很少能有這種情況。所以在 GMM 中,我們使用一種更加一般的數據表示,也就是高斯分布。

數據先驗

在 k-means 中,我們假設各個 cluster 的先驗概率是一樣的,但是各個 cluster 的數據量可能是不均勻的。舉個例子,cluster A 中包含了10000個樣本,cluster B 中只包含了100個。那么對于一個新的樣本,在不考慮其與 A B cluster 相似度的情況,其屬于 cluster A 的概率肯定是要大于 cluster B的。在 GMM 中,同樣對數據先驗進行了建模。

相似度衡量

在 k-means 中,我們通常采用歐氏距離來衡量樣本與各個 cluster 的相似度。這種距離實際上假設了數據的各個維度對于相似度的衡量作用是一樣的。但在 GMM 中,相似度的衡量使用的是后驗概率

通過引入協方差矩陣,我們就可以對各維度數據的不同重要性進行建模。

數據分配

在 k-means 中,各個樣本點只屬于與其相似度最高的那個cluster,這實際上是一種hard clustering。在 GMM 中則使用的是后驗概率來對各個cluster 按比例分配,是一種 fuzzy clustering。

Hierarchical ClusteringK-MeansGMM這一派系的聚類算法不太相同:

K-Means 與 GMM 更像是一種 top-down 的思想,它們首先要解決的問題是,確定 cluster 數量,也就是 k 的取值。在確定了 k 后,再來進行數據的聚類。

Hierarchical Clustering 則是一種 bottom-up 的形式,先有數據,然后通過不斷選取最相似的數據進行聚類。

K-Means業界用得多的原因之一就是收斂快,現在還能通過分布式計算加速,別的原因有調參就一個K。

作者:7125messi

鏈接:http://www.lxweimin.com/p/cc74c124c00b

來源:簡書

簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容