亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

K-Means 算法 | 酷殼 - CoolShell.cn

系統(tǒng) 2634 0

K-Means 算法 | 酷殼 - CoolShell.cn

K-Means 算法

2012年6月29日 發(fā)表評論 閱讀評論 13,428 人閱讀 ? ?

最近在學(xué)習(xí)一些數(shù)據(jù)挖掘的算法,看到了這個算法,也許這個算法對你來說很簡單,但對我來說,我是一個初學(xué)者,我在網(wǎng)上翻看了很多資料,發(fā)現(xiàn)中文社區(qū)沒有把這個問題講得很全面很清楚的文章,所以,把我的學(xué)習(xí)筆記記錄下來,分享給大家。

在數(shù)據(jù)挖掘中,? k -Means 算法 是一種? cluster analysis ?的算法,其主要是來計算數(shù)據(jù)聚集的算法,主要通過不斷地取離種子點最近均值的算法。

問題

K-Means算法主要解決的問題如下圖所示。我們可以看到,在圖的左邊有一些點,我們用肉眼可以看出來有四個點群,但是我們怎么通過計算機程序找出這幾個點群來呢?于是就出現(xiàn)了我們的K-Means算法( Wikipedia鏈接

K-Means 算法 | 酷殼 - CoolShell.cn

K-Means 要解決的問題

算法概要

這個算法其實很簡單,如下圖所示:

?

K-Means 算法概要

K-Means 算法概要

從上圖中,我們可以看到, A, B, C, D, E 是五個在圖中點。而灰色的點是我們的種子點,也就是我們用來找點群的點 。有兩個種子點,所以K=2。

然后,K-Means的算法如下:

  1. 隨機在圖中取K(這里K=2)個種子點。
  2. 然后對圖中的所有點求到這K個種子點的距離,假如點Pi離種子點Si最近,那么Pi屬于Si點群。(上圖中,我們可以看到A,B屬于上面的種子點,C,D,E屬于下面中部的種子點)
  3. 接下來,我們要移動種子點到屬于他的“點群”的中心。(見圖上的第三步)
  4. 然后重復(fù)第2)和第3)步,直到,種子點沒有移動(我們可以看到圖中的第四步上面的種子點聚合了A,B,C,下面的種子點聚合了D,E)。

這個算法很簡單,但是有些細節(jié)我要提一下,求距離的公式我不說了,大家有初中畢業(yè)水平的人都應(yīng)該知道怎么算的。我重點想說一下“求點群中心的算法”

求點群中心的算法

一般來說,求點群中心點的算法你可以很簡的使用各個點的X/Y坐標的平均值。不過,我這里想告訴大家另三個求中心點的的公式:

1)Minkowski Distance 公式 —— ?λ 可以隨意取值,可以是負數(shù),也可以是正數(shù),或是無窮大。

2)Euclidean Distance 公式 —— 也就是第一個公式?λ=2 的情況

3)CityBlock Distance 公式 ——?也就是第一個公式?λ=1 的情況

這三個公式的求中心點有一些不一樣的地方,我們看下圖(對于第一個 λ 在 0-1之間)。

K-Means 算法 | 酷殼 - CoolShell.cn ? ? K-Means 算法 | 酷殼 - CoolShell.cn ? K-Means 算法 | 酷殼 - CoolShell.cn

(1)Minkowski Distance ? ? (2) Euclidean Distance ? ?(3)? CityBlock Distance

上面這幾個圖的大意是他們是怎么個逼近中心的,第一個圖以星形的方式,第二個圖以同心圓的方式,第三個圖以菱形的方式。

K-Means的演示

如果你以” K Means Demo “為關(guān)鍵字到Google里查你可以查到很多演示。這里推薦一個演示

http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/AppletKM.html

操作是,鼠標左鍵是初始化點,右鍵初始化“種子點”,然后勾選“Show History”可以看到一步一步的迭代。

注:這個演示的鏈接也有一個不錯的 K Means Tutorial

K-Means ++ 算法

K-Means主要有兩個最重大的缺陷——都和初始值有關(guān):

  • ?K 是事先給定的,這個 K 值的選定是非常難以估計的。很多時候,事先并不知道給定的數(shù)據(jù)集應(yīng)該分成多少個類別才最合適。(? ISODATA 算法 通過類的自動合并和分裂,得到較為合理的類型數(shù)目 K)
  • K-Means算法需要用初始隨機種子點來搞,這個隨機種子點太重要,不同的隨機種子點會有得到完全不同的結(jié)果。( K-Means++算法 可以用來解決這個問題,其可以有效地選擇初始點)

