Ähnlichkeitsprozentsatz berechnen ODER Korrelation zwischen mehr als 2 Objekten berechnen

8

Überlege, dass ich vier Objekte habe ( a,b,c,d ), und bitte fünf Personen, sie (Kategorie 1 oder 2) entsprechend ihrer physischen Erscheinung oder etwas anderem zu etikettieren. Die Etiketten, die von fünf Personen für diese Objekte bereitgestellt werden, werden als

angezeigt %Vor%

Im Tabellenformat

%Vor%

Nun möchte ich den prozentualen Anteil der Zeiten berechnen, zu denen eine Gruppe von Objekten die gleiche Bezeichnung erhalten hat (entweder 1 oder 2). Zum Beispiel wurden die Objekte a, b und d von 3 Personen von 5 Personen mit dem gleichen Label versehen. Also ist sein Prozentsatz 3/5 (= 60%). Während die Objekte a und d von allen Personen mit denselben Bezeichnungen versehen wurden, ist ihr Prozentsatz 5/5 (= 100%).

Ich kann diese Statistik manuell berechnen, aber in meinem ursprünglichen Datensatz habe ich 50 solcher Objekte und die Personen sind 30 und die Bezeichnungen sind 4 (1,2,3 und 4). Wie kann ich solche Statistiken für diesen größeren Datensatz automatisch berechnen? Gibt es in R vorhandene Pakete / Tools, die solche Statistiken berechnen können?

Hinweis: Eine Gruppe kann beliebig groß sein. Im ersten Beispiel besteht eine Gruppe aus a, b und d, während die zweite Beispielgruppe aus a und d besteht.

    
Haroon Rashid 21.11.2016, 05:01
quelle

6 Antworten

3

Hier gibt es zwei Aufgaben: erstens, eine Liste aller relevanten Kombinationen zu erstellen und zweitens die zeilenweise Ähnlichkeit zu bewerten und zu aggregieren. combn kann die erste Aufgabe starten, aber es braucht ein wenig Massieren, um die Ergebnisse in eine ordentliche Liste einzuordnen. Die zweite Aufgabe könnte mit prop.table behandelt werden, aber hier ist es einfacher, direkt zu berechnen.

Hier habe ich tidyverse grammar verwendet (hauptsächlich purrr , was hilfreich für die Handhabung von Listen ist), aber wenn Sie möchten, konvertieren Sie sie in die Basis.

%Vor%     
alistaire 21.11.2016, 06:17
quelle
4

Wenn Sie numerische Bewertungen haben, könnten Sie diff verwenden, um zu überprüfen, ob Sie konsistent 0 Unterschied zwischen den einzelnen Rater haben:

%Vor%

Ergebnisse sind wie erwartet, wenn die Funktion auf Beispielgruppen angewendet wird:

%Vor%     
thelatemail 21.11.2016 05:45
quelle
2

Mit den Basis-R-Funktionen könnten Sie Folgendes tun:

%Vor%

Einpacken in eine benutzerdefinierte Funktion:

%Vor%     
OdeToMyFiddle 21.11.2016 06:03
quelle
2

Versuchen Sie Folgendes:

%Vor%     
Sandipan Dey 21.11.2016 06:04
quelle
1

Clustering-Ähnlichkeitsmetriken

Es scheint, dass Sie möglicherweise eine wesentlich andere (bessere?) Metrik berechnen möchten, als Sie jetzt vorschlagen, wenn Ihr tatsächliches Problem es erfordert, verschiedene Optionen zum Clustering der gleichen Daten zu evaluieren.

Dies Ссылка ist ein guter Überblick über das Problem, aber die BCubed-Präzision / Recall-Metriken werden häufig für ähnliche Probleme in NLP verwendet (z. B. Ссылка ) ).

    
Peteris 21.11.2016 11:47
quelle
0

Probieren Sie diesen Code aus. Es funktioniert für Ihr Beispiel und sollte für den erweiterten Fall halten.

%Vor%     
efbbrown 21.11.2016 05:21
quelle

Tags und Links