Site Overlay

Eine Sanfte Einführung in Random Forests, Ensembles und Performance-Metriken in einem Kommerziellen System

Dies ist die erste in einer Reihe von posts, die zeigen, was unser Daten-team, das Experimentieren mit und Bau ‚unter der Haube‘ an CitizenNet.

Dr. Arshavir Blackwell ist CitizenNet resident-Daten-Wissenschaftler. Er ist seit über 10 Jahren am maschinellen Lernen im Webmaßstab und am Abrufen von Informationen beteiligt.

Heißer Tipp: Klicken Sie auf die Bilder für eine größere ansicht.,

Einer der ersten Beiträge, die wir veröffentlicht haben, sprach auf hohem Niveau über das technische Problem, das CitizenNet zu lösen versucht. Im Wesentlichen versuchen wir vorherzusagen, welche Kombinationen von demografischen und Interessenzielen an einigen Inhalten interessiert sein werden.

Auf der CitizenNet-Plattform würde ein Benutzer ein Projekt erstellen, das (allgemein) die Zielgruppe, die Facebook-Inhalte, für die er werben möchte, und andere Kampagnen-und Finanzinformationen definiert.

Hinter den Kulissen baut ein robustes Vorhersagesystem die Ziele für das Projekt auf., Dieses Vorhersagesystem wird auf vergangenes Verhalten trainiert und verwendet es dann, um vorherzusagen, wie ein zukünftiges (unbekanntes) Projekt am besten ausgerichtet werden kann. Eine der Komponenten des Vorhersagesystems ist ein Klassifikator, der derzeit ein Ensemble von neuronalen Netzen und zufälligen Waldklassifikatoren ist. Dieser Blogbeitrag soll die Grundlagen dieser Methoden veranschaulichen.

Neuronales Netzwerk

Neuronale Netze werden seit langem bei solchen Problemen mit vielen Daten, vielen Variablen und der Möglichkeit von Rauschen in den Daten verwendet.

Jeder Eingabepunkt ist ein hochdimensionaler Vektor., Das neuronale Netzwerk ist in einer Reihe von Ebenen organisiert (siehe Abbildung), wobei der Eingabevektor auf der linken Seite des Netzwerks eintritt und dann auf eine „versteckte Ebene“ projiziert wird.“Jede Einheit in der verborgenen Ebene ist eine gewichtete Summe der Werte in der ersten Ebene. Diese Ebene projiziert dann auf eine Ausgabeebene, auf der die gewünschte Antwort angezeigt wird.

Das Netzwerk wird mit dem Eingang und der gewünschten Ausgabe trainiert, was in unserem Fall ist, ob der Punkt eine niedrige Klickrate (CTR) oder ein hohes CTR-Schlüsselwort darstellt., Dann erfolgt das Training: Gewichte sowohl auf der versteckten als auch auf der Ausgabeebene werden so angepasst, dass die tatsächliche Ausgabe der gewünschten Ausgabe entspricht. Nach dem Training sollte das neuronale Netzwerk einen neuen Datenpunkt nehmen und entweder eine Null (niedrige CTR) oder eine (hohe CTR) ausgeben. Wenn der Klassifikator unsicher ist, erzeugt er irgendwo dazwischen einen Wert.

Stärken und Schwächen. Neuronale Netze haben einige Vorteile., Wenn wir viele Eingabe-und Ausgabedaten zu lernen haben, aber keine Ahnung haben, wie die Funktion die beiden zusammen abbildet, kann das Netzwerk diese Funktion lernen, ohne dass wir sie explizit bereitstellen müssen. Neuronale Netze eignen sich auch gut für Datensätze, die verrauscht sind oder bei denen einige Eingaben fehlende Variablen aufweisen., Neuronale Netze haben jedoch auch einen Hauptnachteil vieler anderer Ansätze: Die Antwort, die aus den Gewichten eines neuronalen Netzwerks hervorgeht, kann schwer zu verstehen sein (es kann funktionieren, aber wir wissen nicht wie), und das Training des Netzwerks kann länger dauern als bestimmte andere Methoden des maschinellen Lernens, wie z. B. zufällige Wälder, an die wir uns jetzt wenden.

Random Forests, eine Ensemble-Methode

random forest (Breiman, 2001) ist ein ensemble-Ansatz, der kann auch gedacht werden als eine form der nächsten Nachbarn predictor.

