Ich habe ein logistisches Regressionsmodell (Anpassung über glmnet in R mit elastischer Netzregulierung) und möchte den Unterschied zwischen echten und falschen Positiven maximieren. Zu diesem Zweck wurde das folgende Verfahren in den Sinn gebracht:
- Passen Sie das logistische Standardregressionsmodell an
- Identifizieren Sie alle positiven Vorhersagen unter Verwendung des Vorhersageschwellenwerts von 0,5
- Weisen Sie Gewicht 1 für positiv vorhergesagte Beobachtungen und 0 für alle anderen zu
- Fit gewichtetes logistisches Regressionsmodell
Was wären die Mängel bei diesem Ansatz? Was wäre der richtige Weg, um mit diesem Problem fortzufahren?
Der Grund für den Wunsch, den Unterschied zwischen der Anzahl der echten und falschen Negative zu maximieren, liegt im Design meiner Anwendung. Im Rahmen eines Klassenprojekts baue ich einen autonomen Teilnehmer auf einem Online-Marktplatz auf. Wenn mein Modell vorhersagt, dass es etwas kaufen und später zu einem höheren Preis verkaufen kann, gibt es ein Gebot ab. Ich möchte mich an die logistische Regression halten und binäre Ergebnisse (Gewinn, Verlust) basierend auf Fixkosten und Stückpreisinkrementen ausgeben (ich gewinne oder verliere bei jeder Transaktion den gleichen Betrag). Ein falsches Positiv tut mir weh, weil es bedeutet, dass ich etwas kaufe und es nicht zu einem höheren Preis verkaufen kann. Ein falsches Negativ tut mir jedoch nicht weh (nur in Bezug auf die Opportunitätskosten), weil es nur bedeutet, wenn ich nicht gekauft hätte, aber wenn ich es getan hätte, hätte ich Geld verdient. Ähnlich,
Ich stimme zu, dass der Grenzwert von 0,5 völlig willkürlich ist, und wenn ich das Modell ab Schritt 1 auf die Vorhersageschwelle optimiert habe, die den höchsten Unterschied zwischen wahr / falsch-positiv ergibt, stellt sich heraus, dass es näher bei 0,4 liegt. Ich denke, das liegt an der Verzerrung meiner Daten - das Verhältnis zwischen Negativen und Positiven beträgt ungefähr 1: 3.
Im Moment folge ich den folgenden Schritten:
- Daten in Training / Test aufteilen
- Passen Sie das Modell an das Training an, machen Sie Vorhersagen im Testsatz und berechnen Sie den Unterschied zwischen wahr / falsch-positiv
- Passen Sie das Modell vollständig an, machen Sie Vorhersagen im Testsatz und berechnen Sie den Unterschied zwischen wahr / falsch-positiv
Der Unterschied zwischen wahr / falsch-positiven Ergebnissen ist in Schritt 3 kleiner als in Schritt 2, obwohl der Trainingssatz eine Teilmenge des vollständigen Satzes ist. Da es mir egal ist, ob das Modell in # 3 mehr echte Negative und weniger falsche Negative hat, kann ich irgendetwas tun, ohne die Wahrscheinlichkeitsfunktion selbst zu ändern?