聚类dbi指数_人脸聚类常用评价指标
1.概述
好的聚類算法,一般要求類簇具有:
- 高的類內 (intra-cluster) 相似度
- 低的類間 (inter-cluster) 相似度
評價一個聚類算法的指標不像有監督的分類算法計算其精確率,召回率等指標那樣簡單。聚類評估中不應該將標注結果作為聚類結果的評價指標,除非我們有相關的先驗知識或某種假設,知道評估的這種標準或相似性度量下其簇內差距更小。
對于聚類算法大致可分為 外部評價標準和內部評價標準。外部評價標準針對的是給定一個基準,譬如另外一種聚類結果,當然人工標注也可理解為一種算法,根據這些基準數據對聚類結果進行評價。
以sklearn給出的這圖為例,我們看上去哪種算法好,哪種不好,實際是我們給了他一種事實標準,由此為基準去評價的。
在數據分析中,包括有監督和無監督的機器學習算法,重要的是距離的衡量,就是我們怎么認為誰跟誰是最相似的度量標準。這距離常用的有歐式距離,曼哈頓距離,余弦距離等, 距離標準不一,自然聚類的結果不一。舉個不恰當的例子,三個人站這里,可以按年齡,性別,項目,籍貫等作為距離標準,每種的結果是不一樣的。
針對人臉聚類的問題,一個人的多張人臉其相似度差異是會很大的,尤其是圖像質量的差異。下圖是我用github上開源的一份gan代碼 修改后跑出來的GAN人臉(git@github.com:a312863063/seeprettyface-generator-yellow.git),
用另一個完全無關的人臉識別模型去對這些圖片進行align并進行特征提取,align后如下
依次提特征后計算0024這張圖片與其他圖片的相似度,可以看出其與前幾張是完全不相似甚至為負余弦相似度的,跟隨后的那些也是相似度逐漸降低的。然后進一步的計算n與n+1張的相似度,則都在0.8以上,要知道這里是原始的相似度,通常來說聲稱的相似度是要經過一道拉伸函數轉換的,這里的0.8都相當于98%左右了.
再放一個類似的供觀摩:
如果把這些假臉當做現實社會中采集的萬千人臉挑出的些圖片的話,按這個排序,兩兩相似度都差不多95%以上,理應是一個人,然而隨便相距較遠的兩個圖又明顯不是一個人,這種情況該怎么劃分類簇?
實際情況遠比這個復雜,不同的劃分標準及評價準則都將影響聚類的算法及結果。
聚類的評價就是判斷聚類算法給每個數據的類別標簽與真實標簽的一致性程度。雖說聚類是無監督學習,但常用的評價指標均需要用到類別標簽。
2. 機器學習中聚類的評價指標
下面是sklearn中幾種聚類度量指標,
2.1 蘭德指數
蘭德指數RI(Rand Index),將聚類看成一對對點的決策過程,對N(N-1)/2對樣本依次計算其分類結果。
If C is a ground truth class assignment and K the clustering, let us define TP and TN as: TP:the number of pairs of elements that are in the same set in C and in the same set in K TN:the number of pairs of elements that are in different sets in C and in different sets in K假設C是真實標簽集,K是聚類的結果,定義TP為本來為一個類中的點對在聚類結果K中也在一個類中,定義TN為本來不在一個類中的點對在聚類結果中也不在一個類簇中。則蘭德系數可以表示為:
此處的RI進一步的可以計算
以下供參考,
在RI中FP與FN的后果假設是一樣的,實際人臉聚類執行中要考慮一人分多類的后果大還是多人混到一類的后果大,如果一人分成多類的后果更嚴重則可以采用
并令beta的值大于12.2 調整后的蘭德指數(Adjusted Rand index, ARI)
RI的指標對于隨機劃分來說其值不為0,用于衡量兩個分布的相似程度,取值范圍[-1,1],數值越接近1越好,隨機產生標簽時則值接近0
計算過程較麻煩,需要先生成列連表再計算。from sklearn.metrics import adjusted_rand_score labels_true = [0, 0, 1, 1, 2, 2] labels_pred = [0, 0, 1, 1, 1, 2] ari=adjusted_rand_score(labels_true, labels_pred) print('蘭德系數為:%f'%(ari)) 值為0.4444即使將標簽改變,譬如pred中的2改為3其分值也不變。
2.3 純度Purity
其中N表示總的樣本個數,
表示聚類算法的劃分, 表示真是類別標簽劃分。在每個聚類簇中分配一個標簽,且為此標簽的樣本在該簇中出現次數最多,計算所有K個聚類簇中的這個次數之和與總數之比為純度。
(5+3+4)/(7+5+5)=12/17=0.706
這個指標無法準確反映聚類的質量與簇個數的關系
2.4 NMI(Normalized Mutual Information)
Given the knowledge of the ground truth class assignments labels_true and our clustering algorithm assignments of the same samples labels_pred, the Mutual Information is a function that measures the agreement of the two assignments, ignoring permutations. Two different normalized versions of this measure are available, Normalized Mutual Information (NMI) and Adjusted Mutual Information (AMI). NMI is often used in the literature, while AMI was proposed more recently and is normalized against chance在已知真實標簽labels_true的數據集下利用聚類算法基于該樣本得到labels_pred, 互信息Mutual information不考慮標簽排列的情況下測量兩個標簽分配的一致性。互信息有兩個標準化版本,歸一化互信息Normalized mutual information和調節互信息Adjusted mutual information。
其中
為互信息,互信息的最小值為0,當類簇隨機劃分及聚類算法與真實標簽完全獨立時,互信息為0;如果聚類算法完整重現了真實標簽,則互信息為1.當聚類的簇數等于樣本個數時互信息MI也達到最大值,其未對簇數目較大的劃分方式進行懲罰。NMI則對MI進行了修正,使得值落在[0,1]之間。
互信息的幾種實現其對于labels_true和labels_pred是對稱的,互換位置也沒關系。
優點:隨機分配的AMI接近0; 數值趨近1時說明兩個分配有極高的一致性。
缺點:同樣需要標注數據
2.5 同質性,完整性和V-measure
已知真實簇的標簽分配,可以使用條件熵分析來定義一些直觀的度量。
Rosenberg 和 Hirschberg (2007) 為任何簇分配定義了以下兩個理想的目標:
- 同質性(homogeneity): 每個簇只包含一個類的成員
- 完整性(completeness): 給定類的所有成員都分配給同一個簇。
這兩個分別有對應的homogeneity_score和completeness_score作為分數去衡量。
同質性和完整性兩個分數的調和平均成為V-measure,最新的sklearn中還支持帶beta參數的v_measure_score
這個例子中第二個pred提高了同質性,但2依然分給了3,4兩個標簽,完整性依然欠缺一點。比前一個減少了多人分一類,依然存在一人分多類的現象。
2.6 Fowlkes-Mallows(FMI)
FMI也要求標簽已知,定義為成對的準確率和召回率的幾何平均值:
其中其中的TP是真正例(True Positive)的數量(即,真實標簽組和預測標簽組中屬于相同簇的點對數),FP是假正例(False Positive)(即,在真實標簽組中屬于同一簇的點對數,而不在預測標簽組中),FN是假負例(False Negative)的數量(即,預測標簽組中屬于同一簇的點對數,而不在真實標簽組中)
計算可以使用sklearn的metrics.fowlkes_mallows_score(labels_true, labels_pred)進行計算
以上這些都是要有真實標簽數據的,對于沒有標簽數據的則有Silhouette系數,Calinski-Harabaz 指數,Davies-Bouldin Index(DBI)等,因為沒有了標簽數據,所以衡量標準都依賴距離了,目標只有一個,刻畫類內緊密,類間疏遠的程度。考慮到人臉特征并非凸集及其高維特性,用這種刻畫想法很好,卻沒多少意義。
下面時cvpr2019,2020相關聚類算法及與其他算法在公開數據集上的benchmark指標,可以看出這人用的也是Precision/Recall/Fscore等基本指標,更專業點的是用Pairwise F-score,BCubed F-score,NMI三種。所以一般來說,選擇這其中的幾種可滿足研發需要了。
Pairwise F-score在介紹RI的時候提到的成對的precision與recall的時候介紹了,
BCubed precision表示一個類簇檔案中是否都是一個人的照片,相當于同質性。Bcubed recall表示一個人的照片是否都分到同一類簇檔案中去了,相當于完整性。BCubed F-score就是綜合precision和recall的結果了。
Enrique Amigo, Julio Gonzalo, Javier Artiles, and Felisa ′ Verdejo. A comparison of extrinsic clustering evaluation metrics based on formal constraints. Information retrieval, 12(4):461–486, 2009
Yichun Shi, Charles Otto, and Anil K Jain. Face clustering: representation and pairwise constraints. IEEE Transactions on Information Forensics and Security, 13(7):1626– 1640, 2018
Zhongdao Wang, Liang Zheng, Yali Li, and Shengjin Wang. Linkage based face clustering via graph convolution network. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1117–1125, 2019.
Lei Yang, Xiaohang Zhan, Dapeng Chen, Junjie Yan, Chen Change Loy, and Dahua Lin. Learning to cluster faces on an affinity graph. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2298– 2306, 2019.
@inproceedings{yang2019learning,
title={Learning to Cluster Faces on an Affinity Graph},
author={Yang, Lei and Zhan, Xiaohang and Chen, Dapeng and Yan, Junjie and Loy, Chen Change and Lin, Dahua},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2019}
}
@inproceedings{yang2020learning,
title={Learning to Cluster Faces via Confidence and Connectivity Estimation},
author={Yang, Lei and Chen, Dapeng and Zhan, Xiaohang and Zhao, Rui and Loy, Chen Change and Lin, Dahua},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
year={2020}
}
總結
以上是生活随笔為你收集整理的聚类dbi指数_人脸聚类常用评价指标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cad lisp 两侧偏移并删除_弱电C
- 下一篇: gis影像格式img转为ecw_微图影像