Come gestire la differenza tra la distribuzione del set di test e il set di allenamento?


23

Penso che un'ipotesi di base dell'apprendimento automatico o della stima dei parametri sia che i dati invisibili provengano dalla stessa distribuzione dell'insieme di formazione. Tuttavia, in alcuni casi pratici, la distribuzione del set di test sarà quasi diversa dal set di training.

Supponiamo che si tratti di un problema di multi-classificazione su larga scala che tenta di classificare le descrizioni dei prodotti in circa 17.000 classi. Il set di addestramento avrà priori di classe molto distorti, in modo tale che alcune classi potrebbero avere molti esempi di addestramento, ma alcuni potrebbero averne solo alcuni. Supponiamo che ci venga fornito un set di test con etichette di classe sconosciute da un client. Cerchiamo di classificare ogni prodotto nel set di test in una delle 17.000 classi, utilizzando il classificatore addestrato sul set di addestramento. Il set di test avrebbe probabilmente distribuito le classi in modo distorto ma probabilmente molto diverso da quello del set di formazione, poiché potrebbero essere correlati a diverse aree di business. Se le distribuzioni delle due classi sono molto diverse, il classificatore addestrato potrebbe non funzionare bene nel set di test. Ciò sembra particolarmente ovvio con il classificatore Naive Bayes.

Esiste un modo di principio per gestire la differenza tra il set di addestramento e un determinato set di test per i classificatori probabilistici? Ho sentito che "SVM transduttiva" fa qualcosa di simile in SVM. Esistono tecniche simili per apprendere un classificatore che funziona meglio su un determinato set di test? Quindi possiamo riqualificare il classificatore per diversi set di test dati, come è consentito in questo scenario pratico.

Risposte:


17

Se la differenza sta solo nelle frequenze relative della classe nei set di addestramento e test, allora consiglierei la procedura EM introdotta in questo documento:

Marco Saerens, Patrice Latinne, Christine Decaestecker: adeguare gli output di un classificatore alle nuove probabilità a priori: una semplice procedura. Neural Computation 14 (1): 21-41 (2002) ( www )

L'ho usato da solo e ho trovato che funzionava molto bene (hai bisogno di un classificatore che produca una probabilità di appartenenza alla classe).

Se la distribuzione dei modelli all'interno di ogni classe cambia, allora il problema è noto come "spostamento della covariata" e c'è un libro eccellente di Sugiyama e Kawanabe . Molti dei lavori di questo gruppo sono disponibili online, ma consiglio vivamente di leggere anche il libro se si può ottenere una copia. L'idea di base è di ponderare i dati di allenamento in base alla differenza di densità tra il set di allenamento e il set di test (per i quali non sono richieste etichette). Un modo semplice per ottenere la ponderazione consiste nell'utilizzare la regressione logistica per prevedere se un modello viene tracciato dal set di allenamento o dal set di test. La parte difficile è nella scelta della ponderazione da applicare.

Vedi anche il bel post sul blog di Alex Smola qui .


Grazie mille per aver fornito così tanti suggerimenti utili!
Fashandge,

nessun problema, questo tipo di situazioni "non standard" sono davvero interessanti e il passaggio della covariata è un'area di ricerca particolarmente utile.
Dikran Marsupial,

1
Buono a sapersi. Sebbene "non standard", è realistico nella pratica.
Fashandge

1

Ho trovato un eccellente tutorial sull'adattamento del dominio che potrebbe aiutare a spiegarlo in modo più dettagliato: http://sifaka.cs.uiuc.edu/jiang4/domain_adaptation/survey/da_survey.html L'unica soluzione che non è stata menzionata qui è basata su ADABOOST. Ecco il link all'articolo originale: http://ftp.cse.ust.hk/~qyang/Docs/2007/tradaboost.pdf L'idea di base è quella di utilizzare alcuni dei nuovi dati di prova per aggiornare l'apprendimento dai dati del treno Questo articolo è la punta dell'iceburg sull'apprendimento del trasferimento, dove prendi ciò che sai da un compito e lo applichi a un altro.


1
Potresti includere alcuni punti chiave di riepilogo dal primo tutorial in particolare nel caso in cui il collegamento si interrompa o la sua posizione cambi? Abbiamo un problema con "link rot" qui in cui il valore di alcune delle nostre risposte precedenti è peggiorato a causa dell'interruzione del funzionamento dei link, quindi è bello se le risposte possono essere il più autosufficienti possibili
Silverfish

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.