SlideShare a Scribd company logo
國立臺北護理健康大學 NTUHS
Clustering
Orozco Hsu
2021-12-06
1
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
Tutorial
Content
3
K-means algorithm and other algorithms demo
Hard clustering v.s. Soft clustering
Homework
Clustering introduction
Recommendation on K-means
Code
• Download code
• https://github.com/orozcohsu/ntunhs_2021.git
• Folder
• 20211206_day_master
4
Clustering introduction
• 為一種非監督式學習,用來解決分群問題
• 事前不須要對數據進行標記
• 應用情境
• 文件分群: 結合文字探勘技術,利用斷詞後的文字做為特徵值,如分群後
的結果以人工的方式判斷某一群比較像政治類新聞,並且給予該群名稱
• 市場區隔: 透過產品的特徵值進行分群,分群的結果可比較產品間的差異
• 客戶分群: 透過客戶行為擷取出特徵值,分群後的結果將客戶進行區隔,
針對不同群的客戶執行特別的行銷方案
• 生物分群: 界、門、綱、目、科、屬、種
5
Clustering introduction
• 顧客分群常見做法介紹
• 透過銷售紀錄找出三個關
鍵指標
• R – 最近互動時間
• F – 購買頻次
• M – 購買金額
6
參考: https://couplehonest.com/rfm-nes-cohort-google-sheet-excel-crm/
Clustering introduction
• 利用客戶RFM作為分群的樣本資料集
7
參考: https://towardsdatascience.com/segmenting-customers-using-k-means-and-transaction-records-76f4055d856a
Clustering introduction
• 常見的演算法
• K-Menas
• Hierarchical Clustering
• Mini-Batch K-Means
• BIRCH
• DBSCAN
• Spectral Clustering
• Gaussian Mixture Model
8
Mini-Batch K-Means
• 步驟簡述
• 傳統的K-Means可能會遇到大資
料集產生的時間、空間的問題,
因為所有資料都必須置放於記憶
體當中
• 採用隨機較小的樣本資料集,以
便於放置記憶體當中,計算過程
中不斷拿取小樣本進行更新,直
到模型收斂為止
9
參考: https://www.itread01.com/content/1546477941.html
Hierarchical Clustering
• 步驟簡述
• 把每一個點當作一個群組
• 透過掃描過整個資料及尋找出最近的
兩個群組,並把這兩個點榜再一起變
成一個群組
• 尋找下一個最近的的兩個群組,再綁
再一起變成一個群組
• 直到所有資料都被分成一群,或是透
過設定參數到分到幾個群時自動停止
• 特色
• 比較耗能,每一次迴圈都要比對所有
樣本資料
• 透過樹狀圖可以完整了解群組關係
10
參考:
https://www.researchgate.net/figure/Dendrogram-
obtained-by-hierarchical-cluster-analysis-HCA-of-the-
morphological_fig1_335658239
DBSCAN
11
• 步驟簡述
• 計算樣本的密度,透過設定多長
的半徑內,有出現幾個點,不斷
延伸,延伸到無法延伸,所有出
現在前面延伸範圍的點分成一個
群組
• 特色
• 不須設定群的數量
• 常用來偵測 noise 樣本 參考: https://zhuanlan.zhihu.com/p/353705498
BIRCH
• 步驟簡述
• 利用樹結構來幫助實現快速的分群,
該結構類似於平衡B+樹
• 稱之為分群特徵樹(Clustering
Feature Tree,簡稱CF Tree)
• 該樹的每一個節點是由若干個分群特
徵(Clustering Feature,簡稱CF)組成
• 執行速度很快,只需要單遍掃描資料
集就能進行聚類
• 適合於資料量大,分群數量 K也比較
多的情況
• 特色
• 不須設定群的數量
12
參考: https://www.gushiciku.cn/dc_tw/104504172
Spectral Clustering
• 步驟簡述
• 結合圖論的分析,將資料點間的關係建構權重圖(weighted graph),
也就是將頂點(vertex)作為資料點,邊(edge)則表示資料點間的距離
• 透過鄰接矩陣,則可把兩點間連接的強度一一表示。接下來將圖切割成數
個子圖以達到分群的效果。然而,裁切的方式應最小化子圖間的連接關係,
同時最大化每個子圖內的連接關係
• 特色
• 對於稀疏資料點的分群有顯著的效果
• 相似矩陣的計算方式得到不同的分群效果
• 相似的定義
13
參考: https://www.jianshu.com/p/9ada98cd322b
Spectral Clustering
14
參考: https://www.researchgate.net/figure/Comparison-between-K-Means-and-spectral-clustering_fig1_319284000
Gaussian Mixture Model
• 步驟簡述
• 可以被視為k-means的延伸,目的是做更正確的數據
分群
• 當資料分布於各群的邊界上時,容易會出現資料分類
不正確,透過最大期望演算法(EM)方法,持續實作
E-M步驟,重複直到收斂為止,目的就是找出適當的
資料分群
• E步驟:對於每個點,找到每個聚類中成員的權重
• M步驟:對於每個群集「權重」,根據所有數據點更新
其位置
• 特色
• 需事先決定k群分布
• 常用於語音識別
15
參考: https://towardsdatascience.com/gaussian-mixture-models-explained-6986aaf5a95
Gaussian Mixture Model
16
• GMM 則是藉由統計後,計算
機率分布得到中心點和sigma
作為模型資訊
• 在一維空間中就是高斯分佈的
鐘型二維空間中會出現類似陀
圓形的樣子
參考: https://jarvus.dragonbeef.net/note/noteKmeansGMM.php
K-means
• 為非監督式學習一種
• 不需要準備數據標記
17
參考: https://zhuanlan.zhihu.com/p/97510390
K-means
• 演算法步驟
• 定義K值,決定分群數目
• 隨機給各K群中心點,計算所有訓練樣本,把每個訓練樣本分配到距離最
近的K群當中
• 移動各K群的中心點,讓該中心點為該群所有樣本距離和的平均處
• 重複上述動作,直到中心點不再移動為止
• 算法說明 (1)
• 輸入: K值
• 訓練樣本: x(1), x(2), x(3), x(4)… x(m)
• 隨機選擇各K群中心點: u1, u2, u3…uk
18
K-means
• 算法說明 (2)
• 紀錄距離最短的群,然後把該點分配到該群
19
K-means
• 算法說明 (3)
• 從 1 ~ K 查訪所有中心點,並移動開中心點到新的位置,也就是該群的
所有樣本至中心點的平均值處
• 重複步驟,直到各K群中心點不再移動為止
20
K-means
• 算法說明 (4)
• 根據成本函數的定義,模型預測值與實際值的誤差
21
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
K-means
• K值的選擇
• 經驗法則
• 先分100群,透過觀察每一群的特徵後,人工進行合併各群
• 透過輪廓係數,觀察成本函數與K值間的關係,找出鞍點 (Saddle point)
即為K值
23
a: 一個樣本與其所在的群(同群)之間的平均距離
b: 一個樣本與其距離最近的下一個群內的樣本點的平均距離
S: 介於 [-1,1],該值則越大越好,代表越好
kmeans.ipynb
K-means + Canopy 的快速算法
• 原因
• K-means的計算複雜度低,但演算法本身效能十分依賴各群隨機取樣的
中心點,同時對於噪音數據也十分敏感
• 為解決以上問題,引進 Canopy 算法,為 K-means 先粗略生成各群隨
機中心點,因此可以減少計算時本身的迭代次數
• 演算法步驟
• 根據 T1, T2 兩個參數確定群的中心點,大於 T1 會被認為是離群中心點
過遠而去除,小於T2 會被認為離自身的群過近,不適合作為群的中心點
• 通過以上邏輯對於每一個訓練樣本進行計算篩選,首先會過濾掉偏離的
噪音數據之外,也會生成一定數量的相對合理的中心點
24
K-means + Canopy 的快速算法
• 算法說明(1)
• 將訓練樣本進行排序,紀錄於列表中,排序後不可以改變,
• 設定初始值 T1, T2,且 T1 > T2
• 從訓練樣本中,隨機取一個樣本為中心點,計算與其他所有的距離
• 若距離小於 T1 但大於 T2,則該點屬於該中心點所在的 canopy 內
• 若距離小於 T2,則該點與該中心點距離過近,不適合在做中心點,於是將該點從
列表中刪除
• 重複上述步驟,完成列表上的樣本點
• 此時會得出 n 個中心點,將這些點用於 K-means 的隨機中心點
• n 為初始 K值
• 檢視最終分群結果 (視覺化圖表),如果某群內的樣本數量小於一定數據,則可判定
為噪音數據
25
K-means + Canopy 的快速算法
26
參考: https://zh.codeprj.com/blog/b1b65d1.html
canopy.ipynb
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
Hard clustering v.s. Soft clustering
• 演算法步驟
• 透過模糊分群的方式,計算每個訓練樣本屬於各群的程度
• 該方法利用了隸屬值 (membership value) 進行模糊化
• 類似機率的概念,每個樣本最終的隸屬值之和為1
• 演算法步驟 (1)
• 訓練樣本 x
• 劃分 c 群
• ci 為該群的中心點
• 某樣本 xj 屬於 ci ,隸屬值表示為 uij
28
Hard clustering v.s. Soft clustering
• 演算法步驟 (2)
• 欲取得一個函數的最小值,只要將該成本函數求導,並令為0
29
成本函數:
fcm.ipynb
Hard clustering v.s. Soft clustering
30
參考: http://wyj-learning.blogspot.com/2017/12/fuzzy-c-means-clustering.html
Recommendation (K-means)
• 透過 movies.csv 數據集,進行用戶行為分析
• 利用 K-means 演算法進行電影推薦
• 數據集介紹
• 9742部電影
• 100836用戶評分
31
Recommendation (K-means)
• 探討 science fiction and romance 兩種類型的電影客戶偏好
32
Recommendation
• 嘗試說明推薦系統與分群的關係
33
參考: https://comsysto.wordpress.com/2013/04/03/background-of-collaborative-filtering-with-mahout/
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
Recommendation
35
作業
• 什麼是 K-means? 基本迭代步驟是什麼?
• 有哪些方法可以加快K-means的執行效率?
• 繼續完成 homework.ipynb,完成客戶分群
• 決定K值
• 每一群客戶的客戶評分分析
• 是否有存在相似的群,如果存在,可以手動合併
36