我在這里重點說一下?K-Means++算法步驟:

  1. 先從我們的數(shù)據(jù)庫隨機挑個隨機點當“種子點”。
  2. 對于每個點,我們都計算其和最近的一個“種子點”的距離D( x )并保存在一個數(shù)組里,然后把這些距離加起來得到Sum(D( x ))。
  3. 然后,再取一個隨機值,用權(quán)重的方式來取計算下一個“種子點”。這個算法的實現(xiàn)是,先取一個能落在Sum(D( x ))中的隨機值Random,然后用Random?-=?D( x ),直到其<=0,此時的點就是下一個“種子點”。
  4. 重復(fù)第(2)和第(3)步直到所有的K個種子點都被選出來。
  5. 進行K-Means算法。

相關(guān)的代碼你可以在這里找到“ implement the K-means++ algorithm ”(墻) 另, Apache 的通用數(shù)據(jù)學(xué)庫也實現(xiàn)了這一算法

K-Means 算法應(yīng)用

看到這里,你會說,K-Means算法看來很簡單,而且好像就是在玩坐標點,沒什么真實用處。而且,這個算法缺陷很多,還不如人工呢。是的,前面的例子只是玩二維坐標點,的確沒什么意思。但是你想一下下面的幾個問題:

1)如果不是二維的,是多維的,如5維的,那么,就只能用計算機來計算了。

2)二維坐標點的X, Y 坐標,其實是一種向量,是一種數(shù)學(xué)抽象。現(xiàn)實世界中很多屬性是可以抽象成向量的,比如,我們的年齡,我們的喜好,我們的商品,等等,能抽象成向量的目的就是可以讓計算機知道某兩個屬性間的距離。如:我們認為,18歲的人離24歲的人的距離要比離12歲的距離要近,鞋子這個商品離衣服這個商品的距離要比電腦要近,等等。

只要能把現(xiàn)實世界的物體的屬性抽象成向量,就可以用K-Means算法來歸類了

在 《 k均值聚類(K-means) 》?這篇文章中舉了一個很不錯的應(yīng)用例子,作者用亞洲15支足球隊的2005年到1010年的戰(zhàn)績做了一個向量表,然后用K-Means把球隊歸類,得出了下面的結(jié)果,呵呵。

  • 亞洲一流:日本,韓國,伊朗,沙特
  • 亞洲二流:烏茲別克斯坦,巴林,朝鮮
  • 亞洲三流:中國,伊拉克,卡塔爾,阿聯(lián)酋,泰國,越南,阿曼,印尼

其實,這樣的業(yè)務(wù)例子還有很多,比如,分析一個公司的客戶分類,這樣可以對不同的客戶使用不同的商業(yè)策略,或是電子商務(wù)中分析商品相似度,歸類商品,從而可以使用一些不同的銷售策略,等等。

最后給一個挺好的算法的幻燈片: http://www.cs.cmu.edu/~guestrin/Class/10701-S07/Slides/clustering.pdf

(全文完)

K-Means 算法 | 酷殼 - CoolShell.cn


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产欧美一区二区三区久久 | 亚洲欧洲日产国码久在线观看 | 色黄网站青青草原免费 | 久久国产精品久久精 | 91亚洲最新精品 | 日本一级毛片视频 | 俄罗斯一级毛片免费播放 | 欧美成人一级视频 | 四虎永久地址4hu2019 | 69成人做爰视频在线观看 | 性感美女香蕉视频 | 成年人网站免费 | 中文字幕在线免费看 | 日本香蕉网 | 日韩午夜片 | 欧美一区视频 | 4hu影院最新地址www | 日韩综合nv一区二区在线观看 | 亚洲欧美激情综合第一区 | 四虎最新紧急入口4hu | 久久视频精品a线视频在线观看 | 色综合久久天天综线观看 | 国产一区二区播放 | 国产精品久久在线 | 日本精品在线观看 | 最新国产精品久久精品 | 一七六九1769视频免费观看 | 天天天天 | 欧美另类网站 | 日韩爱爱小视频 | 成人免费一级片 | 99日精品欧美国产 | 国产精品揄拍一区二区久久 | 精品久久久久久久九九九精品 | 99免费观看 | 亚洲欧美久久 | 日本伊人色综合网站 | 久热草视频| 亚洲图色视频 | 亚洲国产成人精彩精品 | 亚洲网色|