Label Encoder vs One Hot Encoder in Machine Learning [2022]

Pubblicato: 2021-01-04

I modelli di machine learning distribuiti in numerose applicazioni richiedono spesso una serie di conversioni dai dati categoriali o dai fuochi di testo alla descrizione numerica. Per soddisfare le esigenze di conversione vengono utilizzati due tipi di codificatori, vale a dire codificatori di etichette e codificatori a caldo .

La parte difficile è quando scegliere il codificatore di etichette e quando scegliere un codificatore caldo . La scelta della decisione influisce sul modello e costituisce anche la base di molte domande generalmente poste ai data scientist e agli appassionati di machine learning.

La scelta della codifica influisce in modo vivido sul quoziente di precisione del modello e, quindi, può portare a una soluzione ottimizzata. Per capire la differenza che farà sui modelli, dobbiamo comprendere i codificatori di etichette e un codificatore a caldo .

Attraverso un grafico della conoscenza in Intelligenza Artificiale e Machine Learning, un aspetto che la maggior parte di noi riconoscerebbe è che la maggior parte degli algoritmi lavora ragionevolmente con input numerici. Di conseguenza, la sfida centrale affrontata da un analista è quella di trasformare i dati testuali in dati numerici e comunque fare in modo che un modello formuli un punto di essi.

Sommario

Codificatore di etichette

Label Encoding cita la trasmogrificazione delle etichette nel modulo numerico per trasformarlo in un modulo leggibile dalla macchina. Gli algoritmi di apprendimento automatico possono quindi determinare in modo corretto come gestire queste etichette. È una misura cruciale di pre-elaborazione durante il set di dati integrato nell'apprendimento supervisionato.

Ad esempio, abbiamo un set di dati che ha un confronto di una certa qualità in una determinata abilità sotto forma di un confronto superlativo tra fratelli. Il set di dati è buono, migliore, migliore. Dopo aver applicato un codificatore di etichette, a ciascuna qualità verrà assegnata rispettivamente un'etichetta 0,1,2. L'etichetta per la buona qualità è 0, per la migliore l'etichetta è 1 e per la migliore qualità l'etichetta è 2.

L'esempio sopra menzionato era fondamentale in termini di set di dati. La conversione può essere di qualsiasi set di dati sia esso di altezza, età, colore degli occhi, tipo di iride, sintomi, ecc.

La codifica delle etichette in Python può essere implementata utilizzando la libreria Sklearn. Sklearn fornisce un metodo molto efficace per codificare le categorie di caratteristiche categoriali in valori numerici. Il codificatore di etichette codifica le etichette con un credito compreso tra 0 e n-1 classi dove n è il numero di etichette diverse. Se un'etichetta ribadisce attribuisce l'esatto merito a quanto nominato prima.

E per rinnovare questo tipo di dati di testo categoriali in dati che possono essere compresi dai dati numerici del modello, utilizziamo la classe Label Encoder. Abbiamo bisogno di etichettare codificare la colonna iniziale, importare la classe LabelEncoder dalla libreria sklearn, equipaggiare e rinnovare la sezione iniziale dei dati, e quindi riabilitare i dati di testo che si verificano con i nuovi dati codificati.

Questa è una breve descrizione della codifica delle etichette. Basandosi sui dati, la codifica delle etichette avvia un nuovo dilemma. Ad esempio, abbiamo codificato un mucchio di nomi di regni in dati numerici. Si tratta di dati interamente categoriali e non vi è alcuna associazione, in alcun modo, tra le righe.

Per risolvere questo ostacolo esiste la necessità di adottare una nuova tecnica di codifica. Il dilemma qui è poiché ci sono diverse quantità in una sezione simile, il prototipo giudicherà erroneamente i dati per essere nello stesso modo di ordine, 0 < 1 < 2. Ma questo non è affatto il problema. Per mitigare questa difficoltà, utilizziamo un codificatore caldo.

Da leggere: idee per progetti di apprendimento automatico

Un codificatore caldo

