Ich arbeite an einem Projekt zum maschinellen Lernen mit Daten, die bereits durch die Datenauswahl (stark) verzerrt sind.
Nehmen wir an, Sie haben einen Satz fest codierter Regeln. Wie erstellen Sie ein Modell für maschinelles Lernen, um es zu ersetzen, wenn alle Daten, die es verwenden kann, Daten sind, die bereits nach diesen Regeln gefiltert wurden?
Um die Dinge klarer zu machen, wäre das beste Beispiel die Kreditrisikobewertung : Die Aufgabe besteht darin, alle Kunden zu filtern, bei denen es wahrscheinlich ist, dass sie keine Zahlung leisten.
- Jetzt stammen die einzigen (gekennzeichneten) Daten, die Sie haben, von Kunden, die von den Regeln akzeptiert wurden, da Sie erst nach dem Akzeptieren sehen, ob jemand bezahlt oder nicht (offensichtlich). Sie wissen nicht, wie gut die Regeln sind und inwieweit sie sich auf die bezahlte bis nicht bezahlte Verteilung auswirken. Darüber hinaus haben Sie Daten von den Clients, die aufgrund des Regelsatzes abgelehnt wurden, unbeschriftet. Sie wissen also nicht, was mit diesen Kunden passiert wäre, wenn sie akzeptiert worden wären.
Zum Beispiel könnte eine der Regeln lauten: "Wenn das Alter des Kunden <18 Jahre ist, dann akzeptiere nicht"
Der Klassifizierer kann nicht lernen, wie er mit Clients umgeht, die nach diesen Regeln gefiltert wurden. Wie soll der Klassifikator hier Muster lernen?
Das Ignorieren dieses Problems würde dazu führen, dass das Modell Daten ausgesetzt wird, auf die es noch nie zuvor gestoßen ist. Grundsätzlich möchte ich hier den Wert von f (x) schätzen, wenn x außerhalb von [a, b] liegt.
quelle
Antworten:
Sie sind zu Recht besorgt - selbst die besten Modelle können spektakulär versagen, wenn die Verteilung der Daten außerhalb der Stichprobe erheblich von der Verteilung der Daten abweicht, auf die das Modell trainiert / getestet wurde.
Ich denke, das Beste, was Sie tun können, ist, ein Modell anhand der beschrifteten Daten zu trainieren, die Sie haben, aber versuchen, das Modell interpretierbar zu halten. Das heißt wohl nur, sich auf einfache Modelle zu beschränken. Dann könnten Sie versuchen, zu überlegen, wie die von Ihrem Modell erlernten Regeln mit den vorherigen Regeln interagieren könnten, um abzuschätzen, wie gut Ihr Modell mit der ungefilterten Grundgesamtheit funktioniert.
Angenommen, Ihr Modell stellt fest, dass in Ihrem beschrifteten Dataset die Ausfallwahrscheinlichkeit umso größer ist, je jünger der Client ist. Dann kann es sinnvoll sein anzunehmen, dass Ihr Modell gut funktioniert, wenn Sie den vorherigen Filter "Wenn das Alter des Kunden <18 Jahre ist, dann nicht akzeptieren" entfernt haben.
quelle
Ich bin mir nicht sicher, ob ich diese Frage vollständig verstehe, aber soweit ich sie verstehe, fragen Sie, wie Sie einen Klassifikator so trainieren, dass er auf Proben vorhersagt, die außerhalb des Bereichs der Proben liegen, die er bereits gesehen hat. Dies ist im Allgemeinen und meines Wissens nicht möglich. Die Theorie des maschinellen Lernens basiert auf der Idee der "empirischen Risikominimierung", bei der davon ausgegangen wird, dass Ihr Trainingssatz eine gute Annäherung an Ihre tatsächliche Verteilung auf Proben und Etiketten darstellt. Wenn diese Annahme verletzt wird, gibt es keine wirklichen Garantien.
Sie erwähnen unbeschriftete Daten - ich weiß nicht, ob dies Ihr Problem lösen würde, aber beim semi-überwachten Lernen gibt es viele Methoden, um Klassifikatoren zu lernen, die sowohl beschriftete als auch unbeschriftete Daten enthalten transduktive SVMs).
quelle
Ihre Regeln geben Ihnen möglicherweise eine Möglichkeit, eine Datenerweiterung durchzuführen . Kopieren Sie eine positive Probe, ändern Sie das Alter auf 17 und markieren Sie sie dann als negative Probe.
Dieses Verfahren ist nicht unbedingt für alle Datensätze trivial oder nützlich. Ich arbeite mit NLP-Daten und es ist schwierig, in diesem Bereich gute Ergebnisse zu erzielen. Wenn Sie beispielsweise andere altersabhängige Merkmale haben, kann dies zu unrealistischen Stichproben führen. Es bietet jedoch eine Möglichkeit, das System so etwas wie den Beispielen auszusetzen, die es nicht in den Datensatz geschafft haben.
quelle
Eine Sache, die in einer ähnlichen Situation für uns funktioniert hat, ist ein bisschen Verstärkung zu lernen (erkunden und ausnutzen). Zusätzlich zum regelbasierten Modell haben wir einen Explorer ausgeführt, der mit einer geringen Wahrscheinlichkeit die Reaktion des Modells verändert. In einigen Fällen, in denen das Modell einem 17-Jährigen keine Karte empfiehlt, hat der Explorer die des Modells umgeworfen entscheidung treffen und eine karte ausstellen. Aus diesen gelegentlichen Fällen würden Sie Lerndaten für ein zukünftiges Lernmodell generieren, anhand derer entschieden werden kann, Karten für 17-Jährige zu empfehlen, wenn die vom Explorer für 17-Jährige ausgegebenen Karten nicht standardmäßig ausgestellt wurden Erstellen Sie Systeme, die außerhalb der Vorurteile Ihres vorhandenen Modells funktionieren können.
quelle
Aus praktischer Sicht ist es schwierig / unvernünftig, ein Modell zu bitten, etwas über Fälle vorherzusagen, die im aktuellen System nicht möglich sind (kein kostenloses Mittagessen).
Eine Möglichkeit, dieses Problem zu umgehen, besteht darin, dem aktuellen (bereitgestellten) System eine Randomisierung hinzuzufügen, z. B. die Möglichkeit hinzuzufügen, die Regeln mit einer kleinen, kontrollierten Wahrscheinlichkeit (und damit vorhersehbaren Kosten) zu umgehen.
Sobald Sie es geschafft , die Menschen für das System verantwortlich zu überzeugen , das zu tun, dann können Sie Auswertungsmethoden wie verwenden politische off Importance Sampling „Was-wäre-wenn“ Fragen zu stellen. Was wäre beispielsweise das erwartete Kreditrisiko, wenn wir zulassen würden, dass Personen, die derzeit von den Regeln ausgeschlossen sind, einen Kredit aufnehmen. Man kann sogar die Auswirkung Ihres (voreingenommenen) Vorhersagemodells auf diese Population simulieren. Eine gute Referenz für diese Art von Methoden ist Bottous Artikel über kontrafaktisches Lernen und Denken.
quelle
Die klassische statistische Antwort lautet: Wenn der Auswahlprozess in den Daten enthalten ist und vom Modell beschrieben wird oder die Auswahl zufällig erfolgt, berücksichtigt das parametrische Modell ihn korrekt. Siehe Donald Rubin Paper Inference and Missing Data (1976). Sie müssen den Mechanismus der Datenauswahl in Ihr Modell aufnehmen. In diesem Bereich sollte parametrische Inferenz besser funktionieren als maschinelles Lernen.
quelle
Dies ist vergleichbar mit dem Dilemma nach dem Tod: Welches Verhältnis von guten und schlechten Taten (Daten) reicht aus, um anstelle der Hölle (Klasse) in den Himmel zu gelangen, nachdem man gestorben ist (Filter!). Hier dient der Tod als Filter, was zu fehlenden Werten für ein überwachtes Lernschema führt.
Ich möchte zwischen dem Problem mit fehlenden Werten und dem Problem mit voreingenommenen Daten unterscheiden. Es gibt keine voreingenommenen Daten, es gibt ein "voreingenommenes Modell", das diese Daten erklärt, aber die Daten selbst sind nicht voreingenommen, sie fehlen lediglich. Wenn die fehlenden Daten aussagekräftig mit beobachtbaren Daten korrelieren, ist es durchaus möglich, ein unvoreingenommenes Modell zu trainieren und gute Vorhersageergebnisse zu erzielen.
Wenn die fehlenden Daten nicht mit den beobachtbaren Daten korreliert sind, ist dies der Fall, dass Sie nicht wissen, was Sie nicht wissen. Sie können weder beaufsichtigte noch unbeaufsichtigte Lernmethoden anwenden. Das Problem liegt außerhalb der Bereiche der Datenwissenschaft.
Nehmen wir daher aus Gründen einer sinnvollen Lösung an, dass fehlende Daten mit beobachtbaren Daten korreliert sind. Wir werden diese Korrelation ausnutzen.
Es gibt mehrere Data Mining-Algorithmen, die versuchen, ein solches Problem zu lösen. Sie können 'Ensemble-Methoden' wie Bagging-n-Boosting oder 'Frequent Pattern Mining'-Algorithmen wie Apriori und FP-Growth ausprobieren. Sie können auch Methoden in Robust Statistics untersuchen.
quelle