Blog

Mein Lieblingsalgorithmus: Random Forest

Technologie

von  am 12. Mär 2015 um 18:44 Uhr

Zu unseren Aufgaben bei Daimler TSS gehört die Erstellung von Vorhersagemodellen – also Systemen die Regelmäßigkeiten in Daten ausnutzen, um die Zukunft Vorherzusagen. Ein (nicht-reales) Beispiel wäre die Vorhersage der Wahrscheinlichkeit das Leasing-Kunden in Zukunft Zahlungen versäumen werden - auf Basis von Wissen über die bisherige Geschäftsbeziehung und vom Kunden angegebene Daten zu z.B. Beruf und geleastem Fahrzeug.

Der größte Teil der Arbeit in der Erstellung einer solchen Lösung liegt erst einmal darin die richtigen Daten in der nötigen Qualität und unter Berücksichtigung von Sicherheit und Datenschutz an einer Stelle zusammenzuführen – seit Jahren starke Kernthemen von TSS; aber hier nicht das Thema. Hier geht es um den nächsten Schritt, dem eigentlich finden der Muster in den Daten mit Random Forests.

Um Random Forests zu verstehen muss man Entscheidungsbäume kennen – ein älteres Verfahren zur Erstellung von Vorhersagemodellen. Ein (frei erfundenes und auch unrealistisches) Beispiel für einen Entscheidungsbaum ist unten dargestellt. Lesen tut man den Entscheidungsbaum von oben: im Kreis ganz oben sind alle Leasing Verträge aus der Vergangenheit dargestellt, grün die Problemlosen, rot die mit Zahlungsausfällen. Dann wird eine Eigenschaft der Leasing Verträge angeschaut (hier: „gab es vorausgehende Leasing Verträge mit dem gleichen Kunden die problemlos verlaufen sind“) und auf dieser Basis werden zwei kleinere Gruppen gebildet. Diese zwei kleineren Gruppen kann man dann weiter unterteilen – im Beispiel anhand der Frage ob das geleaste Fahrzeug ein Cabrio ist. Im Beispiel gibt es dann bei fast allen Leasing Verträgen wo der Kunde vorher kein Fahrzeug geleast hatte und er ein Cabrio least Zahlungsausfälle – ich hatte ja gesagt das Beispiel ist erfunden und unrealistisch (in der echten Welt sind die Entscheidungsbäume deutlich größer und die Unterschiede oft nicht so deutlich). Der Witz dabei ist, dass solche Bäume vom Computer automatisch auf Basis der Daten erstellt werden können – der Computer sucht dabei automatisch immer die Eigenschaften, die an einem Punkt die Daten besonders gut sortieren.

Entscheidungsbäume haben einiges was für sie spricht: das Verfahren zur Erstellung ist einfach, sie sind einfach zu verstehen, sie können sehr komplexe Zusammenhänge abbilden und sie können auch mit vielfältigen Daten ohne besondere Vorverarbeitung umgehen. Sie haben aber auch einen großen Nachteil: Die Genauigkeit der erzeugten Vorhersagen ist eigentlich immer schlecht – dumm, weil das hier ja das ganze Ziel der Übung ist. Das Problem liegt darin, dass sich die Entscheidungsbäume begeistert auf vielfältige (und immer vorhandene) zufällige Muster in den Trainingsdaten stürzen (an Dienstagen von Eisverkäufern geschlossene Leasing-Verträgen haben eine geringe Ausfallwahrscheinlichkeit?) die dann später im Einsatz nicht mehr zu finden sind. Es gibt Verfahren dieser Tendenz zum so genannten „Overfitting“ zu begegnen – aber der Einsatz wird dadurch erschwert und trotz allem bleibt die Vorhersagegenauigkeit deutlich hinter vielen anderen Algorithmen zurück.

Hier kommt das Random Forest-Verfahren ins Spiel: anstatt einen Entscheidungsbaum zu erstellen, erstellt man immer gleich mehrere (500 wäre eine normale Größenordnung). Dabei nutzt man jeweils auch nicht die ganzen Vorhandenen Trainingsdaten, sondern man wählt jedes Mal zufällig eine neue Teilmenge der Daten aus. In jedem Entscheidungspunkt nimmt man auch nicht die beste Eigenschaft, sondern die beste aus einer zufälligen kleinen Teilmenge aller Eigenschaften. Zuletzt lässt man oft die Bäume auch nicht groß werden, sondern nimmt einfach viele kleine. Um eine konkrete Vorhersage zu bekommen kombiniert man dann die Ergebnisse aller (500?) Bäume. Das Ergebnis nachdem man auf diesem Weg richtig Chaos in den Prozess gebracht hat? Eines der um Muster in Daten zu lernen – das immer noch einfach ist, immer noch mit vielfältigen Daten umgehen kann, immer noch kaum Vorverarbeitung braucht und immer noch komplexe Zusammenhänge abbilden kann – nur Verstehen kann man die erstellten Modellen nicht mehr so gut (aber auch dafür gibt es )

Ich finde bemerkenswert, dass man durch den systematischen Einsatz von Chaos, Selbstbeschränkung und Unordnung so viel gewinnen kann – und zwar nicht in der Geschwindigkeit sondern in der Genauigkeit des Ergebnisses. Im gewissen Sinne logisch – denn durch das ganze Chaos siehe jeder Entscheidungsbaum andere zufällige Muster und beim Mitteln über alle Bäume gleichen die sich so aus, so dass nur die echten Regelmäßigkeiten übrig bleiben. Dass das aber wirklich in der Praxis funktioniert begeistert mich immer wieder.

Zurück zur Übersicht

Diesen Beitrag teilen

Was sagen Sie zu diesem Thema? Diskutieren Sie mit!