泛統計理論初探——Kmeans方法簡介

數據挖掘-探討Kmeans算法

Kmeans算法簡介
衆所周知,機器學習分爲有監督學習和無監督學習兩種。對於有監督學習的情況,一般根據被解釋變量是否連續,分爲分類問題和迴歸問題,在之前的文章中已經有過討論。在本文中,我們將討論無監督學習中的一種聚類方法,即Kmeans算法。該算法被稱爲K均值方法,從字面上的意思就可以看出,確定參數K非常重要。實際上,K均值方法的主要思想是採用距離作爲衡量兩個實體之間是否屬於一個羣落的評判標準,如果兩個實體的距離越近,那麼它們之間的相似性就越大;如果兩個實體的相似度越遠,那麼它們之間的相似性就越小。
在某種程度上來說,影響Kmeans算法的因素主要有2個,第一個因素是K值的選取,第二個因素是衡量距離的公式。對於第一個因素來說,需要使用者進行大量的嘗試,尋找在不同K下的損失函數並進行比較,找出所謂的肘部值,即損失函數曲線的凸點,在該凸點時,損失函數較小,同時不會造成過度的分類。在下圖中,K的值爲2對應的是損失函數的肘部值,即損失函數曲線的凸點。
在這裏插入圖片描述
對於第二個因素來說,衡量樣本之間的距離方式有很多,比如歐式距離、絕對值距離、閔可夫斯基距離等。一般來說算法包默認使用歐氏距離,使用者也可以根據問題的實際情況去定義其他的距離函數。
下面我們來探討Kmeans算法的主要步驟:
(1)確定K值,並隨機在數據集合中選擇K個數據點作中心,即有K箇中心。
(2)對數據集合中的每個數據樣本,計算它們與每個中心的距離,將離當前樣本劃歸爲距離最近的中心所屬的集合。
(3)將所有的數據樣本劃分爲K個集合,然後再次通過計算集合內部的數據均值重新得到每個集合的中心。
(4)如果再次計算得到的中心和上一次的中心的距離小於事先設定的一個較小的閾值時,認爲中心的位置變化已經不大並且已經穩定,即認爲Kmeans算法已經結束。反之,則繼續計算步驟(3)直到中心的位置已經基本穩定。
通過上述步驟,我們發現該算法的原理較爲簡單,並且實現起來很方便,同時計算複雜度不高,聚類效果還不錯。但同時,需要注意到算法有以下三點的不足。
1、該算法非常依賴K值的選擇,如果K值選的不對,那麼會很影響最終的聚類效果,即對K值的選擇非常敏感。
2、該算法對離羣點、異常數據較爲敏感,當數據集中出現此類異常數據時,計算得到的距離會影響中心的位置,進而對聚類的每一步計算造成影響,使得聚類的效果和真實的結果有較大差異。
3、該算法得到的聚類結果可能不是全局最優的結果,因爲它每次得到的中心是和上一次進行比較的,如果小於某個閾值,那麼就會停止計算。如果在初始選擇的時候剛好在某個局部最優分類點附近的話,那麼通過幾次迭代計算後會使得中心穩定在局部最優值,沒有達到最好的聚類效果。
其實Kmeans這種算法在大量的實際場景中,有着非常廣泛的應用。比如尋找犯罪地點、尋找保險詐騙案件、文檔自動化歸類等。所以理解Kmeans算法的原理和步驟,對於在實際場景的應用有好處。
總的來說,Kmeans算法是無監督學習中最簡單的一種算法,在某些明確需要幾個類別的場景中,該算法可以較快地進行聚類。同時,還可以應用該算法進行異常值的發現,從而提高數據質量和分析的價值。

發佈了29 篇原創文章 · 獲贊 30 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章