Ich habe einen Datensatz mit 330 Stichproben und 27 Merkmalen für jede Stichprobe mit einem Binärklassenproblem für die logistische Regression.
Gemäß der "Regel wenn zehn" benötige ich mindestens 10 Ereignisse für jedes Feature, um eingeschlossen zu werden. Ich habe jedoch einen unausgeglichenen Datensatz mit 20% positiver Klasse und 80% negativer Klasse.
Das gibt mir nur 70 Ereignisse, so dass ungefähr nur 7/8 Funktionen in das Logistikmodell aufgenommen werden können.
Ich möchte alle Funktionen als Prädiktoren bewerten, ich möchte keine Funktionen von Hand auswählen.
Was würden Sie vorschlagen? Sollte ich alle möglichen 7 Funktionskombinationen machen? Sollte ich jedes Feature alleine mit einem Assoziationsmodell bewerten und dann nur die besten für ein endgültiges Modell auswählen?
Ich bin auch neugierig auf den Umgang mit kategorialen und kontinuierlichen Features. Kann ich sie mischen? Wenn ich eine kategoriale [0-1] und eine kontinuierliche [0-100] habe, sollte ich normalisieren?
Ich arbeite derzeit mit Python.
Vielen dank für Deine Hilfe!
Antworten:
Um Ihr Modell auf 7 Variablen zu reduzieren, können Sie einige Ansätze wählen:
Wie @ E_net4 kommentierte, wird Ihre fortlaufende Frage in einem anderen Beitrag behandelt.
quelle
Sie nehmen die "10er-Regel" zu ernst. Es ist eine sehr grobe Faustregel. Es ist nicht dazu gedacht, so verwendet zu werden, wie Sie es verwenden.
Es hört sich so an, als würden Sie denken: "Ich habe nur 70 positive Instanzen. Nach der 10er-Regel darf ich also nur 7 Funktionen verwenden. Wie wähle ich die 7 zu verwendenden Funktionen aus?"
Das bedeutet die 10er-Regel nicht. Es ist keine Regel, die angibt, wie viele Funktionen Sie verwenden dürfen. Die 10er-Regel ist beschreibend, nicht vorschreibend und eine ungefähre Richtlinie: Wenn die Anzahl der Instanzen viel weniger als das Zehnfache der Anzahl der Features beträgt, besteht ein besonders hohes Risiko einer Überanpassung, und Sie erhalten möglicherweise schlechte Ergebnisse.
Was solltest du also tun? Sie sollten sowieso das tun, was Sie tun würden: Regularisierung verwenden und Kreuzvalidierung verwenden, um die Hyperparameter für die Regularisierung auszuwählen. Außerdem ist es wichtig, ein Hold-Out-Test-Set zu haben, das Sie erst berühren, wenn Sie alles über den Klassifikator fertiggestellt haben, um eine Überanpassung und verzerrte Genauigkeitsschätzungen zu vermeiden.
Und wenn Sie mehr Daten erhalten können, würde das wirklich helfen.
Da Sie Klassen unausgeglichen haben, können Sie schließlich über Klassenungleichgewichte und Methoden für den Umgang damit lesen.
quelle