More Related Content

PDF
Decision tree
 
PDF
4 association rule
 
PDF
推薦系統實作
 
PDF
machine learning introduction
 
PDF
線上埋碼資料收集實作
 
PDF
Azure HDInsight 介紹
PPTX
What could hadoop do for us
PDF
非監督是學習_Kmeans_process_visualization20241110.pdf
 
Decision tree
 
4 association rule
 
推薦系統實作
 
machine learning introduction
 
線上埋碼資料收集實作
 
Azure HDInsight 介紹
What could hadoop do for us
非監督是學習_Kmeans_process_visualization20241110.pdf
 

Similar to 3 clustering 1 (20)

PDF
CNN_Image Classification for deep learning.pdf
 
PDF
Pytorch cnn netowork introduction 20240318
 
PDF
2_Clustering.pdf
 
PPTX
Mealionaire: A context-aware and ontology-based mobile recommender system for...
PDF
學院碩士班_非監督式學習_使用Orange3直接使用_分群_20240417.pdf
 
PDF
5_Neural_network_碩士班第五次.pdf
 
PDF
Tutorial of cnn 赵子健9.16
PDF
2023 Decision Tree analysis in business practices
 
PDF
4_Regression_analysis.pdf
 
PPTX
# From statistics to ai
PDF
Seq2seq Model introduction with practicing hands on coding.pdf
 
