Ein linearer Regressions- / Klassifikator kann bei richtiger Pflege absolut überpasst werden.
5000
set.seed(154)
N <- 5000
y <- rbinom(N, 1, .5)
5000500
N.classes <- 500
rand.class <- factor(sample(1:N.classes, N, replace=TRUE))
Es sollte keine Beziehung zwischen unseren Flips y
und unseren Zufallsklassen geben rand.class
, sie wurden völlig unabhängig bestimmt.
Wenn wir jedoch versuchen, den Zufallswechsel mit der Zufallsklasse mithilfe der logistischen Regression (einem linearen Klassifikator) vorherzusagen, wird davon ausgegangen, dass eine Beziehung besteht
M <- glm(y ~ rand.class, family="binomial")
hist(coef(M), breaks=50)
Der wahre Wert jedes dieser Koeffizienten ist Null. Aber wie Sie sehen, haben wir eine ziemliche Verbreitung. Dieser lineare Klassifikator ist mit Sicherheit eine Überanpassung.
−1515y == 1
y == 0
15
"Überanpassung" scheint nicht formal definiert zu sein. Warum das?
Überanpassung kann am besten im Rahmen einer verstanden Klasse von Modellen , die eine gewisse Komplexität Parameter hat. In diesem Fall könnte man sagen, dass ein Modell überanpasst, wenn die Komplexität geringfügig verringert wird, was zu einer besseren Erwartung der Stichprobenleistung führt.
Es wäre sehr schwierig, das Konzept modellunabhängig genau zu definieren. Ein einzelnes Modell ist einfach fit. Sie benötigen etwas, mit dem Sie es vergleichen können, damit es über- oder unterpasst. In meinem obigen Beispiel war dieser Vergleich mit der Wahrheit, aber normalerweise kennen Sie die Wahrheit nicht, daher das Modell!
Würde ein Abstandsmaß zwischen Training und Testsatzleistung eine solche Formalisierung nicht ermöglichen?
Es gibt ein solches Konzept, es heißt Optimismus. Es ist definiert durch:
ω=Etest−Etrain
E
Es kommt jedoch nicht ganz auf das Wesentliche einer Überanpassung an, da die Leistung eines Testsatzes erheblich schlechter sein kann als die des Zuges, obwohl ein Modell mit höherer Komplexität beide verringert .