Clustering

如何計算純度?

  • April 29, 2014

在聚類分析中,我們如何計算純度?方程是什麼?

我不是在尋找代碼來為我做這件事。

在此處輸入圖像描述

讓是簇 k,並且成為 j 類。

那麼純度實際上是準確的嗎?它看起來像是在對樣本大小上每個集群的真正分類類別的數量求和。

方程源

問題是輸出和輸入之間的關係是什麼?

如果有真陽性(TP)、真陰性(TN)、假陽性(FP)、假陰性(FN)。是嗎?

在聚類分析的背景下,純度是聚類質量的外部評價標準。 它是在單位範圍 [0..1] 內正確分類的對象(數據點)總數的百分比。

$$ Purity = \frac 1 N \sum_{i=1}^k max_j | c_i \cap t_j | $$

在哪裡 $ N $ =對像數(數據點), $ k $ = 聚類數, $ c_i $ 是一個簇 $ C $ , 和 $ t_j $ 是具有最大集群計數的分類 $ c_i $

當我們說“正確”時,這意味著每個集群 $ c_i $ 已將一組對象識別為基本事實所指示的同一類。我們使用ground truth分類 $ t_i $ 這些對像作為分配正確性的度量,但是要這樣做,我們必須知道哪個集群 $ c_i $ 映射到哪個ground truth分類 $ t_i $ . 如果它是 100% 準確的,那麼每個 $ c_i $ 將映射到 1 $ t_i $ , 但實際上我們的 $ c_i $ 包含一些點,其基本事實將它們分類為其他幾個分類。自然地,我們可以看到,通過使用 $ c_i $ 到 $ t_i $ 具有最多正確分類的映射,即 $ c_i \cap t_i $ . 那是 $ max $ 來自等式。

計算純度首先創建你的混淆矩陣 這可以通過遍歷每個集群來完成 $ c_i $ 併計算有多少對像被分類為每個類別 $ t_i $ .

  |  T1 |  T2  |  T3
---------------------
C1 |  0  |  53  |  10
C2 |  0  |  1   |  60
C3 |  0  |  16  |  0

然後對於每個集群 $ c_i $ ,從其行中選擇最大值,將它們相加,最後除以數據點的總數。

Purity = (53 + 60 + 16) / 140 = 0.92142

引用自:https://stats.stackexchange.com/questions/95731

comments powered by Disqus

相關問答