Weitere ähnliche Inhalte Ähnlich wie 3 clustering 1 Ähnlich wie 3 clustering 1 (20) Kürzlich hochgeladen (10) 3 clustering 12. About me
• Education
• NCU (MIS)、NCCU (CS)
• Work Experience
• Telecom big data Innovation
• AI projects
• Retail marketing technology
• User Group
• TW Spark User Group
• TW Hadoop User Group
• Taiwan Data Engineer Association Director
• Research
• Big Data/ ML/ AIOT/ AI Columnist
2
5. Clustering introduction
• 為一種非監督式學習,用來解決分群問題
• 事前不須要對數據進行標記
• 應用情境
• 文件分群: 結合文字探勘技術,利用斷詞後的文字做為特徵值,如分群後
的結果以人工的方式判斷某一群比較像政治類新聞,並且給予該群名稱
• 市場區隔: 透過產品的特徵值進行分群,分群的結果可比較產品間的差異
• 客戶分群: 透過客戶行為擷取出特徵值,分群後的結果將客戶進行區隔,
針對不同群的客戶執行特別的行銷方案
• 生物分群: 界、門、綱、目、科、屬、種
5
9. Mini-Batch K-Means
• 步驟簡述
• 傳統的K-Means可能會遇到大資
料集產生的時間、空間的問題,
因為所有資料都必須置放於記憶
體當中
• 採用隨機較小的樣本資料集,以
便於放置記憶體當中,計算過程
中不斷拿取小樣本進行更新,直
到模型收斂為止
9
參考: https://www.itread01.com/content/1546477941.html
10. Hierarchical Clustering
• 步驟簡述
• 把每一個點當作一個群組
• 透過掃描過整個資料及尋找出最近的
兩個群組,並把這兩個點榜再一起變
成一個群組
• 尋找下一個最近的的兩個群組,再綁
再一起變成一個群組
• 直到所有資料都被分成一群,或是透
過設定參數到分到幾個群時自動停止
• 特色
• 比較耗能,每一次迴圈都要比對所有
樣本資料
• 透過樹狀圖可以完整了解群組關係
10
參考:
https://www.researchgate.net/figure/Dendrogram-
obtained-by-hierarchical-cluster-analysis-HCA-of-the-
morphological_fig1_335658239
12. BIRCH
• 步驟簡述
• 利用樹結構來幫助實現快速的分群,
該結構類似於平衡B+樹
• 稱之為分群特徵樹(Clustering
Feature Tree,簡稱CF Tree)
• 該樹的每一個節點是由若干個分群特
徵(Clustering Feature,簡稱CF)組成
• 執行速度很快,只需要單遍掃描資料
集就能進行聚類
• 適合於資料量大,分群數量 K也比較
多的情況
• 特色
• 不須設定群的數量
12
參考: https://www.gushiciku.cn/dc_tw/104504172
13. Spectral Clustering
• 步驟簡述
• 結合圖論的分析,將資料點間的關係建構權重圖(weighted graph),
也就是將頂點(vertex)作為資料點,邊(edge)則表示資料點間的距離
• 透過鄰接矩陣,則可把兩點間連接的強度一一表示。接下來將圖切割成數
個子圖以達到分群的效果。然而,裁切的方式應最小化子圖間的連接關係,
同時最大化每個子圖內的連接關係
• 特色
• 對於稀疏資料點的分群有顯著的效果
• 相似矩陣的計算方式得到不同的分群效果
• 相似的定義
13
參考: https://www.jianshu.com/p/9ada98cd322b
15. Gaussian Mixture Model
• 步驟簡述
• 可以被視為k-means的延伸,目的是做更正確的數據
分群
• 當資料分布於各群的邊界上時,容易會出現資料分類
不正確,透過最大期望演算法(EM)方法,持續實作
E-M步驟,重複直到收斂為止,目的就是找出適當的
資料分群
• E步驟:對於每個點,找到每個聚類中成員的權重
• M步驟:對於每個群集「權重」,根據所有數據點更新
其位置
• 特色
• 需事先決定k群分布
• 常用於語音識別
15
參考: https://towardsdatascience.com/gaussian-mixture-models-explained-6986aaf5a95
16. Gaussian Mixture Model
16
• GMM 則是藉由統計後,計算
機率分布得到中心點和sigma
作為模型資訊
• 在一維空間中就是高斯分佈的
鐘型二維空間中會出現類似陀
圓形的樣子
參考: https://jarvus.dragonbeef.net/note/noteKmeansGMM.php
18. K-means
• 演算法步驟
• 定義K值,決定分群數目
• 隨機給各K群中心點,計算所有訓練樣本,把每個訓練樣本分配到距離最
近的K群當中
• 移動各K群的中心點,讓該中心點為該群所有樣本距離和的平均處
• 重複上述動作,直到中心點不再移動為止
• 算法說明 (1)
• 輸入: K值
• 訓練樣本: x(1), x(2), x(3), x(4)… x(m)
• 隨機選擇各K群中心點: u1, u2, u3…uk
18
22. K-means
• 常見的問題
• 選擇K群予各別的中心點為隨機取樣,最終分群的結果與隨機中心點有關
• 不同的隨機中心點可能會得到不同的分群結果
• 成本函數可能會收斂在一個局部最佳解,而不是全域最佳解
• 通常作法為多做幾次隨機中心點,最終訓練出不同K群中心點後,再用這
些值計算出成本函數,從中選擇成本函數最小的
22
次數編號 K值 各K群中心點 計算成本函數
001 8 001: u1, u2, u3…uk 0.5
002 8 002: u1, u2, u3…uk 0.3
003 8 003: u1, u2, u3…uk 0.1
23. K-means
• K值的選擇
• 經驗法則
• 先分100群,透過觀察每一群的特徵後,人工進行合併各群
• 透過輪廓係數,觀察成本函數與K值間的關係,找出鞍點 (Saddle point)
即為K值
23
a: 一個樣本與其所在的群(同群)之間的平均距離
b: 一個樣本與其距離最近的下一個群內的樣本點的平均距離
S: 介於 [-1,1],該值則越大越好,代表越好
kmeans.ipynb
24. K-means + Canopy 的快速算法
• 原因
• K-means的計算複雜度低,但演算法本身效能十分依賴各群隨機取樣的
中心點,同時對於噪音數據也十分敏感
• 為解決以上問題,引進 Canopy 算法,為 K-means 先粗略生成各群隨
機中心點,因此可以減少計算時本身的迭代次數
• 演算法步驟
• 根據 T1, T2 兩個參數確定群的中心點,大於 T1 會被認為是離群中心點
過遠而去除,小於T2 會被認為離自身的群過近,不適合作為群的中心點
• 通過以上邏輯對於每一個訓練樣本進行計算篩選,首先會過濾掉偏離的
噪音數據之外,也會生成一定數量的相對合理的中心點
24
25. K-means + Canopy 的快速算法
• 算法說明(1)
• 將訓練樣本進行排序,紀錄於列表中,排序後不可以改變,
• 設定初始值 T1, T2,且 T1 > T2
• 從訓練樣本中,隨機取一個樣本為中心點,計算與其他所有的距離
• 若距離小於 T1 但大於 T2,則該點屬於該中心點所在的 canopy 內
• 若距離小於 T2,則該點與該中心點距離過近,不適合在做中心點,於是將該點從
列表中刪除
• 重複上述步驟,完成列表上的樣本點
• 此時會得出 n 個中心點,將這些點用於 K-means 的隨機中心點
• n 為初始 K值
• 檢視最終分群結果 (視覺化圖表),如果某群內的樣本數量小於一定數據,則可判定
為噪音數據
25
26. K-means + Canopy 的快速算法
26
參考: https://zh.codeprj.com/blog/b1b65d1.html
canopy.ipynb
27. Hard clustering v.s. Soft clustering
• Hard clustering
• Each point is assigned to a one and only one cluster (hard assignment)
• With K-means we try to find K centroids {μ1,…,μK} and the corresponding
• Soft clustering (Fuzzy C-Means Clustering: FCM)
• Each point is assigned to all the clusters with different weights or probabilities
(soft assignment)
27
28. Hard clustering v.s. Soft clustering
• 演算法步驟
• 透過模糊分群的方式,計算每個訓練樣本屬於各群的程度
• 該方法利用了隸屬值 (membership value) 進行模糊化
• 類似機率的概念,每個樣本最終的隸屬值之和為1
• 演算法步驟 (1)
• 訓練樣本 x
• 劃分 c 群
• ci 為該群的中心點
• 某樣本 xj 屬於 ci ,隸屬值表示為 uij
28
29. Hard clustering v.s. Soft clustering
• 演算法步驟 (2)
• 欲取得一個函數的最小值,只要將該成本函數求導,並令為0
29
成本函數:
fcm.ipynb
30. Hard clustering v.s. Soft clustering
30
參考: http://wyj-learning.blogspot.com/2017/12/fuzzy-c-means-clustering.html
34. Recommendation
• 如何定義相似度
• 角度
• 餘弦相似性 (Cosine similarity)
• 距離
• 歐氏距離 (Euclidean distance)
• 漢明距離 (Hamming distance)
• 曼哈頓距離 (Manhattan distance)
• 切比雪夫距離 (Chebyshev distance)
• 馬氏距離 (Mahalanobis distance)
• 係數
• 雅卡爾指數 (Jaccard similarity coefficient)
34
參考: https://towardsdatascience.com/log-book-guide-to-distance-measuring-approaches-for-k-means-clustering-f137807e8e21
36. 作業
• 什麼是 K-means? 基本迭代步驟是什麼?
• 有哪些方法可以加快K-means的執行效率?
• 繼續完成 homework.ipynb,完成客戶分群
• 決定K值
• 每一群客戶的客戶評分分析
• 是否有存在相似的群,如果存在,可以手動合併
36