Monotones maschinelles Lernen

8

Ich habe eine binäre Klassifikation ( überwachtes Lernen) Problem, in dem alle meine Funktionen boolean sind mit folgenden Wendung: Ich mag einen Klassifikator lernen , dass ist monoton . Mit anderen Worten, wenn Sie eine Teilmenge von Merkmalen von 0 auf 1 ändern, sollte die Ausgabe des Klassifikators niemals von 1 auf 0 geändert werden.f:{0,1}n{0,1}

Wie kann ich einen monotonen Klassifikator lernen ? Kann ich Standardklassifizierungsmethoden irgendwie anpassen, um die Monotonieeinschränkung durchzusetzen?

Ich kann sehen, wie die logistische Regression so angepasst werden kann, dass ein monotones Modell erlernt wird: Wir können verlangen, dass der Koeffizient jedes Merkmals nicht negativ ist, und dann einen eingeschränkten Optimierungsalgorithmus anwenden, um auf die Koeffizienten des Modells zu schließen. Gibt es eine vernünftige Möglichkeit, andere überwachte Lernschemata anzupassen (z. B. zufällige Wälder, Gradientenverstärkung, neuronale Netze)? Oder gibt es spezielle Algorithmen, die für diese Situation geeignet sind?


Leider ist es nicht garantiert, dass nur ein Standardklassifikator für zufällige Wälder einen monotonen Klassifikator ergibt, selbst wenn der Trainingssatz monoton ist (er stammt aus einer monotonen Einstellung und weist kein Rauschen oder Verstöße gegen die Monotonie auf). Unter https://cs.stackexchange.com/q/69220/755 finden Sie ein explizites Beispiel, dh ein Beispiel für einen monotonen Trainingssatz, bei dem zufällige Gesamtstrukturen möglicherweise einen nicht monotonen Klassifikator lernen - obwohl ein monotoner Klassifikator vorhanden ist das ist genauso gut. Dies deutet darauf hin, dass wir möglicherweise eine ausgefeiltere Technik benötigen, wenn wir einen monotonen Klassifikator lernen möchten.

DW
quelle
1
Nur eine Frage: Kommen Ihre Daten aus monotonen Einstellungen oder enthalten sie auch einige Gegenbeispiele? Wenn es keine Gegenbeispiele gäbe, dann funktionieren z. B. zufällige Wälder einwandfrei. Wenn es welche gibt, können Sie sie einfach aus dem Trainingssatz entfernen.
Karel Macek
@ KarlMacek, cool! Da ich nach einem Einstiegspunkt in die Literatur oder in Techniken suche, kann ich davon ausgehen, dass die Daten im Trainingssatz alle monoton sind. Ist garantiert, dass ein zufälliger Waldklassifikator, der auf einem monotonen Datensatz trainiert wurde, einen monotonen Klassifikator ergibt?
DW
@ KarelMacek, danke für den Vorschlag! Leider sieht es so aus, als ob das Anwenden von zufälligen Standard-Gesamtstrukturen fehlschlagen kann. Eine Erklärung und einen Link zu einem expliziten Beispiel finden Sie im letzten Absatz der bearbeiteten Frage. Mir ist nicht klar, wie ich das Problem beheben kann. Irgendwelche Ideen?
DW
1
Ein neuronales MLP-Netzwerk mit Gewichten größer oder gleich 1 und nicht abnehmenden, nicht negativen Aktivierungsfunktionen (z. B. ReLU) erfüllt die Monotonie-Anforderung. Dies liegt daran, dass die Summen nichtnegativer Zahlen nichtnegativ sind und eine positive Zahl multipliziert mit einer Zahl größer als 1 größer als . pp
Sycorax sagt Reinstate Monica

Antworten:

2

Obwohl es eine alte Frage ist, habe ich gerade festgestellt, dass Bäume mit Gradientenverstärkung solche Funktionen unterstützen und bereits bei XGBoost implementiert sind. Überprüfen Sie hier für weitere Details

geompalik
quelle