Codifica categoriale | Una codifica a caldo contro la codifica dei tag

Contenuti

Che cos'è la codifica One-Hot?? Quando dovrei usare la codifica One-Hot invece della codifica dei tag??

Queste sono le tipiche domande da intervista sulla scienza dei dati a cui ogni aspirante scienziato dei dati dovrebbe conoscere la risposta.. Dopotutto, Dovrai spesso scegliere tra i due in un progetto di data science!!

Le macchine capiscono i numeri, non testo. Dobbiamo convertire ogni categoria di testo in numeri affinché la macchina li elabori utilizzando equazioni matematiche. Ti sei mai chiesto come possiamo farlo? Quali sono i diversi modi?

codificatore one-hot-vs-label-5241870

È qui che entrano in gioco la codifica dei tag e la codifica One-Hot.. Discuteremo entrambi in questo articolo e capiremo la differenza tra loro..

Nota: Inizia il tuo viaggio nell'apprendimento automatico? Consiglio di prendere il nostro completo e popolare Corso di Machine Learning applicato!

Sommario

  1. Cos'è la codifica categorica?
  2. Diversi approcci alla codifica categorica
    1. Codifica etichetta
    2. Codifica One-Hot
  3. Quando utilizzare la codifica dei tag rispetto alla codifica a caldo?

Cos'è la codifica categorica?

Generalmente, qualsiasi set di dati strutturati include più colonne, una combinazione di variabili numeriche e categoriali. Una macchina può solo capire i numeri. Non riesco a capire il testo. Questo è essenzialmente anche il caso degli algoritmi di apprendimento automatico..

contenuto-esterno-duckduckgo-com_-2447174

Questo è principalmente il motivo per cui dobbiamo convertire le colonne categoriali in colonne numeriche affinché un algoritmo di apprendimento automatico le comprenda.. Questo processo si chiama codifica categorica.

La codifica categorica è un processo di conversione delle categorie in numeri.

Nella prossima sezione, Toccherò diversi modi di gestire le variabili categoriali.

Diversi approcci alla codifica categorica

Quindi, Come dovremmo gestire le variabili categoriali?? Si scopre che ci sono diversi modi per gestire le variabili categoriali. In questo articolo, Discuterò le due tecniche più utilizzate:

  • Codifica etichetta
  • Codifica One-Hot

Ora, vediamoli nel dettaglio.

Codifica etichetta

Codifica etichetta è una tecnica di codifica popolare per la gestione delle variabili categoriali. In questa tecnica, a ogni tag viene assegnato un numero intero univoco in ordine alfabetico.

Vediamo come implementare la codifica dei tag in Python utilizzando la libreria scikit-learn e comprendere anche le sfide con la codifica dei tag.

Importiamo prima le librerie e il set di dati necessari:

Produzione:

table1png-6213443

Comprendere i tipi di dati delle funzioni:

Produzione:

dati2-4674121

Come puoi vedere qui, la prima colonna, Nazione, è la caratteristica categorica poiché è rappresentata dalla tipo di dati oggetto e il resto sono caratteristiche numeriche, poiché sono rappresentati da int64.

Ora, implementiamo la codifica dei tag in python:

Produzione:

tabella2-1-4460058

Come puoi vedere qui, la codifica dei tag utilizza l'ordine alfabetico. Perciò, L'India è stata codificata con 0, EE. UU. Insieme a 2 e il Giappone con 1.

Sfide con la codifica dei tag

Nello scenario di cui sopra, i nomi dei paesi non hanno un ordine o un rango. Ma, quando la codifica dei tag è terminata, i nomi dei paesi sono classificati secondo gli alfabeti. A causa di ciò, c'è un'alta probabilità che il modello catturi la relazione tra paesi come l'India <Giappone <EE. UU.

Questo è qualcosa che non vogliamo!! Quindi, Come possiamo superare questo ostacolo? Ecco che nasce il concetto di Codifica One-Hot.

Codifica One-Hot

