Umgang mit einem regelmäßig wachsenden Funktionsumfang


10

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

Ich frage mich, wie ich am besten damit umgehen kann (aus Sicht des Entwicklungsprozesses). Das Hinzufügen eines neuen Features zum Feature-Vektor und das erneute Training des Klassifikators scheint ein naiver Ansatz zu sein, da zu viel Zeit für das erneute Erlernen der alten Features aufgewendet wird.

Ich denke darüber nach, einen Klassifikator für jedes Merkmal (oder einige verwandte Merkmale) zu trainieren und dann die Ergebnisse dieser Klassifikatoren mit einem Gesamtklassifikator zu kombinieren. Gibt es irgendwelche Nachteile dieses Ansatzes? Wie kann ich einen Algorithmus für den Gesamtklassifikator auswählen?

Antworten:


4

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

Ja, es ist eine allgemein akzeptierte Technik, ein Ensemble von Klassifikatoren aufzubauen und deren Ergebnisse zu kombinieren. Sie können ein neues Modell parallel nur auf der Grundlage neuer Funktionen und einer durchschnittlichen Vorhersage erstellen. Dies sollte einen Mehrwert bieten, aber Sie werden niemals die Interaktion zwischen den neuen und alten Features auf diese Weise erfassen, da sie niemals zusammen in einem Klassifikator erscheinen.


2

Hier ist eine Idee, die aus heiterem Himmel aufgetaucht ist - was ist, wenn Sie die Zufalls-Subraum-Abtastung verwenden (wie Sean Owen bereits vorgeschlagen hat), um jedes Mal, wenn ein neues Feature erscheint, eine Reihe neuer Klassifizierer zu trainieren (unter Verwendung einer zufälligen Feature-Teilmenge, einschließlich die neuen Funktionen). Sie können diese Modelle auch an einer Teilmenge von Beispielen trainieren, um Trainingszeit zu sparen.

Auf diese Weise können neue Klassifizierer möglicherweise sowohl neue als auch alte Funktionen übernehmen und gleichzeitig Ihre alten Klassifizierer beibehalten. Möglicherweise können Sie sogar mithilfe einer Kreuzvalidierungstechnik die Leistung jedes Klassifikators messen und nach einer Weile die leistungsschwächsten ausschalten, um ein aufgeblähtes Modell zu vermeiden.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.