Ensembles sind ein Divide-and-Conquer-Ansatz zur Verbesserung der Leistung., Das Hauptprinzip hinter diesen Methoden ist, dass eine Gruppe von „schwachen Lernenden“ zusammenkommen kann, um einen „starken Lernenden“zu bilden. Die folgende Abbildung (von hier) zeigt ein Beispiel. Jeder Klassifikator ist einzeln ein „schwacher Lerner“, während alle Klassifikatoren zusammen ein“starker Lerner“ sind.

Die zu modellierenden Daten sind die blauen Kreise. Wir gehen davon aus, dass sie eine zugrunde liegende Funktion plus Rauschen darstellen. Jeder einzelne Lernende wird als graue Kurve dargestellt. Jede graue Kurve (ein schwacher Lerner) ist eine faire Annäherung an die zugrunde liegenden Daten., Die rote Kurve (der Begriff „starker Lerner“) kann als eine viel bessere Annäherung an die zugrunde liegenden Daten angesehen werden.

Bäume und Wälder. Der Zufallswald beginnt mit einer Standardtechnik für maschinelles Lernen, die als „Entscheidungsbaum“ bezeichnet wird und in Ensemble-Begriffen unserem schwachen Lernenden entspricht. In einem Entscheidungsbaum wird oben eine Eingabe eingegeben, und beim Durchlaufen des Baums werden die Daten in immer kleinere Mengen aufgeteilt. Für Details siehe hier, von dem die Abbildung unten genommen wird.

In diesem Beispiel rät uns der Baum je nach Wetterlage, ob wir Ball spielen sollen., Wenn der Ausblick beispielsweise sonnig ist und die Luftfeuchtigkeit unter oder gleich 70 liegt, ist das Spielen wahrscheinlich in Ordnung.

Der Zufallswald (siehe Abbildung unten) bringt diesen Begriff auf die nächste Ebene, indem er Bäume mit dem Begriff eines Ensembles kombiniert. Daher sind die Bäume in Ensemble-Begriffen schwache Lernende und der zufällige Wald ist ein starker Lerner.

Hier ist, wie ein solches System trainiert wird; für eine bestimmte Anzahl von Bäumen T:

  1. Stichprobe N Fälle zufällig mit Ersatz, um eine Teilmenge der Daten zu erstellen (siehe oberste Schicht der Abbildung oben). Die Teilmenge sollte etwa 66% der Gesamtmenge betragen.,
  2. An jedem Knoten:
    1. Für einige Zahlen m (siehe unten) werden m Prädiktorvariablen zufällig aus allen Prädiktorvariablen ausgewählt.
    2. Die Prädiktorvariable, die gemäß einer objektiven Funktion die beste Aufteilung bietet, wird verwendet, um eine binäre Aufteilung auf diesem Knoten durchzuführen.
    3. Wählen Sie am nächsten Knoten zufällig aus allen Prädiktorvariablen andere m Variablen aus und machen Sie dasselbe.,

Je nach dem Wert von m, es gibt drei leicht unterschiedliche Systeme:

  • Random splitter Auswahl: m =1
  • Breiman ‚ s bagger: m = Anzahl der unabhängigen Variablen
  • Random forest: m << Anzahl der unabhängigen Variablen. Brieman schlägt drei mögliche Werte für m vor: ½ √m, √m und 2√m

, die einen zufälligen Wald ausführen. Wenn eine neue Eingabe in das System eingegeben wird, werden alle Bäume heruntergefahren., Das Ergebnis kann entweder ein durchschnittlicher oder ein gewichteter Durchschnitt aller Endknoten sein, die erreicht werden, oder im Fall von kategorialen Variablen eine Stimmenmehrheit.

Beachten Sie:

  • Bei einer großen Anzahl von Prädiktoren unterscheidet sich der berechtigte Prädiktorsatz von Knoten zu Knoten erheblich.
  • Je größer die Inter-Tree-Korrelation ist, desto größer ist die zufällige Forest-Fehlerrate, so dass ein Druck auf das Modell besteht, die Bäume so unkorreliert wie möglich zu haben.
  • Wenn m sinkt, gehen sowohl die Korrelation zwischen den Bäumen als auch die Stärke einzelner Bäume zurück., Daher muss ein optimaler Wert von m entdeckt werden.

