【機器學習】聚類分析的模型評估

  1、聚類算法中的距離html

  1. 單個樣本之間的距離算法

    

  餘弦距離     函數

  在聚類分析中,通常須要對數據進行標準化,由於聚類數據會受數據量綱的影響。post

  在sklearn庫中,可調用以下方法進行標準化:lua

1 from sklearn.preprocessing import StandardScaler
2 data = StandardScaler().fit_transform(data)

  這種方法將data的均值和方差保存下來,並使用它們對數據進行歸一化,這樣,有新的數據輸入時,仍能夠沿用data的均值和方差來作歸一化。url

  【聯】facenet中是採用的L2歸一化,這和每一個向量自身相關,而不是和總體數據相關。spa

  在上述距離中,受量綱影響較大的是明氏距離和歐氏距離(明氏距離的特例),馬氏距離和餘弦距離則受量綱影響較小。3d

  其中,餘弦距離越大(趨近於1),表明兩個向量的方向越接近,類似度越高。code

  2. 兩個聚類簇之間的距離orm

   

 

  2、聚類算法的評價

  評價聚類分羣的最佳數量與分羣效果。

  1. 輪廓係數(silhouette coefficient)

  輪廓係數這一指標無需知道數據集的真實標籤。

  取值範圍[-1, 1],值越大,聚類效果越好。旨在將某個對象與本身的簇的類似程度和與其餘簇的類似程度做比較。輪廓係數最高的簇的數量表示簇的數量的最佳選擇。

  輪廓係數綜合考慮了內聚度和分離度兩種因素。

  簇內不類似度ai:計算樣本i到所屬簇內其餘樣本的平均距離ai,將ai定義爲樣本i的簇內不類似度,簇C中全部樣本的ai的均值爲簇C的簇不類似度。

  簇間不類似度bi:計算樣本i到其餘某簇Cj的全部樣本的平均距離bij,稱爲樣本i與簇Cj的不類似度,將bi=min{bi1, bi2, ... bik}定義爲樣本i的簇間不類似度。

  樣本i的輪廓係數

  

  Si越接近1,則說明樣本i的聚類合理;Si越接近-1,則說明樣本越應該被分到其餘簇內;Si近似爲0,則說明樣本i近似在兩個簇的邊界上。

  聚類結果的輪廓係數:全部樣本的Si的均值。該係數越大,聚類效果越好。

1 from sklearn import metrics
2 metrics.silhouette_score(data, labels)

  2. 調整蘭德指數(adjusted rand index)

  蘭德指數須要知道實際的類別信息C,設K爲聚類結果。用a表示在C、K中都是同一類別的元素的對數,用b表示在C、K中都是不一樣類別的元素的對數,則蘭德指數爲

  

  其中表示數據集中能夠組成的總的元素對數。RI的取值範圍爲[0, 1],值越大,意味着聚類結果與真實狀況越吻合。

  對於隨機姐u共,RI並不能保證分數接近0。爲了實現「在聚類結果隨機產生的狀況下,指標應該接近0」,提出了調整蘭德指數,它具備更高的區分度:

  

  ARI的取值範圍爲[-1, 1],值越大意味着聚類結果與真實狀況越吻合。從廣義角度來說,ARI衡量的是兩個數據分佈的吻合程度。

1 metrics.adjusted_rand_score(labels_true, labels_pred)

  3. 互信息(mutual information)

  MI也用來衡量兩個數據分佈的吻合程度。

  假設U與V是對N個樣本的分配狀況,則兩種分佈的熵分別爲

  

  其中

  則U與V之間的互信息MI定義爲

  

  其中

  標準化後的互信息NMI爲

  

  與ARI相似,調整互信息(adjusted mutual information)爲

  

  MI與NMI的取值範圍爲[0, 1],AMI的取值範圍爲[-1,1],它們都是值越大意味着聚類結果與真實狀況越吻合。

1 metrics.adjusted_mutual_info_score(labels_true, labels_pred)

   4. 同質性(homogeneity),完整性(completeness)和兩者的調和平均(v-measure)

  同質性:每一個簇只包含單個類的成員

  完整性:給定類的全部成員都分配給同一個簇

1 metrics.homogeneity_score(labels_true, labels_pred)
2 metrics.completeness_score(labels_true, labels_pred)
3 metrics.v_measure_score(labels_true, labels_pred)

  5. Calinski-Harabaz index

  數據類內協方差越小越好,類間協方差越大越好,calinski harabaz指數越高。

  它和輪廓係數同樣,能夠在數據真實標籤不知道的狀況下,對聚類效果進行評估。彷佛比輪廓係數的計算更快。

1 metrics.calinski_harabaz_score(data, labels)

 

 更多參考:

sklearn中的模型評估-構建評估函數

sklearn-clustering官方文檔 

(2.3.9 clustering performance evaluation,注意advantages&drawbacks)

相關文章
相關標籤/搜索