2012-02-12 8 views
9

Używam pakietu fpc w R do wykonywania sprawdzania klastrów.R Clustering "czystość" metryki

Mogę użyć funkcji cluster.stats() do porównania klastrowania z zewnętrznym partycjonowaniem i obliczenia kilku wskaźników, takich jak Rand Index, entropia e.t.c.

jednak szukam metryki zwanego „czystość” lub „dokładność klaster”, który jest zdefiniowany w http://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-clustering-1.html

Zastanawiam się, czy jest wdrożenie tego środka w R.

dzięki, Chet

Odpowiedz

11

nie wiem z funkcji off-the-shelf, ale tutaj jest jeden sposób można to zrobić samemu za pomocą równania w linku:

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

Tutaj możemy przetestować go na kilka losowych zadań, gdzie wierzę oczekujemy czystość być 1/liczba-klasy:

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

To było krótkie i proste! Używam R dość rzadko i zacząłem pisać długą funkcję, aby to zrobić. Dziękuję bardzo za uratowanie mi czasu i nauczenie mnie jeszcze jednej rzeczy w R. – chet

+0

@chet Świetnie cieszę się, że pomaga. Powodzenia! –

Powiązane problemy