La codifica One-Hot è un'altra tecnica popolare per il trattamento delle variabili categoriali. Basta creare caratteristiche aggiuntive in base al numero di valori univoci nella caratteristica categoriale. Ogni valore univoco nella categoria verrà aggiunto come caratteristica.

La codifica One-Hot è il processo di creazione di variabili fittizie.

In questa tecnica di codifica, ogni categoria è rappresentata come un vettore one-hot. Vediamo come implementare la codifica one-hot in Python:

Produzione:

tabella3-1-4833612

Come puoi vedere qui, Aggiungere a 3 nuove funzioni come il paese contiene 3 valori unici: India, Giappone e USA. UU. In questa tecnica, abbiamo risolto il problema della classificazione poiché ogni categoria è rappresentata da un vettore binario.

Riesci a vedere eventuali inconvenienti con questo approccio?? Pensaci prima di continuare a leggere.

Sfide della codifica One-Hot: trampa variabile ficticia

La codifica One-Hot risulta in una trappola per variabili fittizie, poiché il risultato di una variabile può essere facilmente previsto con l'aiuto delle variabili rimanenti.

La trappola per variabili fittizie è uno scenario in cui le variabili sono altamente correlate tra loro.

La trappola della variabile fittizia porta al problema noto come multicollinearità. La multicollinearità si verifica quando esiste una dipendenza tra caratteristiche indipendenti. La multicollinearità è un problema serio nei modelli di apprendimento automatico come la regressione lineare e la regressione logistica.

Perciò, per superare il problema della multicollinearità, una delle variabili fittizie deve essere scartata. Qui dimostrerò praticamente come viene introdotto il problema della multicollinearità dopo aver eseguito la codifica one-hot.

Uno dei modi più comuni per verificare la multicollinearità è il fattore di inflazione della varianza (VIVACE):

  • VIF = 1, molto meno multicollinearità
  • VIVACE <5, multicollinearità moderata
  • VIVACE> 5, multicollinearità estrema (questo è quello che dobbiamo evitare)

Calcola punteggi VIF:

Produzione:

dum-3712283

All'uscita, possiamo vedere che le variabili fittizie create utilizzando la codifica one-hot hanno VIF sopra 5. Abbiamo un problema di multicollinearità.

Ora, eliminiamo una delle variabili dummy per risolvere il problema della multicollinearità:

Produzione:

dum2-1434462

Oh! VIF è diminuito. Abbiamo risolto il problema della multicollinearità. Ora, il set di dati è pronto per costruire il modello.

Ti consiglierei di leggere Approfondire l'analisi della regressione con ipotesi, grafici e soluzioni per comprendere le ipotesi di regressione lineare.

Abbiamo visto due tecniche diverse: Etichetta e codifica One-Hot per gestire le variabili categoriali. Nella prossima sezione, Parlerò di quando preferire la codifica dei tag rispetto alla codifica One-Hot.

Quando utilizzare la codifica dei tag rispetto alla codifica a caldo

Questa domanda di solito dipende dal tuo set di dati e dal modello che vuoi applicare. Ma ancora, alcuni punti da considerare prima di scegliere la giusta tecnica di codifica per il tuo modello:

Applichiamo la codifica One-Hot quando:

  1. La caratteristica categorica è non ordinale (come i paesi sopra)
  2. Il numero di caratteristiche categoriali è inferiore, in modo che la codifica one-hot possa essere applicata in modo efficace

Applichiamo la codifica dei tag quando:

  1. La caratteristica categorica è ordinale (come Jr. kg, Sr. kg, scuola elementare, Scuola superiore)
  2. Il numero di categorie è piuttosto elevato poiché la codifica one-hot può portare a un elevato consumo di memoria.

Note finali

Come citato da Jeff Hawkins:

"La chiave dell'intelligenza artificiale è sempre stata la rappresentazione".

La rappresentazione è stata la chiave per gli sviluppatori e di volta in volta stanno emergendo nuove tecniche per rappresentare meglio i dati e migliorare l'accuratezza e l'apprendimento del nostro modello..

Ti incoraggio a seguire il seguente corso per diventare un esperto di machine learning:

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.