1. 程式人生 > >大資料之資料探勘理論筆記 聚類問題之K-means

大資料之資料探勘理論筆記 聚類問題之K-means

大資料之資料探勘理論筆記   聚類問題之K-means

推薦參考博文: http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html 

推薦參考博文: http://blog.csdn.net/cyxlzzs/article/details/7416491  試過了,確實可執行。

http://blog.csdn.net/ghostfromheaven/article/details/6516188


1. 聚類的理解

聚類是一個劃分資料物件集的過程。一個數據物件集被劃分為幾個簇,並且簇內物件之間具有較高的相似性,但與其他簇中的物件卻很不相似。劃分依據往往是描述物件的屬性值評估,通常涉及距離量度。劃分方法採用聚類演算法,即使對於相同的資料集,不同的聚類方法可能產生不同的聚類結果。

聚類的類標號資訊是未知的(即每個訓練元組隸屬哪一類示先並未知曉),因此聚類是無監督學習。

2. 聚類應用領域

商務智慧、影象識別、Web搜尋等

聚類用於離群點檢測 outlier detection(如:信用卡欺詐檢測)

3. 聚類的兩種經典方法

基於距離的方法 K-means

基於密度的方法 DBScan

4. K-means (K-均值)

聚類演算法核心思想:把資料集中的物件分割槽,每個分割槽代表一個簇;簇的形成旨在優化一個客觀劃分準則(如基於距離的相異性函式,e.g.簇中所有物件與該簇代表形心之間的誤差平方和),使得根據資料集的屬性,在同一個簇中的物件相似,不同簇中的物件相異。

K-means演算法的核心要點:1. K-means演算法把簇的形心

定義為簇內所有點的均值;2. 根據業務需求K示先給定。

5. K-means 演算法過程簡述:

initialization

 1、從資料集D中隨機取k個元素,作為k個簇的各自的中心。
 2、分別計算剩下的元素到k個簇中心的相異度,將這些元素分別分配到相異度最低的簇。

repeat

 3、根據聚類結果,重新計算k個簇各自的中心,計算方法是取簇中所有元素各自維度的算術平均數。
 4、將D中全部元素按照新的中心重新聚類。

until
 5、重複第4步,直到聚類結果不再變化。
 6、將結果輸出。

輸入:K——簇的數目,即劃分的組數;D——資料集

輸出:聚類結果

6. 相異度的數學內函計算

推薦參考博文: http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html   之內容4.2相異度的計算

另外補充一句,博主給的例子很有趣~

7. K-means演算法java實現

推薦參考博文: http://blog.csdn.net/cyxlzzs/article/details/7416491  試過了,確實可執行。

http://blog.csdn.net/ghostfromheaven/article/details/6516188