Stärken und Schwächen. Zufällige Waldlaufzeiten sind ziemlich schnell und können mit unausgeglichenen und fehlenden Daten umgehen. Random Forest Schwächen sind, dass sie, wenn sie für die Regression verwendet werden, nicht über den Bereich in den Trainingsdaten hinaus vorhersagen können und dass sie Datensätze, die besonders laut sind, übertreffen können. Der beste Test eines Algorithmus ist natürlich, wie gut er mit Ihrem eigenen Datensatz funktioniert.,

Testen unserer Klassifikatoren

Um zu verstehen, wie wir den Klassifikator testen, müssen wir verschiedene Konzepte erläutern:

  • Kreuzvalidierung
  • Schwellenwerte
  • mittlere Genauigkeit
  • Präzision über Chance

Kreuzvalidierung

Unser Klassifikationstest sollte ökologisch gültig sein. Es sollte unseren Klassifikator unter Bedingungen so nah wie möglich an der Produktionsumgebung beweisen.,

In der Produktion wird der Klassifikator in vielen Projekten trainiert, in denen wir die CTRs kennen, aber wir möchten wirklich wissen, wie der Klassifikator CTRs für ein neues Projekt vorhersagt, das er noch nie zuvor gesehen hat.

Wir testen unseren Klassifikator mit einer Technik namens „Kreuzvalidierung“: Trainieren Sie den Klassifikator für alle Projekte außer einem. Natürlich kennen wir auch die richtigen CTRs für dieses abgehaltene Projekt, sodass wir sehen können, wie gut der Klassifikator damit umgeht, ohne zu betrügen, indem wir den Klassifikator im Durchhalten schulen. Wir tun dies wiederum mit jedem Projekt. Siehe Abbildung unten.,

Nehmen wir an, wir haben die Projekte A bis F. Wir trainieren einen Klassifikator für die Projekte A bis E und testen für F. Dann trainieren wir für A und C bis F und testen für B. Wir tun dies wiederum, indem wir jedes Projekt durchführen, bis wir für A bis E trainieren und für F testen Jedes Projekt ist ein Subjekt in unserem Experiment mit den Subjekten A bis F (siehe Abbildung unten).

Schließlich sammeln wir die Ergebnisse aus jedem Kreuzvalidierungslauf für statistische Analysen. Die experimentelle Frage, die wir beantworten möchten: Gibt uns der Klassifikator mehr Informationen über die CTR als nur raten?,

Schwellenwerte

Der Klassifikator sagt voraus, ob der Eingabevektor zu einer niedrigen oder hohen CTR führen würde. Die Ausgabe des Klassifikators ist eine Zahl von Null bis Eins, geben oder nehmen. Eine Null sagt niedrige CTR voraus, eine eins prognostiziert hohe CTR. Aber was tun wir, wenn der Klassifikator einen Wert dazwischen ausgibt, z. B. 0,4 oder 0,6? Wir müssen eine Schwelle wählen. Über diesem Wert behandeln wir die Ausgabe des Klassifikators als Vorhersage einer hohen CTR. Unterhalb dieses Wertes behandeln wir die Ausgabe des Klassifikators als Vorhersage einer niedrigen CTR.

Der Klassifikator ist nicht perfekt, daher werden manchmal Fehler gemacht., Manchmal sagt der Klassifikator falsch voraus, dass ein hohes CTR-Element niedrig ist (ein „Miss“), und manchmal sagt der Klassifikator falsch voraus, dass ein niedriges CTR-Element hoch ist (ein „falscher Alarm“).

Die folgenden Abbildungen zeigen eine Frequenzverteilung für die Ausgabe des Klassifikators sowohl für niedrige als auch für hohe CTR-Werte. Hohe CTR-Elemente in Grün führen tendenziell zu einer Klassifikatorausgabe in Richtung 1. Niedrige CTR-Elemente in Rot führen tendenziell zur Ausgabe des Klassifikators in Richtung 0. Beachten Sie, dass in allen drei Zahlen der Abstand zwischen den beiden Kurven unverändert bleibt. Alles, was sich ändert, ist die Schwelle.,

Angenommen, wir haben insgesamt 1.000 Datenpunkte, die gleichmäßig zwischen niedriger und hoher CTR aufgeteilt sind. In der obigen Abbildung ist unsere Schwelle ziemlich hoch (z. B. 0, 85). Dies führt zu einer relativ niedrigen Fehlalarmrate (insgesamt sind nur 50 Elemente Fehlalarme) und einer ziemlich hohen Fehlalarmrate (100 Elemente, die in Wahrheit eine hohe CTR aufweisen, werden übersehen).

