Frage

Ich arbeite an einem Betrugserkennungssystem. In diesem Bereich erscheinen regelmäßig neue Betrugsfälle, sodass dem Modell weiterhin neue Funktionen hinzugefügt werden müssen.

Ich frage mich, was der beste Weg ist, um damit umzugehen (aus Sicht des Entwicklungsprozesses). Nur eine neue Funktion in den Feature-Vektor hinzuzufügen und den Klassifikator erneut zu übertragen, scheint ein naiver Ansatz zu sein, da zu viel Zeit für das Wiederieren der alten Merkmale aufgewendet wird.

Ich denke auf dem Weg, einen Klassifizierer für jede Funktion (oder einige verwandte Funktionen) auszubilden und dann die Ergebnisse dieser Klassifikatoren mit einem Gesamtklassifizierer zu kombinieren. Gibt es Nachteile dieses Ansatzes? Wie kann ich einen Algorithmus für den Gesamtklassifizierer auswählen?

War es hilfreich?

Lösung

In einer idealen Welt behalten Sie alle Ihre historischen Daten bei und führen tatsächlich ein neues Modell mit dem neuen Feature aus, das rückwirkend aus historischen Daten extrahiert wird. Ich würde argumentieren, dass die dafür ausgegebene Computerressource tatsächlich sehr nützlich ist. Ist es wirklich ein Problem?

Ja, es ist eine weithin anerkannte Technik, um ein Ensemble von Klassifikatoren aufzubauen und ihre Ergebnisse zu kombinieren. Sie können ein neues Modell parallel nur nach neuen Funktionen und durchschnittlich in seiner Vorhersage erstellen. Dies sollte einen Mehrwert verleihen, aber Sie werden niemals die Interaktion zwischen den neuen und alten Funktionen auf diese Weise erfassen, da sie niemals in einem Klassifikator zusammen erscheinen werden.

Andere Tipps

Hier ist eine Idee, die gerade aus heiterem Himmel ausgestiegen ist - was wäre, wenn Sie es verwenden Zufällige Subspace -Stichprobe (Wie tatsächlich schon vorgeschlagen Sean Owen), um jedes Mal ein paar neue Klassifizierer zu trainieren, wenn eine neue Funktion erscheint (unter Verwendung einer zufälligen Feature -Teilmenge, einschließlich der neuen Funktionen). Sie können diese Modelle auch auf einer Untergruppe von Proben trainieren, um die Trainingszeit zu sparen.

Auf diese Weise können Sie neue Klassifizierer haben, die möglicherweise sowohl neue als auch alte Funktionen übernehmen und gleichzeitig Ihre alten Klassifizierer behalten. Sie könnten sogar eine Kreuzvalidierungstechnik verwenden, um die Leistung jedes Klassifikators zu messen und die schlimmsten nach einer Weile abzutenden, um ein aufgeblähtes Modell zu vermeiden.

Was Sie beschreiben, fällt in die Kategorie von Konzeptdrift im maschinellen Lernen. Möglicherweise finden Sie interessante und umsetzbare Ideen darin Zusammenfassungspapier Und Sie werden eine Taxonomie der möglichen Ansätze in finden Diese Folien.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top