Labelcodering of one-hot-codering: wat is het verschil?


Vaak willen we bij machinaal lerencategorische variabelen omzetten in een soort numeriek formaat dat gemakkelijk door algoritmen kan worden gebruikt.

Er zijn twee veelgebruikte manieren om categorische variabelen naar numerieke variabelen te converteren:

1. Labelcodering: wijs aan elke categorische waarde een geheel getal toe op basis van alfabetische volgorde.

2. Eén Hot Encoding: maak nieuwe variabelen die de waarden 0 en 1 aannemen om de oorspronkelijke categorische waarden weer te geven.

Stel dat we bijvoorbeeld de volgende gegevensset hebben met twee variabelen en we willen de Team- variabele converteren van een categorische variabele naar een numerieke variabele:

In de volgende voorbeelden ziet u hoe u hiervoor zowel tagcodering als one-hot-codering kunt gebruiken.

Voorbeeld: Labelcodering gebruiken

Met behulp van label-codering zouden we elke unieke waarde in de kolom Team converteren naar een geheel getal op basis van alfabetische volgorde:

In dit voorbeeld kunnen we zien:

  • Elke “A”-waarde is omgezet naar 0 .
  • Elke “B”-waarde is omgezet naar 1 .
  • Elke “C”-waarde werd omgezet naar 2 .

We hebben de kolom Team met succes geconverteerd van een categorische variabele naar een numerieke variabele.

Voorbeeld: gebruik van een enkele one-hot-codering

Met behulp van one-hot encoding zouden we de Team- kolom converteren naar nieuwe variabelen die alleen 0- en 1-waarden bevatten:

Wanneer we deze aanpak gebruiken, maken we een nieuwe kolom voor elke unieke waarde in de oorspronkelijke categorische variabele.

De categorische variabele Team had bijvoorbeeld drie unieke waarden , dus hebben we drie nieuwe kolommen in de dataset gemaakt die allemaal waarden 0 of 1 bevatten.

Zo interpreteert u de waarden in de nieuwe kolommen:

  • De waarde van de nieuwe kolom Team_A is 1 als de oorspronkelijke waarde van de kolom Team A was. Anders is de waarde 0.
  • De waarde van de nieuwe kolom Team_B is 1 als de oorspronkelijke waarde van de kolom Team B was. Anders is de waarde 0.
  • De waarde van de nieuwe Team_C- kolom is 1 als de oorspronkelijke waarde van de Team- kolom C was. Anders is de waarde 0.

We hebben de Team- kolom met succes geconverteerd van één categorische variabele naar drie numerieke variabelen – ook wel ‘dummy’-variabelen genoemd.

Opmerking : wanneer u deze ‚dummy‘-variabelen gebruikt in een regressiemodel of ander machine learning-algoritme, zorg er dan voor dat u de dummy-variabelenval vermijdt.

Wanneer moet u tagcodering gebruiken versus one-hot-codering?

In de meeste scenario’s is one-hot-codering de beste manier om een categorische variabele naar een numerieke variabele te converteren, omdat bij labelcodering de indruk ontstaat dat er een rangorde tussen de waarden bestaat.

Beschouw bijvoorbeeld het geval waarin we labelcodering gebruikten om team naar een numerieke variabele te converteren:

Uit de door het label gecodeerde gegevens blijkt dat team C op de een of andere manier groter of groter is dan teams B en A, omdat het een hogere numerieke waarde heeft.

Dit is geen probleem als de oorspronkelijke categorische variabele feitelijk een ordinale variabele is met een natuurlijke ordening of rangschikking, maar in veel scenario’s is dit niet het geval.

Een van de nadelen van one-hot-codering is echter dat u net zoveel nieuwe variabelen moet maken als er unieke waarden zijn in de oorspronkelijke categorische variabele.

Dit betekent dat als uw categorische variabele 100 unieke waarden heeft, u 100 nieuwe variabelen moet maken wanneer u one-hot-codering gebruikt.

Afhankelijk van de grootte van uw gegevensset en het type variabelen waarmee u werkt, geeft u mogelijk de voorkeur aan one-hot-codering of label-codering.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u labelcodering in de praktijk kunt uitvoeren:

In de volgende tutorials wordt uitgelegd hoe u one-hot-codering in de praktijk kunt uitvoeren:

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert