Validierung des Zero-Shot-Klassifikators
EinfĂĽhrung
In diesem interaktivem Dokument können Sie die Validierung des Zero-Shot-Klassifikators nachvollziehen und selbst durchführen. Der Code ist in R
geschrieben und wird mit WebR im Browser ausgeführt. Das Format eignet sich gut zur Einführung, da sie nichts installieren müssen und die Ausführung auch auf (halbwegs aktuellen) Smartphones und Tablets möglich ist. Wenn Sie tiefer in die Datenanalyse mit R einsteigen möchten, empfehle ich Ihnen die Installation von R und RStudio auf einem lokalen Rechner. Dies ist sinnvoll, da Sie in der WebR-Anwendung lokale Dateien nicht direkt einlesen und den erstellten Code nicht direkt speichern können. Zum Einstieg finden Sie ein R-Skript mit den identischen Inhalten in Blackboard🔒.
Hinweise
- Wenn Sie den vorgegebenen Code einfach ausführen möchten, klicken Sie auf den Play-Button (“Run Code”).
- Die Code-Felder sind interaktiv, d.h. Sie können den Code verändern und erneut ausführen.
- Die Schritte des vorgegebenen bauen aufeinander auf:
- Sie müssen die vorherigen Schritte durchführen, um die nachfolgenden Schritte ausführen zu können.
- Wenn Sie den Code in einem Schritt verändern, müssen Sie ggf. die nachfolgenden Schritte ebenfalls anpassen und erneut ausführen.
Pakete laden
{yardstick}
ist ein Paket, das Funktionen zur Bewertung von Modellvorhersagen bereitstellt. Mit diesem Paket können wir die Konfusionsmatrix und darauf basierende Metriken einfach berechnen.{dplyr}
ist ein Paket mit Funktionen zur Datenmanipulation.{ggplot2}
ist ein Paket zur Erstellung von Grafiken.
Beispiel: Explainable Detection of Online Sexism (EDOS)
Datensatz
- Github: https://github.com/rewire-online/edos
- Paper: https://arxiv.org/abs/2303.04222
- Zwei Tasks:
- Task 1: Binary classification: Ist ein Kommentar sexistisch oder nicht?
- Task 2: Multiclass classification (4 Ausprägungen): Welche Art von Sexismus ist in einem sexistischen Kommentar enthalten?
- Insgesamt 4.000 Test-Kommentare; wir verwenden kleinen Ausschnitt
KI-Klassifikation durch GPT-4o (OpenAI)
Prompt Task 1 (Ausschnitt): I will show you a social media comment. Decide whether it is sexist or not sexist. This task defines sexism as: “Any abuse or negative sentiment that is directed towards women based on their gender, or on the combination of their gender with one or more other identity attributes (e.g. Black women, Muslim women, Trans women).”
Prompt Task 2 (Ausschnitt): Your task is to classify sexist comments into different categories. I will show you only sexist comments. There are four categories: 1. Threats, plans to harm and incitement: […]; 2. Derogation: […]; 3. Animosity: […]; 4. Prejudiced discussions: […]
Task 1: Binary classification
Daten einlesen und formatieren
- Jede Zeile eine Codiereinheit, eine Spalte Gold-Standard, eine Spalte Klassifikation durch Modell, ggf. eine Spalte Motivation des Modells
- Umwandeln von Gold-Standards und Modellvorhersagen in Faktoren fĂĽr
{yardstick}
Konfusionsmatrix
- Wir berechnen die Konfusionsmatrix mit der Funktion
conf_mat()
.
Ausgabe als Tabelle
Ausgabe als Heatmap-Plot
- Die Konfusionsmatrix zeigt in den Spalten die Ausprägungen des Gold-Standards und in den Zeilen die Ausprägungen der Klassifikation durch das Modell.
- Wichtiger Unterschied zur Koinzidenzmatrix: Wir unterscheiden zwischen “Wahrheit” (Gold-Standard) und beobachteten Werten.
- Die Diagonale zeigt die korrekten Vorhersagen (Gold-Standard = Modellklassifikation), die Off-Diagonale die falschen Vorhersagen.
Benennung der Zellen für eine binäre Klassifikation:
Gold-Standard: Negativ | Gold-Standard: Positiv | |
---|---|---|
Beobachteter Wert: Negativ | Korrekt negativ | Falsch negativ |
Beobachteter Wert: Positiv | Falsch positiv | Korrekt positiv |
Metriken
Accuracy
- Anteil der korrekten Klassifikationen an allen Vorhersagen
Recall
- Anteil der korrekten positiven Klassifikationen an allen positiven Gold-Standard-Werten
- Mit
event_level = "second"
können wir die zweite Ausprägung (“sexist”) als “positiv” definieren
Precision
- Anteil der korrekten positiven Klassifikationen an allen positiven Klassifikationen
- Mit
event_level = "second"
können wir die zweite Ausprägung (“sexist”) als “positiv” definieren
F1-Score
- Harmonisches Mittel aus Precision und Recall
- Mit
event_level = "second"
können wir die zweite Ausprägung (“sexist”) als “positiv” definieren
Einfache Berechnung aller gewĂĽnschten Metriken
- Mit der Funktion
metric_set()
können wir mehrere Metriken gleichzeitig berechnen. - Mit
event_level = "second"
können wir die zweite Ausprägung (“sexist”) als “positiv” definieren
Task 2: Multiclass classification
Daten einlesen und formatieren
Konfusionsmatrix
- Gleiche Logik wie bei der binären Klassifikation, nur eben mit mehr als zwei Ausprägungen.
- Dadurch keine einfache Unterscheidung von “negativer” und “positiver” Ausprägung.
- Stattdessen qualitative Inspektion der Verwechslungen.
Metriken fĂĽr Multiclass-Klassifikation
- Die Definition der Accuracy ändert sich im Vergleich zur binären Klassifikation nicht.
- Recall, Precision und F1-Score können auf unterschiedliche Weise berechnet werden, je nachdem, wie über die Ausprägungen aggregiert wird.
- Micro: Die Metriken werden für alle Ausprägungen zusammen berechnet.
- Macro: Die Metriken werden für jede Ausprägung einzeln berechnet und dann gemittelt.
- Gewichtet: Die Metriken werden für jede Ausprägung einzeln berechnet und gewichtet gemittelt. Das Gewicht entspricht der Häufigkeit der Ausprägung im Gold-Standard.