Einfach 0 gelöst 0% Erfolgsquote

One-Hot-Kodierung

Verwandle Kategorien in Vektoren mit einer einzigen 1, das Eingabeformat für Klassifikatoren und Embeddings.

Das lernst du

  • Kategorien Vektorpositionen zuordnen
  • One-Hot-Zeilen für jedes Label bauen
  • Kategoriale Daten für Modelle vorbereiten

Problem

Modelle brauchen Zahlen, keine Wörter. Die One-Hot-Kodierung verwandelt jede Kategorie in einen Vektor mit einer Position pro Kategorie: 1 an der Position der Kategorie und überall sonst 0.

Ordne die Kategorien alphabetisch. Gib für jedes Label seinen One-Hot-Vektor aus.

Implementiere one_hot(labels).

Eingabe

labels: Eine Liste von Kategorienamen.

Ausgabe

Gib eine Matrix mit einer Zeile pro Label und einer Spalte pro verschiedener Kategorie (alphabetisch) zurück.

Einschränkungen

1 ≤ Länge ≤ 1.000

Jedes Label hat 1 bis 20 Zeichen

Beispiele

Beispiel 1
Eingabe:
labels = ["red", "green", "blue", "green"]

Erwartete Ausgabe:
expected = [
    [0, 0, 1],
    [0, 1, 0],
    [1, 0, 0],
    [0, 1, 0]
]
Eingabe:
std::vector<std::string> labels = {"red", "green", "blue", "green"};

Erwartete Ausgabe:
std::vector<std::vector<long long>> expected = {
    {0, 0, 1},
    {0, 1, 0},
    {1, 0, 0},
    {0, 1, 0}
};
Eingabe:
string[] labels = new string[] {"red", "green", "blue", "green"};

Erwartete Ausgabe:
long[][] expected = new long[][] {
    new long[] {0, 0, 1},
    new long[] {0, 1, 0},
    new long[] {1, 0, 0},
    new long[] {0, 1, 0}
};

Erläuterung

Die Kategorien in alphabetischer Reihenfolge sind blue, green, red. Also red → [0, 0, 1], green → [0, 1, 0] und blue → [1, 0, 0].

Beispiel 2
Eingabe:
labels = ["yes"]

Erwartete Ausgabe:
expected = [
    [1]
]
Eingabe:
std::vector<std::string> labels = {"yes"};

Erwartete Ausgabe:
std::vector<std::vector<long long>> expected = {
    {1}
};
Eingabe:
string[] labels = new string[] {"yes"};

Erwartete Ausgabe:
long[][] expected = new long[][] {
    new long[] {1}
};

Erläuterung

Es gibt nur eine Kategorie, also ist jeder Vektor [1].

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.