Problemi con la codifica one-hot vs. codifica fittizia


11

Sono consapevole del fatto che le variabili categoriali con livelli k dovrebbero essere codificate con variabili k-1 nella codifica fittizia (analogamente per le variabili categoriali multivalore). Mi chiedevo quanto fosse un problema una codifica one-hot (ovvero usando invece le variabili k) rispetto alla codifica fittizia per diversi metodi di regressione, principalmente regressione lineare, regressione lineare penalizzata (Lasso, Ridge, ElasticNet), basata su alberi (foreste casuali , macchine per aumentare la pendenza).

So che nella regressione lineare si verificano problemi di multi-collinearità (anche se in pratica ho inserito la regressione lineare usando OHE senza problemi).

Tuttavia, la codifica fittizia deve essere utilizzata in tutti e quanto potrebbero essere errati i risultati se si utilizza la codifica one-hot?

Il mio focus è sulla previsione nei modelli di regressione con più variabili categoriali (ad alta cardinalità), quindi non mi interessano gli intervalli di confidenza.


10
Sostengo che non è corretto distinguere i due. Le variabili fittizie e le variabili one-hot sono sinonimi completi. Il primo termine è più vecchio e deriva dalle statistiche, mentre il secondo è più giovane e deriva dall'apprendimento automatico. Il terzo sinonimo più formale sono le variabili di contrasto di tipo indicatore . La domanda se utilizzare tutte le variabili non ridondanti k o k-1 nell'insieme di tali variabili elementari non ha nulla a che fare con quella terminologia e dipende dal tipo di analisi e dall'algoritmo o programma concreto.
ttnphns,

2
(cont.) Ad esempio, un software di regressione in genere non consente di immettere tutti i k a causa della singolarità, ma un software di modellazione lineare generale equivalente può consentirlo poiché utilizza un approccio pseudoinverso.
ttnphns,

1
Sono con @ttnphns, entrambi sono solo nomi orribili. Io preferisco full-codifica e la codifica leave-one-out .
Matthew Drury,

2
Scuse per la terminologia, questi sono i termini standard che ho visto usati dai professionisti (e libri orientati in modo simile). Il problema della collinearità appare solo nei modelli lineari (non aperti)? Non tutto il software smette di inserire tutte le k (ad es. Python's scikit-learn, correggimi se sbaglio)
user90772

@MatthewDrury Uno dei miei animali domestici sono termini / frasi duplicati che si insinuano nel campo dell'analisi statistica, come "codifica one-hot" e "test A / B". Tutti dovrebbero attenersi ai vecchi "codici fittizi" e ai "test delle ipotesi" per evitare confusione.
RobertF

Risposte:


7

kkμ=a0+a1X1+a2X2X2=1X1(β0,β1,β2)(β0+β2,β1β2,0)

La penalizzazione renderà identificabile il modello, ma la codifica ridondante influenzerà comunque i valori dei parametri in modi strani, dato quanto sopra.

L'effetto di una codifica ridondante su un albero decisionale (o insieme di alberi) sarà probabilmente quello di sovrappesare la caratteristica in questione rispetto ad altri, poiché è rappresentata con una variabile ridondante aggiuntiva e quindi verrà scelta più spesso di quanto altrimenti sarebbe per si divide.


1
Non credo che ci sia alcun motivo per includere un'intercettazione in un albero o in un insieme di alberi. Credo che sia una cosa particolare dei modelli di tipo lineare. Quindi, per i modelli basati su alberi, penso che l'idea giusta non sia l'intercettazione, la codifica completa.
Matthew Drury,

@MatthewDrury Penso che tu abbia ragione sull'intercettazione, ma anche allora, per un albero, la codifica ridondante sembra di utilità limitata. Ad esempio, se una funzione è binaria, qual è la differenza tra la divisione sulla prima classe e la divisione sulla seconda classe? Niente, per quanto ne so.
Kodiologo il

È vero, ma penso che mantenere la piena simmetria sia il modo più semplice per mantenere tutto ovviamente equo e interpretabile.
Matthew Drury,

1

Kodiologist ha avuto un'ottima risposta (+1). I metodi di codifica one-hot vs. codifica fittizia sono gli stessi, in termini di matrice di progettazione sono nello stesso spazio, con basi diverse. (sebbene la codifica one-hot abbia più colonne)

Pertanto, se ti stai concentrando sull'accuratezza anziché sull'interpretazione. Due metodi di codifica non fanno differenza.


1
Per essere pedanti, la versione one-hot non è una base (perché è linearmente dipendente); si estende solo nello stesso spazio. Ma sei sicuro che la codifica non faccia alcuna differenza per l'accuratezza? In particolare nel caso della regressione penalizzata, penso che il modello selezionato finale farà previsioni diverse.
Kodiologo il

@Kodiologist grazie per avermi corretto sulla questione di base.
Haitao Du

@Kodiologist perché la precisione sarà diversa nel metodo lineare regolarizzato?
Haitao Du

4
Nella regressione regolarizzata, dovresti sempre usare una codifica completa (cioè non tralasciare, non riesco a mantenere i nomi che hai usato direttamente e preferisco non usarli da solo). Questo perché l'intercettazione non è penalizzata, quindi se stai inferendo l'effetto di un livello come non parte dell'intercettazione, è difficile dire che stai penalizzando tutti i livelli allo stesso modo. Invece, includi sempre tutti i livelli, quindi ognuno è simmetrico rispetto alla penalità.
Matthew Drury,

1
@Matthew Drury, grazie per questo ultimo commento. Potresti per favore espanderlo in una risposta? Quindi è solo per la semplice regressione lineare in cui è necessaria la codifica fittizia?
user90772

1

Sento la migliore risposta a questa domanda è sepolto nei commenti di @MatthewDrury, in cui si afferma che non v'è una differenza e che si dovrebbe utilizzare la colonna apparentemente ridondante in qualsiasi approccio regolarizzata. @ Il ragionamento di MatthewDrury è

[Nella regressione regolarizzata], l'intercettazione non è penalizzata, quindi se si inferisce l'effetto di un livello in quanto non parte dell'intercettazione, è difficile dire che stai penalizzando tutti i livelli allo stesso modo. Invece, includi sempre tutti i livelli, quindi ognuno è simmetrico rispetto alla penalità.

Penso che abbia ragione.


Quindi dovresti una variabile di codifica a caldo con klivelli o con k-1livelli a seconda della situazione. Oltre alla tua dichiarazione (regolarizzata / non regolarizzata), ci sarebbero delle linee guida su cosa fare in tutti i casi?
Dan Chaltiel,

La mia regola è se non c'è regolarizzazione, come nella classica ANOVA, usa i livelli k-1. Se c'è regolarizzazione, come nei metodi bayesiani o regressione con regolarizzazione L2, usa i livelli k.
Ben Ogorek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.