PDF
Unsupervised learning in data clustering
 
PPTX
Densifying a behavioral recommender system by social networks
PPTX
Towards Personalized Federated Learning via Heterogeneous Model Reassembly.pptx
PDF
Operation_research_Linear_programming_20241015.pdf
 
PDF
3_Decision_tree.pdf
 
PDF
机器学习与深度学习简介.pdf
PDF
服务计算:现状,思考与建议
 
PDF
大資料趨勢介紹與相關使用技術
PDF
IT445_Week_8.pdf
CNN_Image Classification for deep learning.pdf
 
Pytorch cnn netowork introduction 20240318
 
2_Clustering.pdf
 
Mealionaire: A context-aware and ontology-based mobile recommender system for...
學院碩士班_非監督式學習_使用Orange3直接使用_分群_20240417.pdf
 
5_Neural_network_碩士班第五次.pdf
 
Tutorial of cnn 赵子健9.16
2023 Decision Tree analysis in business practices
 
4_Regression_analysis.pdf
 
# From statistics to ai
Seq2seq Model introduction with practicing hands on coding.pdf
 
Unsupervised learning in data clustering
 
Densifying a behavioral recommender system by social networks
Towards Personalized Federated Learning via Heterogeneous Model Reassembly.pptx
Operation_research_Linear_programming_20241015.pdf
 