One-Hot Encoding è un altro protocollo importante per la gestione delle variabili categoriali. Stabilisce unicamente le seguenti caratteristiche stabilite sul volume di valori distinti nella caratteristica categoriale. Interi valori distinti nella classificazione verranno ingranditi come schema. Una codifica a caldo prende una sezione che ha dati categoriali, che ha un'etichetta esistente codificata e quindi divide la sezione in numerose sezioni. I volumi vengono ricostruiti per 1 e 0, contando su quale sezione ha quale valore.

Il codificatore one-hot non approva gli array 1D. L'input dovrebbe essere sempre un array 2D.

I dati ratificati al codificatore non devono includere stringhe.

Gran parte degli algoritmi di apprendimento automatico prevalenti non possono essere vincolati a dati categoriali. Piuttosto, i dati categoriali devono essere modificati in dati numerici. La codifica one-hot è una delle strategie utilizzate per condurre questa conversione. Questa tecnica viene utilizzata principalmente laddove i metodi di deep learning devono essere correlati a problemi di successione sequenziale.

La codifica one-hot è praticamente la manifestazione di variabili categoriali come vettori binari. I valori categoriali sono inizialmente mappati su valori interi. Ogni valore intero è esemplificato come un vettore binario composto da tutti 0.

Ma cosa accadrà se abbiamo più file da gestire?

Scikit-learn è suscettibile alla disposizione delle sezioni, quindi se il set di dati di addestramento e i set di dati di test ottengono contraddizioni, i risultati saranno un'assurdità. Ciò potrebbe verificarsi se una categoria avesse diversi numeri di valori nei dati di addestramento rispetto ai dati di test.

Assicurati che i dati del test siano codificati in modo identico ai dati di addestramento con il comando align. Il comando align garantisce che le sezioni appaiano nel decreto esatto in entrambi i set di dati.

Leggi: Modelli di apprendimento automatico

Conclusione

Il globo è pieno di dati categoriali. Un analista sarà un data scientist molto più vantaggioso se sai come utilizzare questi dati. Quindi, chiunque cerchi di lavorare su tali modelli deve conoscere bene l'uso del codificatore di etichette e di un codificatore caldo nell'apprendimento automatico.

Se sei interessato a saperne di più sull'apprendimento automatico, dai un'occhiata al Diploma PG di IIIT-B e upGrad in Machine Learning e AI, progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, IIIT- B Status di Alumni, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Quali algoritmi richiedono l'uso di una codifica a caldo?

Un processo di codifica a caldo viene utilizzato per gestire le variabili categoriali. Questo processo converte le variabili categoriali per semplificare l'utilizzo delle variabili da parte degli algoritmi di apprendimento automatico per una migliore previsione. Gli algoritmi che accettano solo valori numerici come input richiedono un solo processo di codifica a caldo per convertire le variabili categoriali. Alcuni di questi algoritmi di apprendimento automatico sono la regressione logistica, la regressione lineare, la macchina vettoriale di supporto, ecc. Tuttavia, alcuni algoritmi, come Markov Chain, Naive Bayes, ecc., non richiedono la codifica perché sono in grado di gestire distribuzioni discrete congiunte.

Quando è preferibile utilizzare una codifica a caldo nel deep learning?

One Hot Encoding è un potente approccio di preelaborazione e trasformazione dei dati che aiuta i modelli ML a comprendere i dati forniti. Fondamentalmente, una codifica a caldo viene utilizzata quando l'algoritmo ML non è in grado di lavorare con variabili categoriali, quindi una codifica a caldo le converte in una forma adatta. L'uso di una codifica a caldo è il più preferito quando le caratteristiche delle variabili categoriali da convertire non sono ordinali. Inoltre, una codifica a caldo funziona in modo efficace quando il numero di caratteristiche categoriali presenti nel set di dati specificato è molto inferiore.

Cosa si intende con il termine Trappola Variabile Dummy?

La trappola variabile fittizia è uno dei problemi affrontati dal processo di codifica one-hot. Quando un set di dati categoriale ha variabili fortemente collegate, ciò si verifica. Di conseguenza, il risultato di una variabile può essere facilmente anticipato utilizzando le restanti variabili quando viene utilizzata la procedura di codifica a caldo. Come risultato della Dummy Variable Trap, sorge un altro problema noto come multicollinearità.