Wie gehe ich mit dem Unterschied zwischen der Verteilung des Testsatzes und des Trainingssatzes um?

23

Ich denke, eine Grundannahme des maschinellen Lernens oder der Parameterschätzung ist, dass die unsichtbaren Daten aus derselben Verteilung stammen wie der Trainingssatz. In einigen praktischen Fällen wird sich die Verteilung des Testsatzes jedoch fast von der des Trainingssatzes unterscheiden.

Sagen wir für ein umfangreiches Multiklassifizierungsproblem, bei dem versucht wird, Produktbeschreibungen in etwa 17.000 Klassen zu klassifizieren. Das Trainingsset wird stark verzerrte Klassenprioren haben, so dass einige Klassen möglicherweise viele Trainingsbeispiele haben, andere jedoch nur wenige. Angenommen, wir erhalten von einem Client ein Testset mit unbekannten Klassenbezeichnungen. Wir versuchen, jedes Produkt im Testset mithilfe des auf dem Trainingsset trainierten Klassifikators in eine der 17.000 Klassen zu klassifizieren. Das Test-Set hätte wahrscheinlich die Klassenverteilungen verzerrt, unterscheidet sich aber wahrscheinlich stark von dem des Trainings-Sets, da sie sich möglicherweise auf verschiedene Geschäftsbereiche beziehen. Wenn die beiden Klassenverteilungen sehr unterschiedlich sind, funktioniert der trainierte Klassifikator im Testsatz möglicherweise nicht richtig. Dies scheint besonders deutlich beim Naive Bayes-Klassifikator zu sein.

Gibt es eine grundsätzliche Möglichkeit, mit dem Unterschied zwischen dem Trainingssatz und einem bestimmten Testsatz für Wahrscheinlichkeitsklassifikatoren umzugehen? Ich habe davon gehört, dass "transduktive SVM" in SVM eine ähnliche Funktion hat. Gibt es ähnliche Techniken, um einen Klassifikator zu lernen, der für einen bestimmten Testsatz die beste Leistung erbringt? Dann können wir den Klassifikator für verschiedene gegebene Testsätze umbilden, wie dies in diesem praktischen Szenario zulässig ist.

Mode
quelle

Antworten:

17

Wenn der Unterschied nur in den relativen Klassenhäufigkeiten in den Trainings- und Testsätzen liegt, würde ich das in diesem Artikel vorgestellte EM-Verfahren empfehlen:

Marco Saerens, Patrice Latinne, Christine Decaestecker: Anpassen der Ausgaben eines Klassifikators an neue a priori-Wahrscheinlichkeiten: Ein einfaches Verfahren. Neuronale Berechnung 14 (1): 21-41 (2002) ( www )

Ich habe es selbst verwendet und festgestellt, dass es sehr gut funktioniert (Sie benötigen jedoch einen Klassifikator, der die Wahrscheinlichkeit einer Klassenzugehörigkeit ausgibt).

Wenn sich die Verteilung der Muster innerhalb jeder Klasse ändert, ist das Problem als "kovariate Verschiebung" bekannt und es gibt ein exzellentes Buch von Sugiyama und Kawanabe . Viele der Artikel dieser Gruppe sind online verfügbar, aber ich empfehle dringend, das Buch auch zu lesen, wenn Sie sich ein Exemplar besorgen können. Die Grundidee besteht darin, die Trainingsdaten entsprechend der Dichteunterschiede zwischen dem Trainingssatz und dem Testsatz zu gewichten (für die keine Etiketten erforderlich sind). Eine einfache Möglichkeit, die Gewichtung zu ermitteln, besteht darin, mithilfe der logistischen Regression vorherzusagen, ob ein Muster aus dem Trainingssatz oder dem Testsatz stammt. Der schwierige Teil ist die Auswahl der anzuwendenden Gewichtung.

Siehe auch den netten Blogpost von Alex Smola hier .

Dikran Beuteltier
quelle
Vielen Dank für die vielen hilfreichen Hinweise!
Fashandge
Kein Problem, diese Art von "Nicht-Standard" -Situationen sind wirklich interessant, und die kovariate Verschiebung ist ein besonders nützliches Forschungsgebiet.
Dikran Marsupial
1
Gut das zu wissen. Obwohl "Nicht-Standard", ist es in der Praxis realistisch.
Fashandge
1

Ich habe ein exzellentes Tutorial zur Domainanpassung gefunden, das dies genauer erklären könnte: http://sifaka.cs.uiuc.edu/jiang4/domain_adaptation/survey/da_survey.html Die eine Lösung, die hier nicht erwähnt wurde, basiert auf auf ADABOOST. Hier ist der Link zum Originalartikel: http://ftp.cse.ust.hk/~qyang/Docs/2007/tradaboost.pdf Die Grundidee ist, einige der neuen Testdaten zu verwenden, um das Lernen aus den Zugdaten zu aktualisieren Dieser Artikel ist der Tipp des iceburg über Transferlernen - wo Sie das, was Sie von einer Aufgabe wissen, auf eine andere anwenden.

rentreg
quelle
1
Könnten Sie einige wichtige Zusammenfassungspunkte aus dem ersten Lernprogramm einfügen, insbesondere für den Fall, dass der Link nicht mehr funktioniert oder sich die Position ändert? Wir haben hier ein Problem mit "Link Rot", bei dem sich der Wert einiger unserer älteren Antworten verringert hat, weil Links nicht mehr funktionieren.
Silverfish