In der folgenden Abbildung steigt unsere Fehlalarmrate bei der niedrigsten Schwelle (z. B. 0,40) auf 100 und unsere Fehlalarmrate auf 75. Wenn wir also unsere Schwelle senken, steigt unsere Fehlalarmrate von 50 auf 75 auf 100, während unsere Fehlalarmrate von 100 auf 90 auf 75 sinkt.,

Wir zeichnen den Schwellenwert basierend darauf, welche Art von Fehler wir mehr, Fehler oder Fehlalarme vermeiden möchten. Ein höherer Schwellenwert bedeutet mehr Fehlschläge und weniger Fehlalarme. Eine niedrigere Schwelle bedeutet das Gegenteil. Durch Ändern des Schwellenwerts wird die zugrunde liegende Genauigkeit des Klassifikators nicht geändert, sondern nur der Fehler verschoben.

Mittlere Genauigkeit

Die Wirksamkeit des Klassifikators ist der Abstand zwischen den beiden Mitteln, der sich nicht ändert, wenn sich der Schwellenwert ändert. Eine Möglichkeit, die Wirksamkeit des Klassifikators zu messen, ist die „Präzision“., Präzision ist die Anzahl der wirklich korrekten Elemente („Treffer“) geteilt durch die Anzahl der Elemente, von denen der Klassifikator angibt, dass sie korrekt sind (Treffer + Fehlalarme).

In unserem obigen Beispiel haben wir 1.000 Datenpunkte, von denen 500 hohe CTR sind. Unser Klassifikator fängt 400 hohe CTRs korrekt ein. Der Klassifikator weist auf eine zusätzliche 50 Punkte sind hohe Klickraten, in der Tat, wenn Sie niedrig sind Klickraten. Das bedeutet, wir haben 50 Fehlalarme. Dies führt zu einer Genauigkeit von 400/450 = 88.88%, wenn die vom Klassifikator angegebenen Elemente korrekt sind (Treffer + Fehlalarme).,

„Mean precision“ berücksichtigt die oben genannten Probleme bei der Auswahl eines Schwellenwerts, indem diese Berechnung in einem Bereich von Schwellenwerten durchgeführt und der Mittelwert zugrunde gelegt wird.

Verbesserung über Chance

Leider ist es in Wirklichkeit nicht so einfach: Projekte variieren stark in der Anzahl der High CTR Keywords. Einige Projekte enthalten wirklich nur 15% hohe CTR, während andere so hoch wie 80% oder 90% sind. Der Finanzsektor wird beispielsweise immer eine niedrigere durchschnittliche CTR haben als ein beliebtes Facebook-Spiel. Wir brauchen mehr als mittlere Präzision, um die Leistung des Klassifikators zu messen.,

Stellen Sie sich vor, unser Klassifikator hat eine mittlere Genauigkeit von 95%. Obwohl das gut klingt, wenn das Projekt 95% hohe CTR ist, ist es weniger beeindruckend. In diesem Fall, wenn wir immer erraten, dass etwas hoch CTR war, würden wir so gut wie der Klassifikator tun! Daher müssen wir die mittlere Genauigkeit melden, nachdem wir den wahren Prozentsatz hoher CTR-Elemente für dieses Projekt abgezogen haben. Wir nennen dies „mittlere Präzision über dem Zufall“. In unseren Berichten bedeutet eine mittlere Genauigkeit von 10%, dass der Klassifikator eine höhere Genauigkeit von 10 Punkten aufweist als das Erraten allein.,

Ergebnisse

In unserem Testset wurden Projekte mit einem wirklich hohen CTR-Wert von 1 (alle hohen CTR) oder weniger als 0,05 (weniger als 5% hohe CTR) entfernt, was zu 72 Projekten für die weitere Analyse führte. Denken Sie daran, dass jedes Projekt Dutzende von Targeting-Kombinationen enthalten kann und jede Targeting-Kombination Hunderte von Schlüsselwörtern enthalten kann.

