Ü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
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.
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.
Wenn Sie numerische Bewertungen haben, könnten Sie diff
verwenden, um zu überprüfen, ob Sie konsistent 0
Unterschied zwischen den einzelnen Rater haben:
Ergebnisse sind wie erwartet, wenn die Funktion auf Beispielgruppen angewendet wird:
%Vor%Mit den Basis-R-Funktionen könnten Sie Folgendes tun:
%Vor%Einpacken in eine benutzerdefinierte Funktion:
%Vor%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. Ссылка ) ).
Tags und Links r machine-learning statistics