K均值算法

簡述K均值算法的具體步驟

代價函數可以定義為各個樣本距離所屬簇中心點的誤差平方和


K均值算法的優缺點是什么?如何對其進行調優?

K均值算法有一些缺點,例如受初值和離群點的影響每次的結果不穩定、結果 通常不是全局最優而是局部最優解、無法很好地解決數據簇分布差別比較大的情 況(比如一類是另一類樣本數量的100倍)、不太適用于離散分類等。但是瑕不掩 瑜,K均值聚類的優點也是很明顯和突出的,主要體現在:對于大數據集,K均值 聚類算法相對是可伸縮和高效的,它的計算復雜度是O(NKt)接近于線性,其中N是 數據對象的數目,K是聚類的簇數,t是迭代的輪數。盡管算法經常以局部最優結 束,但一般情況下達到的局部最優已經可以滿足聚類的需求。
其實書中也少講了缺點,那就是關于k的選擇,當維度很高的時候,你很難判斷選擇k多少比較合適。
不過書中在算法調優中說了。所謂的調優其是也是變相的說那些缺點。

K均值算法的調優一般可以從以下幾個角度出發。

(1)數據歸一化和離群點處理。
K均值聚類本質上是一種基于歐式距離度量的數據劃分方法,均值和方差大的 維度將對數據的聚類結果產生決定性的影響,所以未做歸一化處理和統一單位的 數據是無法直接參與運算和比較的。同時,離群點或者少量的噪聲數據就會對均 值產生較大的影響,導致中心偏移,因此使用K均值聚類算法之前通常需要對數據 做預處理。

(2)合理選擇K值。
K值的選擇是K均值聚類最大的問題之一,這也是K均值聚類算法的主要缺 點。實際上,我們希望能夠找到一些可行的辦法來彌補這一缺點,或者說找到K值 的合理估計方法。但是,K值的選擇一般基于經驗和多次實驗結果。例如采用手肘 法,我們可以嘗試不同的K值,并將不同K值所對應的損失函數畫成折線,橫軸 為K的取值,縱軸為誤差平方和所定義的損失函數,如圖5.3所示

由圖可見,K值越大,距離和越小;并且,當K=3時,存在一個拐點,就像人 的肘部一樣;當K (1,3)時,曲線急速下降;當K>3時,曲線趨于平穩。手肘法認 為拐點就是K的最佳值。
手肘法是一個經驗方法,缺點就是不夠自動化,因此研究員們又提出了一些 更先進的方法,其中包括比較有名的Gap Statistic方法[5]。Gap Statistic方法的優點 是,不再需要肉眼判斷,而只需要找到最大的Gap statistic所對應的K即可,因此該 方法也適用于批量化作業。在這里我們繼續使用上面的損失函數,當分為K簇時, 對應的損失函數記為Dk。Gap Statistic定義為
Gap(K)=E(logDk)?logDk

內按照均勻分布隨機地產生和原始樣本數一樣多的隨機樣本,并對這個隨機樣本
做K均值,得到一個Dk;重復多次就可以計算出E(logDk)的近似值。那么Gap(K)有
什么物理含義呢?它可以視為隨機樣本的損失與實際樣本的損失之差。試想實際 樣本對應的最佳簇數為K,那么實際樣本的損失應該相對較小,隨機樣本損失與實 際樣本損失之差也相應地達到最小值,從而Gap(K)取得最大值所對應的K值就是最 佳的簇數。根據式(5.4)計算K =1,2,...,9所對應的Gap Statistic


(3)采用核函數。
采用核函數是另一種可以嘗試的改進方向。傳統的歐式距離度量方式,使得K 均值算法本質上假設了各個數據簇的數據具有一樣的先驗概率,并呈現球形或者 高維球形分布,這種分布在實際生活中并不常見。面對非凸的數據分布形狀時, 可能需要引入核函數來優化,這時算法又稱為核K均值算法,是核聚類方法的一種 [6]。核聚類方法的主要思想是通過一個非線性映射,將輸入空間中的數據點映射到 高位的特征空間中,并在新的特征空間中進行聚類。非線性映射增加了數據點線 性可分的概率,從而在經典的聚類算法失效的情況下,通過引入核函數可以達到 更為準確的聚類結果。

針對K均值算法的缺點,有哪些改進的模型?

K均值算法的主要缺點如下。
(1)需要人工預先確定初始K值,且該值和真實的數據分布未必吻合。
(2)K均值只能收斂到局部最優,效果受到初始值很大。
(3)易受到噪點的影響。
(4)樣本點只能被劃分到單一的類中。

■ K-means++算法
K均值的改進算法中,對初始值選擇的改進是很重要的一部分。而這類算法 中,最具影響力的當屬K-means++算法。原始K均值算法最開始隨機選取數據集中 K個點作為聚類中心,而K-means++按照如下的思想選取K個聚類中心。假設已經 選取了n個初始聚類中心(0<n<K),則在選取第n+1個聚類中心時,距離當前n個 聚類中心越遠的點會有更高的概率被選為第n+1個聚類中心。在選取第一個聚類中 心(n=1)時同樣通過隨機的方法。可以說這也符合我們的直覺,聚類中心當然是 互相離得越遠越好。當選擇完初始點后,K-means++后續的執行和經典K均值算法 相同,這也是對初始值選擇進行改進的方法等共同點。

■ ISODATA算法
當K值的大小不確定時,可以使用ISODATA算法。ISODATA的全稱是迭代自 組織數據分析法。在K均值算法中,聚類個數K的值需要預先人為地確定,并且在 整個算法過程中無法更改。而當遇到高維度、海量的數據集時,人們往往很難準 確地估計出K的大小。ISODATA算法就是針對這個問題進行了改進,它的思想也 很直觀。當屬于某個類別的樣本數過少時,把該類別去除;當屬于某個類別的樣 本數過多、分散程度較大時,把該類別分為兩個子類別。ISODATA算法在K均值 算法的基礎之上增加了兩個操作,一是分裂操作,對應著增加聚類中心數;二是 合并操作,對應著減少聚類中心數。ISODATA算法是一個比較常見的算法,其缺 點是需要指定的參數比較多,不僅僅需要一個參考的聚類數量Ko,還需要制定3個
閾值。下面介紹ISODATA算法的各個輸入參數。
(1)預期的聚類中心數目Ko。在ISODATA運行過程中聚類中心數可以變 化,Ko是一個用戶指定的參考值,該算法的聚類中心數目變動范圍也由其決定。 具體地,最終輸出的聚類中心數目常見范圍是從Ko的一半,到兩倍Ko。
(2)每個類所要求的最少樣本數目Nmin。如果分裂后會導致某個子類別所包 含樣本數目小于該閾值,就不會對該類別進行分裂操作。
(3)最大方差Sigma。用于控制某個類別中樣本的分散程度。當樣本的分散 程度超過這個閾值時,且分裂后滿足(1),進行分裂操作。
(4)兩個聚類中心之間所允許最小距離Dmin。如果兩個類靠得非常近(即這 兩個類別對應聚類中心之間的距離非常小),小于該閾值時,則對這兩個類進行
合并操作。
如果希望樣本不劃分到單一的類中,可以使用模糊C均值或者高斯混合模型, 高斯混合模型會在下一節中詳細講述。

證明K均值算法的收斂性。

K均值聚類的迭代算法實際上是一種最大期望算法 (Expectation-Maximization algorithm),簡稱EM算法。EM算法解決的是在概率模 型中含有無法觀測的隱含變量情況下的參數估計問題。
EM算法只保證收斂到局部最優解

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

推薦閱讀更多精彩內容