Validierung des Zero-Shot-Klassifikators

Autor:in
Zugehörigkeit

Marko Bachl

Freie Universität Berlin

Veröffentlichungsdatum

10. 06. 2024

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.

Micro

Macro

Gewichtet

Zusätzliche Konsole