Was ist der rand-index? (definition & beispiele)


Der Rand-Index ist eine Möglichkeit, die Ähnlichkeit der Ergebnisse zwischen zwei verschiedenen Clustering-Methoden zu vergleichen.

Der Rand-Index wird oft mit R bezeichnet und wie folgt berechnet:

R = (a+b) / ( n C 2 )

Gold:

  • a: Die Häufigkeit, mit der ein Elementpaar gemäß zwei Clustering-Methoden zum selben Cluster gehört.
  • b: Die Häufigkeit, mit der ein Elementpaar gemäß zwei Clustering-Methoden zu Differenzclustern gehört.
  • n C 2 : Die Anzahl ungeordneter Paare in einer Menge von n Elementen.

Der Rand-Index nimmt immer einen Wert zwischen 0 und 1 an, wobei:

  • 0: zeigt an, dass zwei Clustering-Methoden hinsichtlich der Clusterung eines Elementpaars nicht übereinstimmen.
  • 1: Zeigt an, dass zwei Clustering-Methoden hinsichtlich der Clusterung jedes Elementpaars perfekt übereinstimmen.

Das folgende Beispiel veranschaulicht, wie der Rand-Index zwischen zwei Clustering-Methoden für einen einfachen Datensatz berechnet wird.

Beispiel: So berechnen Sie den Rand-Index

Angenommen, wir haben den folgenden Datensatz, der aus fünf Elementen besteht:

  • Datensatz: {A, B, C, D, E}

Und nehmen wir an, wir verwenden zwei Clustering-Methoden, die jedes Element in die folgenden Cluster einordnen:

  • Cluster der Methode 1: {1, 1, 1, 2, 2}
  • Cluster-Methode 2: {1, 1, 2, 2, 3}

Um den Rand-Index zwischen diesen Clustering-Methoden zu berechnen, müssen wir zunächst alle möglichen ungeordneten Paare im Fünf-Elemente-Datensatz aufschreiben:

  • Ungeordnete Paare: {A, B}, {A, C}, {A, D}, {A, E}, {B, C}, {B, D}, {B, E}, {C, D} , {C, E}, {D, E}

Es gibt 10 ungeordnete Paare.

Als nächstes müssen wir a berechnen, das die Anzahl der ungeordneten Paare darstellt, die in beiden Clustering-Methoden zum selben Cluster gehören:

  • {AB}

In diesem Fall ist a = 1 .

Als nächstes müssen wir b berechnen, das die Anzahl der ungeordneten Paare darstellt, die zu verschiedenen Clustern in den beiden Clustering-Methoden gehören:

  • {A, D}, {A, E}, {B, D}, {B, E}, {C, E}

In diesem Fall ist b = 5 .

Schließlich können wir den Rand-Index wie folgt berechnen:

  • R = (a+b) / ( n C 2 )
  • R = (1+5) / 10
  • R = 6/10

Der Rand-Index beträgt 0,6 .

So berechnen Sie den Rand-Index in R

Wir können die Funktion rand.index() aus dem Fossil- Paket verwenden, um den Rand-Index zwischen zwei Clustering-Methoden in R zu berechnen:

 library (fossil)

#define clusters
method1 <- c(1, 1, 1, 2, 2)
method2 <- c(1, 1, 2, 2, 3)

#calculate Rand index between clustering methods
rand. index (method1, method2)

[1] 0.6

Der Rand-Index beträgt 0,6 . Dies entspricht dem von uns manuell berechneten Wert.

So berechnen Sie den Rand-Index in Python

Wir können die folgende Funktion in Python definieren, um den Rand-Index zwischen zwei Clustern zu berechnen:

 import numpy as np
from scipy. special import comb

#define Rand index function
def rand_index (actual, pred):

    tp_plus_fp = comb(np. bincount (actual), 2). sum ()
    tp_plus_fn = comb(np. bincount (pred), 2). sum ()
    A = np. c_ [(actual, pred)]
    tp = sum(comb( np.bincount (A[A[:, 0] == i, 1]), 2) .sum ()
             for i in set(actual))
    fp = tp_plus_fp - tp
    fn = tp_plus_fn - tp
    tn = comb(len(A), 2) - tp - fp - fn
    return (tp + tn) / (tp + fp + fn + tn)

#calculate Rand index
rand_index([1, 1, 1, 2, 2], [1, 1, 2, 2, 3])

0.6

Der Rand-Index beträgt 0,6 . Dies entspricht dem in den vorherigen Beispielen berechneten Wert.

Zusätzliche Ressourcen

Eine Einführung in das K-Means-Clustering
Eine Einführung in das K-Medoid-Clustering
Eine Einführung in das hierarchische Clustering

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert