2012-02-12 9 views
9

私はクラスタ検証を実行するためにRでfpcパッケージを使用しています。Rクラスタリング '純度'メトリック

クラスタリングを外部パーティショニングと比較するためにcluster.stats()関数を使用し、Rand Index、entropy e.t.cのようないくつかのメトリックを計算することができます。

はしかし、私は、R.

のおかげで、この対策の実装がある場合、私は疑問に思ってhttp://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-clustering-1.html

で定義されている「純度」または「クラスターの精度」と呼ばれるメトリックを探しています チェット

答えて

11

私は既製の機能を知っているが、ここではあなたがあなたのリンクに式を使用して、それを自分で行う可能性が一つの方法ですしていない。

ClusterPurity <- function(clusters, classes) { 
    sum(apply(table(classes, clusters), 2, max))/length(clusters) 
} 

ここでは、私たちは純度が1 /数の-クラスであることを期待信じているいくつかのランダムな割り当て、上でそれをテストすることができます

> n = 1e6 
> classes = sample(3, n, replace=T) 
> clusters = sample(5, n, replace=T) 
> ClusterPurity(clusters, classes) 
[1] 0.334349 
+1

短いと簡単だったこと!私はRを使用する頻度は非常に低く、これを行うために長い関数を書くことになっていました。私に時間を節約し、Rにもう1つのことを教えてくれてありがとう。 – chet

+0

@chetすごく助かりました。がんばろう! –

関連する問題