Angenommen, in einer Regressionsanalyse in R habe ich eine faktortypunabhängige Variable mit 3 Ebenen in meinem Zugdatensatz. Im Testdatensatz hat dieselbe Faktorvariable jedoch 5 Ebenen. Daher kann ich die Antwortwerte für den Testdatensatz nicht vorhersagen. Was ist in diesem Fall zu tun?
9
Antworten:
Als allererster Gedanke bedeutet dies, dass zumindest Ihr Trainingssatz nicht repräsentativ für die Anwendungsdaten ist. Ob der Testsatz repräsentativ ist, ist eine Frage, über die Sie meiner Meinung nach sehr sorgfältig nachdenken sollten. In diesem Zusammenhang ist es auch wichtig herauszufinden, ob diese fehlenden Klassen ein Problem des zu kleinen Trainingssatzes darstellen oder ob dies ein allgemeines Merkmal des Problems / der Aufgabe / der Anwendung ist. Das heißt, ob ständig neue Klassen auftauchen, die noch nie zuvor angetroffen wurden.
Grundsätzlich sehe ich zwei Möglichkeiten, mit dieser Situation umzugehen:
Nehmen Sie an, dass der Trainingssatz mit Sicherheit nicht repräsentativ ist, und fordern Sie weitere Daten an, insbesondere Daten der fehlenden Klassen. Dies ist sinnvoll, wenn Sie zu dem Schluss kommen, dass das Problem im jeweiligen Trainingssatz und nicht in den allgemeinen Merkmalen der Anwendung liegt.
In dem Wissen, dass die Trainingsdaten keine Klassen enthalten, würde ich auf jeden Fall die Verwendung eines Ein-Klassen-Klassifikators in Betracht ziehen. Dh ein Klassifikator, der jede Klasse unabhängig von einer möglichen anderen Klasse behandelt. Idealerweise sollte ein Ein-Klassen-Klassifikator "unbekannte Klasse" für die Testfälle von Klassen zurückgeben, die nicht für das Training verfügbar waren. Für Ein-Klassen-Klassifikatoren ist es tatsächlich sinnvoll, diese "Ablehnung" von Fällen zu testen, die zu wirklich unbekannten Klassen gehören.
edit wrt @ gungs Kommentar: Ich gehe davon aus, dass die Zug- / Testaufteilung aus hoffentlich guten Gründen behoben ist .
quelle