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.