Ich lerne etwas über Entscheidungsbäume und habe das Gefühl, dass ich sie und die Mathematik dahinter bis jetzt verstanden habe Bis auf eine Sache ziemlich gut: das Verstärkungsverhältnis.

Soweit ich weiß, wird das Verstärkungsverhältnis implementiert, um Funktionen zu bestrafen, die möglicherweise VIELE mögliche Werte annehmen.

Wenn ein Feature viele mögliche Werte annimmt, wird es plausibel, dass es Werte gibt, die nur auf eine einzelne Klasse verweisen, wenn wir dieses Feature aufteilen, aber einfach, weil es nur 1 oder 2 Daten gibt Punkte mit diesem Wert für diese Funktion sowieso.

Mit anderen Worten, der einzige Grund, warum wir eine geringe Entropie für die Aufteilung dieses Features erhalten würden, besteht darin, dass das Feature viele Werte annehmen könnte und daher viele dieser Werte speziell auf eine einzelne Beschriftung verweisen . Unser Entscheidungsbaum-Algorithmus würde sich also in etwas wie „ID #“ aufteilen und fälschlicherweise berechnen, dass wir gerade einen RIESIGEN Informationsgewinn hatten.

Dies scheint jedoch nur ein Problem zu sein, da „ID #“ eine Funktion ist, auf die wir uns zunächst nicht aufteilen sollten. Ich meine, wenn wir eine andere Funktion hätten, die ebenfalls viele Möglichkeiten angenommen hat Werte, aber jeder dieser Werte implizierte tatsächlich eine Bezeichnung für diesen Datenpunkt. Würde dann nicht die Anwendung des Verstärkungsverhältnisses bedeuten, dass wir unseren Entscheidungsbaum tatsächlich durcheinander bringen, indem wir eine tatsächlich sehr gute Aufteilung mit Tonnen von Informationsgewinn bestrafen?

Ist es nicht besser zu identifizieren, welche Funktion nichts mit unserer Kennzeichnung zu tun hat, bevor wir die Trainingsdaten in den Algorithmus einspeisen?

IDK, ich tue es einfach nicht Sehen Sie, warum das Verstärkungsverhältnis wirklich nützlich wäre …

Antwort

Ich hatte den gleichen Zweifel, als ich meinen Master machte „s Degree. Zunächst einmal geben Sie nichts so Zufälliges wie“ IDs „an. Hier kommt die Datenvorverarbeitung ins Spiel. Nehmen wir einen Datensatz, in dem Benutzer und ihre Filmgenrepräferenzen auf Variablen wie Geschlecht, Altersgruppe, Bewertung, bla, bla basieren. Mit Hilfe des Informationsgewinns teilen Sie sich bei „Geschlecht“ auf „(vorausgesetzt, es hat den höchsten Informationsgewinn) und jetzt könnten die Variablen“ Altersgruppe „und“ Bewertung „gleich wichtig sein. Mit Hilfe des Gewinnverhältnisses wird eine Variable mit eindeutigeren Werten bestraft, die uns bei der Entscheidung helfen Auf der nächsten Ebene teilen.

Kommentare

  • OKaaaay, Awesome! Daher verwenden wir das Verstärkungsverhältnis nur, wenn wir zwischen zwei verschiedenen möglichen Funktionen teilen ! Ist es in der Reihenfolge, diejenige auszuwählen, für die es wahrscheinlicher ist, dass die Testdaten einen zuvor gesehenen Wert haben, denn das ist die Stimmung, die ich aus dem ID-Beispiel erhalten habe, der Grund dafür, dass es sich um eine schlechte Trennung handelt, für die es eine so hohe Chance gab bei unterschiedlichen Werten (in diesem Fall hat keine andere Person dieselbe ID).
  • Das macht VIEL mehr Sinn . Jede Erklärung, die ich ' gelesen habe, verwendet IDs und lässt mich immer wieder darüber nachdenken, warum jemand das überhaupt in einem Datensatz hat? !!!! Danke Danny! Ich ' würde Ihren Beitrag mögen, aber ich ' habe noch nicht genug Ruf.

Antwort

Der Informationsgewinn ist eine der Heuristiken, mit deren Hilfe die Attribute für die Auswahl ausgewählt werden können.

Wie Sie wissen, bildet Entscheidungsbäume eine konstruierte Spitze -down rekursive Divide-and-Conquer-Methode. Beispiele werden basierend auf ausgewählten Attributen rekursiv partitioniert.

In ID3-Algorithmen wählen wir die Attribute mit dem höchsten Informationsgewinn aus.

Sei $ p_i $ die Wahrscheinlichkeit, dass Ein beliebiges Tupel in $ D $ gehört zur Klasse $ C_i $ . $ p_i = | C_ {i, d} | / | D | $ Erwartete Informationen (Entropie), die zum Klassifizieren eines Tupels in $ D $ $$ Info (D) = – \ sum_ {i = 1} ^ {m} {p_i * \ log (p_i)} $$

Informationen, die zur Klassifizierung von D benötigt werden (nachdem A zum Teilen von D in v Teile verwendet wurde): $$ Info_A (D) = – \ sum_ {j = 1} ^ {v} {D_j / D * Info_j (D)} $$

Informationen, die durch Verzweigung nach Attribut A

$$ Gain (A) = Info (D) – Info_A (D) $$

Im C4.5-Algorithmus müssen wir die Informationsdifferenz durch $ SplitInfo (A) $

$$ Gewinn (A) = (Info (D) – Info_A (D)) / SplitInfo (A) $$

Geben Sie hier die Bildbeschreibung ein

Schreibe einen Kommentar

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