Angenommen, ich möchte vorhersagen, ob ein Projekt rentabel ist oder nicht. In meinen Beispieldaten ist die Antwortvariable tatsächlich eine kontinuierliche Variable: der $ Gewinn / Verlust des Projekts.
Sollte ich eine Klassifizierungstechnik verwenden, da mein letztendliches Ziel nur eine binäre Klassifizierung ist (profitables Projekt oder unrentables Projekt)? Oder sollte ich die Regression verwenden, damit ich die zusätzlichen Informationen, die eine kontinuierliche Antwortvariable liefert, nicht wegwerfe?
quelle
Vladimir Vapnik (Miterfinder der Support Vector Machine und führender Theoretiker des rechnergestützten Lernens) befürwortet, immer zu versuchen, das Problem direkt zu lösen, anstatt ein allgemeineres Problem zu lösen und dann einige der von der Lösung bereitgestellten Informationen zu verwerfen. Ich bin im Allgemeinen damit einverstanden, daher würde ich einen Klassifizierungsansatz für das derzeit gestellte Problem vorschlagen. Der Grund dafür ist, dass wir, wenn wir nur daran interessiert sind, ein Projekt als rentabel oder nicht rentabel einzustufen, wirklich nur an der Region interessiert sind, in der die Rentabilität bei Null liegt. Wenn wir ein Klassifizierungsmodell bilden, konzentrieren wir dort unsere Modellierungsressourcen. Wenn wir einen Regressionsansatz verfolgen, verschwenden wir möglicherweise Modellierungsressourcen, um kleine Leistungsverbesserungen für Projekte zu erzielen, die entweder sehr rentabel oder unrentabel sind, möglicherweise auf Kosten der Leistungsverbesserung von Grenzprojekten.
Der Grund, warum ich "wie derzeit gestellt" sagte, ist, dass nur sehr wenige Probleme tatsächlich eine einfache, harte binäre Klassifizierung beinhalten (optische Zeichenerkennung wäre wahrscheinlich eine). Im Allgemeinen haben verschiedene Arten der Fehlklassifizierung unterschiedliche Kosten, oder die Häufigkeit von Betriebsklassen kann unbekannt oder variabel sein usw. In solchen Fällen ist es besser, einen probabilistischen Klassifikator wie die logistische Regression zu habeneher als eine SVM. Wenn mir das für eine finanzielle Anwendung erscheint, werden wir es besser machen, wenn wir die Wahrscheinlichkeit kennen, ob das Projekt rentabel sein wird und wie rentabel oder auf andere Weise es wahrscheinlich ist. Wir sind möglicherweise bereit, ein Projekt zu finanzieren, das eine geringe Rentabilitätschance hat, aber im Erfolgsfall massiv profitabel ist, aber kein Projekt, dessen Erfolg fast garantiert ist, das aber eine so geringe Gewinnspanne aufweist, wie wir es wären Besser einfach das Geld auf ein Sparkonto stecken.
Frank und Omri374 haben also beide recht! (+1; o)
BEARBEITEN: Um zu verdeutlichen, warum Regression möglicherweise nicht immer ein guter Ansatz zur Lösung eines Klassifizierungsproblems ist, finden Sie hier ein Beispiel. Angenommen, wir haben drei Projekte mit Rentabilität , und für jedes Projekt haben wir eine erklärende Variable, von der wir hoffen, dass sie die Rentabilität anzeigt, → x = ( 1 , 2) , 10 ) . Wenn wir einen Regressionsansatz (mit Offset) wählen , erhalten wir Regressionskoeffizienten β 0 = - 800,8288y⃗ = ( - $ 1000 , + $ 1 , + $ 1000 ) x⃗ = ( 1 , 2 , 10 ) β0= - 800,8288 und (vorausgesetzt, ich habe die Summen richtig gemacht!). Das Modell sagt dann die Projekte als Nachgeben Gewinne y 1 ≈ - $ 616 , y 2 ≈ - $ 431 und y 3 ≈ $ 1.048 . Beachten Sie, dass das zweite Projekt fälschlicherweise als unrentabel vorhergesagt wird. Wenn wir andererseits einen Klassifizierungsansatz verfolgen und stattdessen auf → t = 2 ∗ ( y > = 0 ) zurückgehen -β1= 184,8836 y^1≈ - $ 616 y^2≈ - $ 431 y^3≈ $ 1048 , erhalten wir Regressionskoeffizienten ß 0 = - 0,2603 und β 1 = 0,1370 , die Partituren der drei Projekte wie folgt: t 1 = - 0,1233 , t 2 = 0,0137 und t 3 = 1,1096 . Ein Klassifizierungsansatz klassifiziert Projekt 1 korrekt als unrentabel und die anderen beiden als rentabel.t⃗ = 2 ∗ ( y> = 0 ) - 1 β0= - 0,2603 β1= 0,1370 t^1= - 0,1233 t^2= 0,0137 t^3= 1,1096
Der Grund dafür ist, dass ein Regressionsansatz gleichermaßen bemüht ist, die Summe der quadratischen Fehler für jeden der Datenpunkte zu minimieren. In diesem Fall wird eine niedrigere SSE erhalten, indem Projekt zwei auf die falsche Seite der Entscheidungsgrenze fallen gelassen wird, um geringere Fehler an den beiden anderen Punkten zu erzielen.
Frank sagt also zu Recht, dass ein Regressionsansatz in der Praxis wahrscheinlich ein guter Ansatz ist, aber wenn die Klassifizierung tatsächlich das ultimative Ziel ist, gibt es Situationen, in denen er schlecht abschneiden kann und ein Klassifizierungsansatz besser abschneidet.
quelle
Nach dem Lesen der Kommentare denke ich, dass die folgende Unterscheidung in der Diskussion fehlt:
So modellieren Sie das Problem
Dies hat nichts mit der zu verwendenden Technik zu tun. Es ist die Frage, was die Ein- und Ausgänge sind und wie das Ergebnis zu bewerten ist.
Wenn Sie sich wirklich nur darum kümmern, ob unsere Projekte rentabel sind oder nicht, und der Betrag, um den dies der Fall ist, absolut irrelevant ist, sollten Sie dies als Klassifizierungsproblem modellieren. Das heißt, Sie optimieren letztendlich für die erwartete Rate der korrekten Klassifizierung (Genauigkeit) oder AUC. Was diese Optimierung bedeutet, hängt davon ab, welche Technik Sie verwenden.
Alle Fragen der Modellauswahl und der Suchalgorithmen können heuristisch angegangen werden (unter Verwendung der Argumente, die in den anderen Antworten und Kommentaren dargelegt wurden), aber der ultimative Beweis für den Pudding ist das Essen. Unabhängig davon, welches Modell Sie haben, werden Sie durch Kreuzvalidierungstests auf Genauigkeit prüfen, sodass Sie die Genauigkeit optimieren.
So lösen Sie das Problem
Sie können jede Methode verwenden, die zum Klassifizierungsparadigma passt. Da Sie eine kontinuierliche y-Variable haben, können Sie eine Regression durchführen und in eine binäre Klassifizierung übersetzen. Dies wird wahrscheinlich gut funktionieren. Es gibt jedoch keine Garantie dafür, dass das optimale Regressionsmodell (durch Summe der quadratischen Fehler oder der maximalen Wahrscheinlichkeit oder was auch immer) auch das optimale Klassifizierungsmodell (durch Genauigkeit oder AUC) liefert.
quelle
Ein Klassifizierungsmodell versucht im Allgemeinen, das Vorzeichen (Fehler in Bezug auf die Klasse) und nicht die Verzerrung zu minimieren. Bei vielen Ausreißern würde ich zum Beispiel lieber ein Klassifizierungsmodell als ein Regressionsmodell verwenden.
quelle
Ich würde das Problem als das Minimieren von Verlusten bezeichnen. Die Frage ist, was ist Ihre wahre Verlustfunktion? Kostet eine falsche Vorhersage der Rentabilität, wenn das Projekt 1 USD verloren hat, genauso viel wie eine Vorhersage der Rentabilität, wenn das Projekt 1000 USD verloren hat ? In diesem Fall ist Ihre Verlustfunktion wirklich binär, und Sie sollten das Ganze besser als Klassifizierungsproblem betrachten. Die Regressionsfunktion ist möglicherweise immer noch einer Ihrer Kandidatenklassifizierer, aber Sie sollten sie eher mit der diskreten Verlustfunktion als mit der kontinuierlichen optimieren. Wenn Sie eine kompliziertere Definition von Verlust haben, sollten Sie versuchen, diese zu formalisieren und zu sehen, was Sie erhalten, wenn Sie das Derivat nehmen.
Interessanterweise optimieren viele Methoden des maschinellen Lernens tatsächlich eine diskrete Verlustfunktion, indem sie sich einer kontinuierlichen annähern, da eine diskrete Verlustfunktion schlechte Gradienten für die Optimierung liefert. Sie können es also als Klassifizierungsproblem betrachten, da dies Ihre Verlustfunktion ist, aber dann diese Verlustfunktion mit der ursprünglichen kontinuierlichen Funktion approximieren.
quelle