3_Decision_tree.pdf
 
机器学习与深度学习简介.pdf
服务计算:现状,思考与建议
 
大資料趨勢介紹與相關使用技術
IT445_Week_8.pdf
Ad

More from FEG (20)

PDF
Supervised learning in decision tree algorithm
 
PDF
Sequence Model with practicing hands on coding.pdf
 
PDF
AIGEN introduction with practicing hands on coding.pdf
 
PDF
資料視覺化_Exploation_Data_Analysis_20241015.pdf
 
PDF
Operation_research_Linear_programming_20241112.pdf
 
PDF
Sequence Model pytorch at colab with gpu.pdf
 
PDF
資料視覺化_透過Orange3進行_無須寫程式直接使用_碩士學程_202403.pdf
 
PDF
2023 Clustering analysis using Python from scratch
 
PDF
2023 Data visualization using Python from scratch
 
PDF
2023 Supervised Learning for Orange3 from scratch
 
PDF
2023 Supervised_Learning_Association_Rules
 
PDF
202312 Exploration Data Analysis Visualization (English version)
 
PDF
202312 Exploration of Data Analysis Visualization
 
PDF
Transfer Learning (20230516)
 
PDF
Image Classification (20230411)
 
PDF
Google CoLab (20230321)
 
PDF
Supervised Learning
 
PDF
UnSupervised Learning Clustering
 
PDF
Data Visualization in Excel
 
PDF
6_Association_rule_碩士班第六次.pdf
 
Supervised learning in decision tree algorithm
 
Sequence Model with practicing hands on coding.pdf
 
AIGEN introduction with practicing hands on coding.pdf
 
資料視覺化_Exploation_Data_Analysis_20241015.pdf
 
Operation_research_Linear_programming_20241112.pdf
 
Sequence Model pytorch at colab with gpu.pdf
 
資料視覺化_透過Orange3進行_無須寫程式直接使用_碩士學程_202403.pdf
 
2023 Clustering analysis using Python from scratch
 
2023 Data visualization using Python from scratch
 
2023 Supervised Learning for Orange3 from scratch
 
2023 Supervised_Learning_Association_Rules
 
202312 Exploration Data Analysis Visualization (English version)
 
202312 Exploration of Data Analysis Visualization
 
Transfer Learning (20230516)
 
Image Classification (20230411)
 
Google CoLab (20230321)
 
Supervised Learning
 
UnSupervised Learning Clustering
 
Data Visualization in Excel
 
6_Association_rule_碩士班第六次.pdf
 
Ad

Recently uploaded (16)

