无监督学习之聚类方法(K-Means、层次聚类)
一、導入
無監督學習中需要對無標記樣本進行訓練學習進而找到數據的內在性質和邏輯結構,聚類方法是為了為無監督學習的數據分析提供的基礎學習方法。
聚類將數據集劃分為若干個子集(每個子集稱為類或者簇),如果一個樣本只屬于一個類(簇)則是硬聚類,如果某一個樣本屬于多個類那么就是軟聚類。
二、評價指標
1、性能度量
確定了性能度量以后,可以直接將其作為聚類過程的優化目標,可以分為以下兩類
外部指標
說明:需要有參考模型作為比較對象
對數據集D={X1, X2,…Xm}通過聚類得到的簇分類是C={c1, c2 …ck} ,參考模型的簇分類是C’={c1’, c2’, …ck’}
a:包含在c中屬于相同簇且在c’中也屬于相同簇的樣本對
b:包含在c中屬于相同簇且在c’中不屬于相同簇的樣本對
c:包含在c中不屬于相同簇且在c’中屬于相同簇的樣本對
d:包含在c中不屬于相同簇且在c’中不屬于相同簇的樣本對
注:由于每個樣本對(Xi,Xj)(i<j)僅能出現在一個集合中,所以有a+b+c+d=m(m-1)/2
Jaccard系數\JC
JC=a(a+b+c)
FM指數
FMI=[(a(a+b))(a(a+c))]^1\2
Rand指數
RI=2(a+d)/m(m-1)
說明:以上指標取值均在0-1之間,值越大越好
內部指標
avg?:簇內樣本點的平均距離,簇內所有樣本點兩兩之間的距離求和再求均值
diam?:簇內距離最遠的兩個樣本點間的距離
dmin屬于不同簇的兩個樣本點,且兩個樣本點相比于簇內其他樣本點相隔最近,該符號表示的就是滿足這樣的兩點之間的距離
dcen:;兩個簇的中心點的距離
DB指數
Dunn指數
說明:DBI越小越好;DI越大越好
2、距離計算\相似度
基本性質:非負性、同一性(當i=j時,dist(xi,xj)=0)、對稱性、直遞性\三角不等性。
當屬性劃分可以計算距離的時候是”連續屬性“,例如{1,2,3};不可以直接計算距離的時候是“離散屬性”,例如{飛機,汽車,火車}
對于連續屬性可以用閔可夫斯基計算兩個樣本點的距離
對于離散屬性需要DVM計算兩個樣本點的距離
閔可夫斯基距離
當p=2時為歐氏距離
當p=1時為曼哈頓距離
DVM
mu,a表示在屬性u上取值為a的樣本個數
mu,a,i表示在第i個樣本簇中屬性u上取值為a的樣本數
閔可夫斯基可以與VDM結合處理混合屬性,將兩部分求和,具體可以閱讀西瓜書;重要性不同時可以用加權距離計算距離
3、原型聚類
k-means
先看幾張圖片對該算法有一個直觀的認識
這是一個沒有標記的樣本集,要對它進行聚合,K=2
隨機生成兩個中心點,也可以用樣本點作為初始中心點
根據歐式距離公式,將樣本點集合劃分給兩個不同的中心點。
將中心點移動到同色樣本點(同一個顏色屬于同一個簇)的均值處;此時完成一輪聚合操作。
和最開始相比,此刻初始中心點已經更新,開始第二次迭代,將數據點全部都清楚類標記,在按照前面三步的操作,進行樣本點劃分
上圖滿足了樣本中心點不會再更新,即迭代完畢。
通過上面幾個圖的說明,不難看出K-Means是一個迭代的過程,
優化目標:就是最小化某類的中心點和屬于該類的樣本點的距離
至于選擇K(中心點)的多少,可以按照肘部法則也可以根據實際需要進行設定
肘部法則:橫軸是K取值,縱軸為lost function
局部最優(由于算法是迭代的,而且初始樣本點的選取不同也會造成最終結果的不同)
學習向量量化LVQ
與K-Means不同的是,LVQ的樣本是帶有類別標記的
高斯混合聚類
4、密度聚類
####DBSCAN
5、層次聚類
層次聚類在不同層次對數據進行劃分,形成樹形結構,分為自底向上(聚合)自頂向下(分裂),都需要按照一定的規則進行操作,下面主要以聚合為例進行說明
AGNES采用自底向上的操作進行層次聚類
一開始所有的樣本點都是一個類,接下來進行距離相近的類融合成一個新類知道滿足K的要求為止。
其中兩個類合并需要考慮兩個類之間的距離,共有如下三種計算方式
最小距離:屬于兩個不同類的兩個樣本點,滿足兩點距離最近
最大距離:屬于兩個不同類的兩個樣本點,滿足兩點距離最遠
均鏈接:屬于兩個不同類的任意兩個樣本點,兩兩的距離之和除以兩個類的樣本點個數的乘積。
說明:最小距離由兩個簇的最近樣本決定,最大距離由兩個簇的最遠樣本決定,平均距離則由兩個簇的所有樣本決定。
滿足最小距離的AGNES算法稱為“單鏈接”算法
滿足最大距離的AGNES算法稱為“全鏈接”算法
滿足均鏈接的AGNES算法稱為”均鏈接“算法
例題:
D表示五個樣本點的歐氏距離的矩陣
說明:該矩陣是對稱陣
首先構建五各類Gi={Xi} i=12345
其中X3和X5距離為1,其他點之間的距離大于1,所以將G3和G5合并成G6={X3,X5}
目前有四個類。接下來繼續合并
最小距離是X3X1之間,距離為2
將X1 合并到G6中變成G7={X1,X3,X5}
繼續判斷距離,X2和X4距離為4小于其特點之間的距離,G8={X2,X4}
所以,如果K為2的話,就是G7,G8兩類
最后形成一個樹形結構如下圖
下面是西瓜書的例子
需要自己計算各個樣本之間的距離,書上說采用dmax沒有太明白,具體運用在哪個步驟中,后續學習中在更新吧
生成了如上圖所示的樹形結構,從葉子節點開(k=30)始,不斷合并距離最近的聚類簇,最終到達根節點(k=1)
最后:聚類不存在固定的標準,距離計算是很多學習任務的核心技術。
總結
以上是生活随笔為你收集整理的无监督学习之聚类方法(K-Means、层次聚类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 符江职高计算机教什么,高县符江职高具体地
- 下一篇: 山东大学 2020级数据库系统 实验一