Für das neuronale Netz betrug die mittlere Verbesserung für den Klassifikator 0,15 (siehe Tabelle unten). Ein gepaarter t-Test der Ergebnisse zeigte t (71) = 7.72, p < 0.0001 (ein p-Wert von weniger als 0.,05 wird traditionell als statistisch signifikant angesehen, was bedeutet, dass die Wahrscheinlichkeit, dass dieser Effekt auf Zufall zurückzuführen ist, 1 von 20 oder weniger beträgt. Dies bedeutet, dass der neuronale Netzwerkklassifikator eine statistisch signifikante Verbesserung bei der Erkennung hoher CTR-Elemente im Vergleich zum Zufall zeigte.

Für den Zufallswald betrug die mittlere Verbesserung für den Klassifikator 0,06 (siehe Tabelle unten). Ein gepaarter t-Test der Ergebnisse zeigte t (71) = 3.17, p < 0.003., Dies bedeutet, dass der Random Forest Classifier eine statistisch signifikante Verbesserung beim Nachweis von High CTR-Elementen im Vergleich zum Zufall zeigte.

Beim Vergleich der mittleren Verbesserung zwischen den beiden Klassifikatoren betrug der Unterschied 0,09 zugunsten des neuronalen Netzwerks. Einen gepaarten t-test auf die Ergebnisse zeigten, t(71) = 3.63, p < 0.0006. Dies bedeutet, dass der neuronale Netzwerkklassifikator eine statistisch signifikante Verbesserung beim Nachweis hoher CTR-Elemente im Vergleich zum Random Forest-Klassifikator zeigte.

Beide Klassifikatoren funktionieren., Das neuronale Netzwerk ist um 0,09 signifikant besser als der Zufallswald.

Mean high CTR Mean precision of classifier Mean improvement
neural network 0.44 0.59 0.15
random forest 0.44 0.50 0.,06

Frequenzhistogramme

Diese Abbildung zeigt ein Frequenzhistogramm der mittleren Präzisionsverbesserung gegenüber dem Zufall für die 72 Projekte für das neuronale Netzwerk:

Diese Abbildung zeigt ein Frequenzhistogramm der mittleren Präzisionsverbesserung gegenüber dem Zufall für die 72 Projekte für den Zufallswald:

Neuronales Netzwerk gegen Zufallswald

Die folgende Grafik vergleicht die Ergebnisse von vier neuronalen Netzen mit drei zufälligen Wäldern., Es zeigt uns, dass die Präzision zwischen den Projekten sehr unterschiedlich ist und dass jede Methode dazu neigt, die andere mit einer Korrelation von 0.8677 zu verfolgen.

Keine der beiden Methoden kann in allen Fällen als besser bezeichnet werden als die andere. Es bleibt abzuwarten, ob es eine Systematik gibt, warum und wo eine Methode besser ist als eine andere.

Wie die nächsten beiden Zahlen zeigen, zeigen sowohl neuronale Netze als auch Zufallswälder in den meisten, aber nicht in allen Fällen eine geringe Variabilität gegenüber unseren Daten: Das heißt, bei den meisten Projekten führt eine mehrmalige Wiederholung des Klassifikators normalerweise zu ungefähr der gleichen Genauigkeit., In den nächsten beiden Figuren befinden sich die verschiedenen Projekte jeweils in der Reihenfolge zunehmender Präzision auf der x-Achse und die Präzision auf der y-Achse.

Im nächsten Diagramm haben wir die Genauigkeit neuronaler Netzwerkläufe von der Genauigkeit zufälliger Waldläufe für dasselbe Projekt von insgesamt 123 Projekten subtrahiert. In dieser nächsten Abbildung befinden sich die verschiedenen Projekte in der Reihenfolge der Erhöhung der Präzision auf der x-Achse und die Präzision auf der y-Achse.

Dieses Bild sagt uns, dass es in einem so komplizierten Raum Bereiche geben wird, die mit nur einer Lernmethode schwer zu modellieren sind., Wir wissen intuitiv, dass neuronale Netze und Zufallswälder ausreichend unterschiedliche Algorithmen sind, aber dies ist ein Beweis dafür, dass die Projekte auf der linken Seite der S-Kurve mit der Zufallswäldmethode mehr zu gewinnen sind. Solche Ensemble-Ansätze sind manchmal die einzige Möglichkeit, schwer erreichbare Gewinne zu erzielen (die Gewinner des Netflix-Preises hatten ein großes Beispiel dafür-sie nannten ihr Team sogar danach!)

Diese Ergebnisse sind jedoch nur vorläufig, also bleiben Sie dran, um zu sehen, was weitere Optimierungen bieten! Kontaktieren Sie uns noch heute, um mehr zu erfahren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.