PPTX
A Digital Transformation Methodology.pptx
PPTX
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
PPTX
3分钟读懂渥太华大学毕业证UO毕业证学历认证
PPTX
《HSK标准教程4下》第15课课件new.pptx HSK chapter 15 pptx
PPTX
ONU and OLT from Baudcom Jenny training PPT
DOCX
ALISON -COURSE ADVANCED CHEMISTRY -POLIMERIZATION 2025.docx
PDF
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
PPTX
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
PPTX
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
PDF
學會學LHTL榮譽作業:結合實驗與理論學習(製作者:陽明交通大學醫學二年級馬品婷)
PDF
01_Course_Introduction(20210916課後更新).pdf
PPTX
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
PPTX
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
PPTX
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
PDF
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
PPTX
3分钟读懂肯塔基大学毕业证UK毕业证学历认证
A Digital Transformation Methodology.pptx
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
3分钟读懂渥太华大学毕业证UO毕业证学历认证
《HSK标准教程4下》第15课课件new.pptx HSK chapter 15 pptx
ONU and OLT from Baudcom Jenny training PPT
ALISON -COURSE ADVANCED CHEMISTRY -POLIMERIZATION 2025.docx
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
學會學LHTL榮譽作業:結合實驗與理論學習(製作者:陽明交通大學醫學二年級馬品婷)
01_Course_Introduction(20210916課後更新).pdf
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
3分钟读懂肯塔基大学毕业证UK毕业证学历认证

3 clustering 1

  • 2. 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
  • 3. Tutorial Content 3 K-means algorithm and other algorithms demo Hard clustering v.s. Soft clustering Homework Clustering introduction Recommendation on K-means
  • 4. Code • Download code • https://github.com/orozcohsu/ntunhs_2021.git • Folder • 20211206_day_master 4
  • 5. Clustering introduction • 為一種非監督式學習,用來解決分群問題 • 事前不須要對數據進行標記 • 應用情境 • 文件分群: 結合文字探勘技術,利用斷詞後的文字做為特徵值,如分群後 的結果以人工的方式判斷某一群比較像政治類新聞,並且給予該群名稱 • 市場區隔: 透過產品的特徵值進行分群,分群的結果可比較產品間的差異 • 客戶分群: 透過客戶行為擷取出特徵值,分群後的結果將客戶進行區隔, 針對不同群的客戶執行特別的行銷方案 • 生物分群: 界、門、綱、目、科、屬、種 5
  • 6. Clustering introduction • 顧客分群常見做法介紹 • 透過銷售紀錄找出三個關 鍵指標 • R – 最近互動時間 • F – 購買頻次 • M – 購買金額 6 參考: https://couplehonest.com/rfm-nes-cohort-google-sheet-excel-crm/
  • 7. Clustering introduction • 利用客戶RFM作為分群的樣本資料集 7 參考: https://towardsdatascience.com/segmenting-customers-using-k-means-and-transaction-records-76f4055d856a
  • 8. Clustering introduction • 常見的演算法 • K-Menas • Hierarchical Clustering • Mini-Batch K-Means • BIRCH • DBSCAN • Spectral Clustering • Gaussian Mixture Model 8
  • 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
  • 17. K-means • 為非監督式學習一種 • 不需要準備數據標記 17 參考: https://zhuanlan.zhihu.com/p/97510390
  • 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
  • 19. K-means • 算法說明 (2) • 紀錄距離最短的群,然後把該點分配到該群 19
  • 20. K-means • 算法說明 (3) • 從 1 ~ K 查訪所有中心點,並移動開中心點到新的位置,也就是該群的 所有樣本至中心點的平均值處 • 重複步驟,直到各K群中心點不再移動為止 20
  • 21. K-means • 算法說明 (4) • 根據成本函數的定義,模型預測值與實際值的誤差 21
  • 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
  • 31. Recommendation (K-means) • 透過 movies.csv 數據集,進行用戶行為分析 • 利用 K-means 演算法進行電影推薦 • 數據集介紹 • 9742部電影 • 100836用戶評分 31
  • 32. Recommendation (K-means) • 探討 science fiction and romance 兩種類型的電影客戶偏好 32
  • 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