Ich würde Ihnen dieses Verfahren nicht empfehlen. Meine Empfehlung lautet: Dieses Projekt abbrechen. Gib einfach auf und geh weg. Sie haben keine Hoffnung, dass dies funktioniert.
Quelle für Bild
Abgesehen von den Standardproblemen bei der schrittweisen Auswahl (siehe hier ) haben Sie in Ihrem Fall sehr wahrscheinlich perfekte Vorhersagen aufgrund der Trennung in einem so hochdimensionalen Raum.
Ich habe keine genauen Angaben zu Ihrer Situation, aber Sie geben an, dass Sie "nur wenige Zehnerproben" haben. Lassen Sie uns gemeinnützig sein und sagen, Sie haben 90. Sie sagen weiter, Sie haben "mehrere tausend Funktionen". Stellen wir uns vor, Sie haben "nur" 2.000. Nehmen wir der Einfachheit halber an, dass alle Ihre Funktionen binär sind. Sie "glauben, dass die Klassenbezeichnung mit nur wenigen Features genau vorhergesagt werden kann", nehmen wir an, dass Sie nach Sätzen mit maximal 9 Features suchen. Zuletzt stellen wir uns vor, dass die Beziehung deterministisch ist, sodass die wahre Beziehung in Ihren Daten immer perfekt vorhanden ist. (Wir können diese Zahlen und Annahmen ändern, aber das sollte das Problem nur verschlimmern.) Nun, Wie gut könnten Sie diese Beziehung unter diesen (großzügigen) Bedingungen wiederherstellen? Das heißt, wie oft würde der richtige Satz der einzige sein, der eine perfekte Genauigkeit ergibt? Oder anders ausgedrückt, wie viele Sätze von neun Features passen auch zufällig alleine?
Einige (zu) einfache Berechnungen und Simulationen sollten Hinweise auf diese Frage liefern. Erstens, mit 9 Variablen, von denen jede 0 oder 1 sein kann, könnte eine Beobachtung Muster zeigen , aber Sie werden nur 90 Beobachtungen haben. Somit ist es durchaus möglich, dass für eine gegebene Menge von 9 Binärvariablen jede Beobachtung eine andere Menge von Prädiktorwerten aufweist - es gibt keine Wiederholungen. Ohne Wiederholungen mit denselben Prädiktorwerten, bei denen einige y = 0 und einige y = 1 haben, haben Sie eine vollständige Trennung, und eine perfekte Vorhersage jeder Beobachtung ist möglich. 29=512
Unten habe ich eine Simulation (in R codiert), um zu sehen, wie oft Sie möglicherweise keine Muster von x-Werten mit sowohl 0 als auch 1 haben. Die Art und Weise, wie es funktioniert, ist, dass ich eine Reihe von Zahlen von 1 bis 512 erhalte, die die möglichen Muster darstellen, und sehe, ob eines der Muster in der ersten 45 (das können die Nullen sein) mit einem der Muster in der zweiten 45 übereinstimmt (das könnte die 1 sein). Dies setzt voraus, dass Sie über perfekt ausgewogene Antwortdaten verfügen, die Ihnen den bestmöglichen Schutz gegen dieses Problem bieten. Beachten Sie, dass einige replizierte x-Vektoren mit unterschiedlichen y-Werten Sie nicht wirklich aus dem Wald bringen, sondern nur bedeuten, dass Sie nicht jede einzelne Beobachtung in Ihrem Datensatz perfekt vorhersagen können, was der sehr strenge Standard I ist benutze hier.
set.seed(7938) # this makes the simulation exactly reproducible
my.fun = function(){
x = sample.int(512, size=90, replace=TRUE)
return(sum(x[1:45]%in%x[46:90])==0)
}
n.unique = replicate(10000, my.fun())
mean(n.unique) # [1] 0.0181
Die Simulation schlägt vor, dass Sie dieses Problem mit ungefähr 1,8% der Sätze von 9 x-Variablen haben würden. Wie viele 9er-Sets gibt es? Streng genommen wäre das (da wir festgelegt haben, dass die wahren 9 deterministischen Kausalvariablen in Ihrer Menge sind). Viele dieser Sätze werden sich jedoch überlappen. Es wird nicht überlappende 9er-Sätze in einer bestimmten Partition Ihrer Variablen geben (wobei viele solcher Partitionen möglich sind). Daher können wir innerhalb einer bestimmten Partition Sätze von 9 x-Variablen erwarten , die jede Beobachtung in Ihrem Datensatz perfekt vorhersagen. 1991 / 9 ≈ 221 221 × 0,018 ≈ 41991 choose 9=1.3×10241991/9≈221221×0.018≈4
Beachten Sie, dass diese Ergebnisse nur für Fälle gelten, in denen Sie einen relativ größeren Datensatz haben (innerhalb der "Zehner"), eine relativ kleinere Anzahl von Variablen (innerhalb der "Tausender"), und nur nach Fällen suchen, in denen jede einzelne Beobachtung perfekt vorhergesagt werden kann ( Es wird noch viele weitere Sets geben, die nahezu perfekt sind. Es ist unwahrscheinlich, dass Ihr tatsächlicher Fall "so gut" ausfällt. Darüber hinaus haben wir festgelegt, dass die Beziehung vollkommen deterministisch ist. Was würde passieren, wenn in der Beziehung zufälliges Rauschen auftritt? In diesem Fall haben Sie immer noch ~ 4 (null) Sätze, die Ihre Daten perfekt vorhersagen, aber der richtige Satz ist möglicherweise nicht darunter .
Tl; dr , der grundlegende Punkt hier ist, dass Ihr Variablensatz viel zu groß / hochdimensional und Ihre Datenmenge viel zu klein ist, als dass irgendetwas möglich wäre. Wenn es wirklich stimmt, dass Sie "Dutzende" von Samples, "Tausende" von Variablen und absolut keine Ahnung haben, welche Variablen richtig sein könnten, haben Sie keine Hoffnung, mit irgendeiner Prozedur irgendwohin zu gelangen. Mach noch etwas mit deiner Zeit.