聚类效果评估指标总结
前言
實(shí)際工作中經(jīng)常會(huì)用到一些聚類算法對(duì)一些數(shù)據(jù)進(jìn)行聚類處理,如何評(píng)估每次聚類效果的好壞?可選的方法有1、根據(jù)一些聚類效果的指標(biāo)來評(píng)估;2、直接打點(diǎn)。今天就主要總結(jié)下這段時(shí)間了解的聚類效果評(píng)估指標(biāo)。廢話少說,直接上干貨。
針對(duì)數(shù)據(jù)有類別標(biāo)簽的情況
Adjusted Rand index (ARI)
優(yōu)點(diǎn): 1.1 對(duì)任意數(shù)量的聚類中心和樣本數(shù),隨機(jī)聚類的ARI都非常接近于0; 1.2 取值在[-1,1]之間,負(fù)數(shù)代表結(jié)果不好,越接近于1越好; 1.3 可用于聚類算法之間的比較 缺點(diǎn): 1.4 ARI需要真實(shí)標(biāo)簽Mutual Information based scores (MI) 互信息
優(yōu)點(diǎn):除取值范圍在[0,1]之間,其他同ARI;可用于聚類模型選擇 缺點(diǎn):需要先驗(yàn)知識(shí)針對(duì)數(shù)據(jù)無(wú)類別標(biāo)簽的情況
對(duì)于無(wú)類標(biāo)的情況,沒有唯一的評(píng)價(jià)指標(biāo)。對(duì)于數(shù)據(jù)凸分布的情況我們只能通過類內(nèi)聚合度、類間低耦合的原則來作為指導(dǎo)思想。
輪廓系數(shù)(Silhouette Coefficient)
定義
輪廓系數(shù)(Silhouette Coefficient),是聚類效果好壞的一種評(píng)價(jià)方式。最早由 Peter J. Rousseeuw 在 1986 提出。它結(jié)合內(nèi)聚度和分離度兩種因素。可以用來在相同原始數(shù)據(jù)的基礎(chǔ)上用來評(píng)價(jià)不同算法、或者算法不同運(yùn)行方式對(duì)聚類結(jié)果所產(chǎn)生的影響。
原理
(1)計(jì)算樣本i到同簇其他樣本的平均距離ai。ai 越小,說明樣本i越應(yīng)該被聚類到該簇。將ai 稱為樣本i的簇內(nèi)不相似度。某一個(gè)簇C中所有樣本的a i 均值稱為簇C的簇不相似度。
(2)計(jì)算樣本i到其他某簇Cj 的所有樣本的平均距離bij,稱為樣本i與簇Cj 的不相似度。定義為樣本i的簇間不相似度:bi =min{bi1, bi2, …, bik},即某一個(gè)樣本的簇間不相似度為該樣本到所有其他簇的所有樣本的平均距離中最小的那一個(gè)。
bi越大,說明樣本i越不屬于其他簇。
(3)根據(jù)樣本i的簇內(nèi)不相似度a i 和簇間不相似度b i ,定義某一個(gè)樣本樣本i的輪廓系數(shù):
樣例圖:
如上圖所示,最終整個(gè)數(shù)據(jù)的輪廓系數(shù)=每個(gè)樣本輪廓系數(shù)之和/n(即所有樣本輪廓系數(shù)的平均值)
(4)判斷:
si接近1,則說明樣本i聚類合理;
si接近-1,則說明樣本i更應(yīng)該分類到另外的簇;
若si 近似為0,則說明樣本i在兩個(gè)簇的邊界上。
(5) 所有樣本的輪廓系數(shù)S
所有樣本的s i 的均值稱為聚類結(jié)果的輪廓系數(shù),定義為S,是該聚類是否合理、有效的度量。聚類結(jié)果的輪廓系數(shù)的取值在【-1,1】之間,值越大,說明同類樣本相距約近,不同樣本相距越遠(yuǎn),則聚類效果越好。
優(yōu)缺點(diǎn)總結(jié)
優(yōu)點(diǎn):
對(duì)于不正確的 clustering (聚類),分?jǐn)?shù)為 -1 , highly dense clustering (高密度聚類)為 +1 。零點(diǎn)附近的分?jǐn)?shù)表示 overlapping clusters (重疊的聚類)。
當(dāng) clusters (簇)密集且分離較好時(shí),分?jǐn)?shù)更高,這與 cluster (簇)的標(biāo)準(zhǔn)概念有關(guān)。
缺點(diǎn):
convex clusters(凸的簇)的 Silhouette Coefficient 通常比其他類型的 cluster (簇)更高,例如通過 DBSCAN 獲得的基于密度的 cluster(簇)。不適用與基于密度的算法。
使用:
sklearn中的接口
輪廓系數(shù)以及其他的評(píng)價(jià)函數(shù)都定義在sklearn.metrics模塊中,
在sklearn中函數(shù)silhouette_score()計(jì)算所有點(diǎn)的平均輪廓系數(shù),而silhouette_samples()返回每個(gè)點(diǎn)的輪廓系數(shù)。后面會(huì)給出具體的例子的。它的定義如下:
def silhouette_score(X, labels, metric='euclidean', sample_size=None, random_state=None, **kwds): ''' X:表示要聚類的樣本數(shù)據(jù),一般形如(samples,features)的格式 labels:即聚類之后得到的label標(biāo)簽,形如(samples,)的格式 metric:默認(rèn)是歐氏距離 '''CH分?jǐn)?shù)(Calinski Harabasz Score )
原理:
也稱之為 Calinski-Harabaz Index
分?jǐn)?shù)S被定義為簇間離散與簇內(nèi)離散的比率,是通過評(píng)估類之間方差和類內(nèi)方差來計(jì)算得分。該分值越大說明聚類效果越好
其中k代表聚類類別數(shù),N代表全部數(shù)據(jù)數(shù)目。
n是樣本點(diǎn)數(shù),cq是在聚類q中的樣本點(diǎn),Cq是在聚類q中的中心點(diǎn),nq是聚類q中的樣本點(diǎn)數(shù)量,c是E的中心(E是所有的數(shù)據(jù)集)
trace只考慮了矩陣對(duì)角上的元素,即類q中所有數(shù)據(jù)點(diǎn)到類q中心點(diǎn)的歐幾里得距離。
類別內(nèi)部數(shù)據(jù)的協(xié)方差越小越好,類別之間的協(xié)方差越大越好,這樣的Calinski-Harabasz分?jǐn)?shù)會(huì)高。 總結(jié)起來一句話:CH index的數(shù)值越大越好。
在真實(shí)的分群label不知道的情況下,可以作為評(píng)估模型的一個(gè)指標(biāo)。 同時(shí),數(shù)值越小可以理解為:組間協(xié)方差很小,組與組之間界限不明顯。
與輪廓系數(shù)的對(duì)比,最大的優(yōu)勢(shì):快!相差幾百倍!毫秒級(jí)(原因:可能是計(jì)算簇間,簇內(nèi)不相似度對(duì)應(yīng)的數(shù)據(jù)量和計(jì)算復(fù)雜度不同。CH有中心點(diǎn),只需要計(jì)算簇內(nèi)點(diǎn)到中心點(diǎn)的距離即可,簇間有整個(gè)樣本的中點(diǎn),只需要計(jì)算各簇中心點(diǎn)到整個(gè)樣本的中心點(diǎn)即可;而輪廓系數(shù)則需要在簇內(nèi)計(jì)算樣本i到同簇其他所有樣本的平均距離等。一個(gè)是固定中心點(diǎn)計(jì)算,一個(gè)是沒有中心點(diǎn),計(jì)算所有的樣本點(diǎn)距離。)
優(yōu)缺點(diǎn)總結(jié)
優(yōu)點(diǎn)
當(dāng) cluster (簇)密集且分離較好時(shí),分?jǐn)?shù)更高,這與一個(gè)標(biāo)準(zhǔn)的 cluster(簇)有關(guān)。
得分計(jì)算很快。
缺點(diǎn)
凸的簇的 Calinski-Harabaz index(Calinski-Harabaz 指數(shù))通常高于其他類型的 cluster(簇),例如通過 DBSCAN 獲得的基于密度的 cluster(簇)。
使用
在sklearn中的接口
在scikit-learn中, Calinski-Harabasz Index對(duì)應(yīng)的方法是metrics.calinski_harabaz_score. 它的定義如下:
def calinski_harabasz_score(X, labels): ''' X:表示要聚類的樣本數(shù)據(jù),一般形如(samples,features)的格式 labels:即聚類之后得到的label標(biāo)簽,形如(samples,)的格式戴維森堡丁指數(shù)(DBI)——davies_bouldin_score
定義
戴維森堡丁指數(shù)(DBI),又稱為分類適確性指標(biāo),是由大衛(wèi)L·戴維斯和唐納德·Bouldin提出的一種評(píng)估聚類算法優(yōu)劣的指標(biāo)
原理
DB計(jì)算任意兩類別的類內(nèi)距離平均距離(CP)之和除以兩聚類中心距離求最大值。DB越小意味著類內(nèi)距離越小同時(shí)類間距離越大
缺點(diǎn):因使用歐式距離 所以對(duì)于環(huán)狀分布 聚類評(píng)測(cè)很差
分子:簇內(nèi)所有點(diǎn)到該簇質(zhì)心點(diǎn)的平均距離之和
分母d(ci,cj):兩類別質(zhì)心間的距離
max()最大值部分:選取每組比例中的最大值(即選取最糟糕的一組)
1/n求和部分:將所選比例加和除以類別數(shù)
結(jié)果意義:DB值越小表示聚類結(jié)果同簇內(nèi)部緊密,不同簇分離較遠(yuǎn)。即類內(nèi)距離越小,類間距離越大。
實(shí)例
具體過程:
step1:計(jì)算每個(gè)聚類d(A),d(B),d?的平均內(nèi)部距離。
step2:計(jì)算任意質(zhì)心間的距離d(A,B),d(A,C)和d(B,C)。
step3:返回最大比例(任意內(nèi)部聚類之和與其質(zhì)心間距之比)
注意:DBI的值最小是0,值越小,代表聚類效果越好。
使用
DBI的sklearn中的定義:
Compactness(緊密性)(CP)
CP計(jì)算每一個(gè)類各點(diǎn)到聚類中心的平均距離CP越低意味著類內(nèi)聚類距離越近。著名的 K-Means 聚類算法就是基于此思想提出的。
缺點(diǎn):沒有考慮類間效果
Separation(間隔性)(SP)
SP計(jì)算 各聚類中心兩兩之間平均距離,SP越高意味類間聚類距離越遠(yuǎn)
缺點(diǎn):沒有考慮類內(nèi)效果
Dunn Validity Index (鄧恩指數(shù))(DVI)
DVI計(jì)算任意兩個(gè)簇元素的最短距離(類間)除以任意簇中的最大距離(類內(nèi))。 DVI越大意味著類間距離越大同時(shí)類內(nèi)距離越小
缺點(diǎn):對(duì)離散點(diǎn)的聚類測(cè)評(píng)很高、對(duì)環(huán)狀分布測(cè)評(píng)效果差
其他
其他的一些指標(biāo)如:均一性(一個(gè)簇中只包含一個(gè)類別)和完整性(同類別被分到同簇中)就類似于之前半監(jiān)督中的準(zhǔn)確率和召回率。
V-measure:均一性和完整性的加權(quán)平均
兩個(gè)指標(biāo)用來衡量分類效果:即ARI就相當(dāng)于之前的F1,Fβ
總結(jié)
常用的聚類指標(biāo)可能就是輪廓系數(shù),CH分?jǐn)?shù),DBI等。針對(duì)不同的數(shù)據(jù)量,這些指標(biāo)的計(jì)算效率會(huì)有差距。若數(shù)據(jù)量小都可以嘗試使用,但要注意各個(gè)指標(biāo)的使用場(chǎng)景。若數(shù)據(jù)量大則建議使用CH分?jǐn)?shù),實(shí)測(cè)該指標(biāo)的計(jì)算效率的確很高,至于原因就如前文所描述的那樣。
總結(jié)
以上是生活随笔為你收集整理的聚类效果评估指标总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL基本指令汇总
- 下一篇: js实现身份证验证功能