Tweet Share Share

Last Updated on December 10, 2020

Der Informationsgewinn berechnet die Verringerung der Entropie oder der Überraschung durch die Transformation eines Datensatzes.

Es wird üblicherweise bei der Konstruktion von Entscheidungsbäumen aus einem Trainingsdatensatz verwendet, indem der Informationsgewinn für jede Variable bewertet und die Variable ausgewählt wird, die den Informationsgewinn maximiert, was wiederum die Entropie minimiert und den Datensatz am besten in Gruppen für eine effektive Klassifizierung aufteilt.

Der Informationsgewinn kann auch für die Auswahl von Merkmalen verwendet werden, indem der Gewinn jeder Variable im Kontext der Zielvariablen bewertet wird. In dieser etwas anderen Verwendung wird die Berechnung als gegenseitige Information zwischen den beiden Zufallsvariablen bezeichnet.

In diesem Beitrag werden Sie den Informationsgewinn und die gegenseitige Information beim maschinellen Lernen kennenlernen.

Nach der Lektüre dieses Beitrags werden Sie wissen:

  • Informationsgewinn ist die Verringerung der Entropie oder der Überraschung durch die Transformation eines Datensatzes und wird häufig beim Training von Entscheidungsbäumen verwendet.
  • Der Informationsgewinn wird durch den Vergleich der Entropie des Datensatzes vor und nach einer Transformation berechnet.
  • Die gemeinsame Information berechnet die statistische Abhängigkeit zwischen zwei Variablen und ist die Bezeichnung für den Informationsgewinn, wenn er auf die Variablenauswahl angewendet wird.

Starten Sie Ihr Projekt mit meinem neuen Buch Probability for Machine Learning, das Schritt-für-Schritt-Anleitungen und die Python-Quellcodedateien für alle Beispiele enthält.

Lassen Sie uns loslegen.

  • Update Nov/2019: Verbesserte Beschreibung der Info/Entropie-Grundlagen (danke HR).
  • Update Aug/2020: Fehlende Klammern zur Gleichung hinzugefügt (danke David)

Was ist Informationsgewinn und gegenseitige Information für maschinelles Lernen
Foto von Giuseppe Milo, einige Rechte vorbehalten.

Überblick

Dieses Tutorial ist in fünf Teile gegliedert; sie sind:

  1. Was ist Informationsgewinn?
  2. Arbeitsbeispiel für die Berechnung des Informationsgewinns
  3. Beispiele für den Informationsgewinn beim maschinellen Lernen
  4. Was ist gegenseitige Information?
  5. Wie hängen Informationsgewinn und gegenseitige Information zusammen?

Was ist Informationsgewinn?

Der Informationsgewinn, kurz IG, misst die Verringerung der Entropie oder der Überraschung durch Aufteilung eines Datensatzes entsprechend einem bestimmten Wert einer Zufallsvariablen.

Ein größerer Informationsgewinn deutet auf eine Gruppe oder Gruppen von Stichproben mit geringerer Entropie und damit auf eine geringere Überraschung hin.

Sie erinnern sich vielleicht daran, dass Information angibt, wie überraschend ein Ereignis in Bits ist. Ereignisse mit geringerer Wahrscheinlichkeit haben mehr Information, Ereignisse mit höherer Wahrscheinlichkeit haben weniger Information. Die Entropie gibt an, wie viel Information in einer Zufallsvariablen steckt, genauer gesagt in ihrer Wahrscheinlichkeitsverteilung. Eine schiefe Verteilung hat eine niedrige Entropie, während eine Verteilung, in der die Ereignisse gleich wahrscheinlich sind, eine größere Entropie hat.

In der Informationstheorie beschreiben wir gerne die „Überraschung“ eines Ereignisses. Ereignisse mit geringer Wahrscheinlichkeit sind überraschender und haben daher einen größeren Informationsgehalt. Wahrscheinlichkeitsverteilungen, bei denen die Ereignisse gleich wahrscheinlich sind, sind überraschender und haben eine größere Entropie.

  • Schiefe Wahrscheinlichkeitsverteilung (nicht überraschend): Geringe Entropie.
  • Ausgeglichene Wahrscheinlichkeitsverteilung (überraschend): Hohe Entropie.

Weitere Informationen zu den Grundlagen von Information und Entropie finden Sie im Tutorial:

  • Eine sanfte Einführung in die Informationsentropie

Betrachten wir nun die Entropie eines Datensatzes.

Wir können uns die Entropie eines Datensatzes als Wahrscheinlichkeitsverteilung der Beobachtungen im Datensatz vorstellen, die zu einer Klasse oder einer anderen gehören, z. B. zwei Klassen im Falle eines binären Klassifizierungsdatensatzes.

Eine Interpretation der Entropie aus der Informationstheorie ist, dass sie die minimale Anzahl von Informationsbits angibt, die erforderlich ist, um die Klassifizierung eines beliebigen Mitglieds von S zu kodieren (d. h.,

– Seite 58, Machine Learning, 1997.

Bei einem binären Klassifizierungsproblem (zwei Klassen) können wir beispielsweise die Entropie der Datenprobe wie folgt berechnen:

  • Entropie = -(p(0) * log(P(0)) + p(1) * log(P(1)))

Ein Datensatz mit einer 50/50-Aufteilung der Stichproben für die beiden Klassen hätte eine maximale Entropie (maximale Überraschung) von 1 Bit, wohingegen ein unausgewogener Datensatz mit einer Aufteilung von 10/90 eine geringere Entropie hätte, da es weniger Überraschung für ein zufällig gezogenes Beispiel aus dem Datensatz gäbe.

Wir können dies mit einem Beispiel zur Berechnung der Entropie für diesen unausgewogenen Datensatz in Python demonstrieren. Das vollständige Beispiel ist unten aufgeführt.

Wenn wir das Beispiel ausführen, können wir sehen, dass die Entropie des Datensatzes für die binäre Klassifizierung weniger als 1 Bit beträgt. Das heißt, dass weniger als ein Bit an Informationen erforderlich ist, um die Klassenbezeichnung für ein beliebiges Beispiel aus dem Datensatz zu kodieren.

1
Entropie: 0.469 bits

Auf diese Weise kann die Entropie als Berechnung der Reinheit eines Datensatzes verwendet werden, z.So kann die Entropie zur Berechnung der Reinheit eines Datensatzes verwendet werden, z. B. wie ausgewogen die Verteilung der Klassen ist.

Eine Entropie von 0 Bits deutet auf einen Datensatz hin, der nur eine Klasse enthält; eine Entropie von 1 oder mehr Bits deutet auf eine maximale Entropie für einen ausgewogenen Datensatz hin (je nach Anzahl der Klassen), wobei Werte dazwischen auf Werte zwischen diesen Extremen hinweisen.

Der Informationsgewinn bietet eine Möglichkeit, die Entropie zu verwenden, um zu berechnen, wie sich eine Änderung des Datensatzes auf die Reinheit des Datensatzes auswirkt, z. B. auf die Verteilung der Klassen. Eine kleinere Entropie deutet auf mehr Reinheit oder weniger Überraschung hin.

… Informationsgewinn ist einfach die erwartete Verringerung der Entropie, die durch die Partitionierung der Beispiele gemäß diesem Attribut verursacht wird.

– Seite 57, Maschinelles Lernen, 1997.

Beispielsweise möchten wir vielleicht die Auswirkungen auf die Reinheit durch die Aufteilung eines Datensatzes S durch eine Zufallsvariable mit einem Wertebereich bewerten.

Dies kann wie folgt berechnet werden:

  • IG(S, a) = H(S) – H(S | a)

Wobei IG(S, a) die Information für den Datensatz S für die Variable a für eine Zufallsvariable ist, H(S) die Entropie für den Datensatz vor jeder Änderung (wie oben beschrieben) und H(S | a) die bedingte Entropie für den Datensatz bei gegebener Variable a ist.

Diese Berechnung beschreibt den Gewinn im Datensatz S für die Variable a. Es ist die Anzahl der Bits, die bei der Umwandlung des Datensatzes eingespart werden.

Die bedingte Entropie kann berechnet werden, indem der Datensatz für jeden beobachteten Wert von a in Gruppen aufgeteilt wird und die Summe des Anteils der Beispiele in jeder Gruppe am gesamten Datensatz multipliziert mit der Entropie jeder Gruppe berechnet wird.

  • H(S | a) = Summe v in a Sa(v)/S * H(Sa(v))

Wobei Sa(v)/S das Verhältnis der Anzahl der Beispiele im Datensatz ist, bei denen die Variable a den Wert v hat, und H(Sa(v)) die Entropie der Gruppe von Stichproben ist, bei denen die Variable a den Wert v hat.

Das mag etwas verwirrend klingen.

Wir können die Berechnung des Informationsgewinns mit einem praktischen Beispiel konkretisieren.

Willst du Wahrscheinlichkeit für maschinelles Lernen lernen

Nimm jetzt meinen kostenlosen 7-Tage-E-Mail-Crashkurs (mit Beispielcode).

Klicken Sie, um sich anzumelden und auch eine kostenlose PDF-Ebook-Version des Kurses zu erhalten.

Laden Sie sich Ihren KOSTENLOSEN Mini-Kurs herunter

Arbeitsbeispiel zur Berechnung des Informationsgewinns

In diesem Abschnitt werden wir die Berechnung des Informationsgewinns anhand eines Arbeitsbeispiels konkretisieren.

Wir können eine Funktion definieren, um die Entropie einer Gruppe von Beispielen auf der Grundlage des Verhältnisses von Beispielen, die zu Klasse 0 und Klasse 1 gehören, zu berechnen.

Betrachten wir nun einen Datensatz mit 20 Beispielen, 13 für Klasse 0 und 7 für Klasse 1. Wir können die Entropie für diesen Datensatz berechnen, die weniger als 1 Bit beträgt.

Nun nehmen wir an, dass eine der Variablen im Datensatz zwei eindeutige Werte hat, sagen wir „Wert1“ und „Wert2“. Wir sind daran interessiert, den Informationsgewinn dieser Variablen zu berechnen.

Angenommen, wir teilen den Datensatz nach „Wert1“ auf und erhalten eine Gruppe von acht Proben, sieben für Klasse 0 und eine für Klasse 1. Wir können dann die Entropie dieser Gruppe von Stichproben berechnen.

Nehmen wir nun an, dass wir den Datensatz nach Wert2 aufteilen; wir haben eine Gruppe von 12 Stichproben mit sechs in jeder Gruppe. Wir würden erwarten, dass diese Gruppe eine Entropie von 1 hat.

Schließlich können wir den Informationsgewinn für diese Variable auf der Grundlage der für jeden Wert der Variable erstellten Gruppen und der berechneten Entropie berechnen.

Die erste Variable führte zu einer Gruppe von acht Beispielen aus dem Datensatz, und die zweite Gruppe umfasste die restlichen 12 Proben im Datensatz. Damit haben wir alles, was wir zur Berechnung des Informationsgewinns benötigen.

In diesem Fall kann der Informationsgewinn wie folgt berechnet werden:

  • Entropie(Datensatz) – (Anzahl(Gruppe1) / Anzahl(Datensatz) * Entropie(Gruppe1) + Anzahl(Gruppe2) / Anzahl(Datensatz) * Entropie(Gruppe2))

Oder:

  • Entropie(13/20, 7/20) – (8/20 * Entropie(7/8, 1/8) + 12/20 * Entropie(6/12, 6/12))

Oder im Code:

1
2
3
4

# Berechnung des Informationsgewinns
gain = s_entropy – (8/20 * s1_entropy + 12/20 * s2_entropy)
print(‚Informationsgewinn: %.3f bits‘ % gain)

Das vollständige Beispiel ist unten aufgeführt.

Zunächst wird die Entropie des Datensatzes mit knapp 1 Bit berechnet. Dann wird die Entropie für die erste und zweite Gruppe mit etwa 0,5 bzw. 1 Bit berechnet.

Schließlich wird der Informationsgewinn für die Variable mit 0,117 Bit berechnet. Das heißt, der Gewinn für den Datensatz durch die Aufteilung über die gewählte Variable beträgt 0,117 Bits.

1
2
3
4

Datensatz Entropie: 0.934 bits
Gruppe1 Entropie: 0.544 bits
Gruppe2 Entropie: 1.000 bits
Informationsgewinn: 0.117 bits

Beispiele für den Informationsgewinn beim maschinellen Lernen

Die vielleicht populärste Anwendung des Informationsgewinns beim maschinellen Lernen sind Entscheidungsbäume.

Ein Beispiel ist der Iterative Dichotomiser 3-Algorithmus, kurz ID3, der zur Konstruktion eines Entscheidungsbaums verwendet wird.

Der Informationsgewinn ist genau das Maß, das von ID3 verwendet wird, um das beste Attribut bei jedem Schritt des Baumwachstums auszuwählen.

– Seite 58, Machine Learning, 1997.

Der Informationsgewinn wird für jede Variable im Datensatz berechnet. Die Variable mit dem größten Informationsgewinn wird für die Aufteilung des Datensatzes ausgewählt. Im Allgemeinen bedeutet ein größerer Gewinn eine kleinere Entropie oder weniger Überraschung.

Beachten Sie, dass die Minimierung der Entropie gleichbedeutend mit der Maximierung des Informationsgewinns ist …

– Seite 547, Machine Learning: A Probabilistic Perspective, 2012.

Der Prozess wird dann für jede erstellte Gruppe wiederholt, wobei die Variable, die bereits ausgewählt wurde, ausgeschlossen wird. Dies wird beendet, sobald die gewünschte Tiefe des Entscheidungsbaums erreicht ist oder keine weiteren Aufteilungen mehr möglich sind.

Der Prozess der Auswahl eines neuen Attributs und der Aufteilung der Trainingsbeispiele wird nun für jeden nicht terminalen Nachfolgeknoten wiederholt, wobei dieses Mal nur die mit diesem Knoten verbundenen Trainingsbeispiele verwendet werden. Attribute, die weiter oben im Baum eingefügt wurden, werden ausgeschlossen, so dass ein bestimmtes Attribut auf jedem Pfad durch den Baum höchstens einmal vorkommen kann.

– Seite 60, Maschinelles Lernen, 1997.

Informationsgewinn kann als Aufteilungskriterium in den meisten modernen Implementierungen von Entscheidungsbäumen verwendet werden, wie z. B. in der Implementierung des Klassifizierungs- und Regressionsbaum-Algorithmus (CART) in der Python-Bibliothek für maschinelles Lernen von scikit-learn in der Klasse DecisionTreeClassifier für Klassifizierung.

Dies kann erreicht werden, indem das Kriterium-Argument bei der Konfiguration des Modells auf „Entropie“ gesetzt wird, zum Beispiel:

1
2
3
4

# Beispiel für einen mit Informationsgewinn trainierten Entscheidungsbaum
from sklearn.tree import DecisionTreeClassifier
model = sklearn.tree.DecisionTreeClassifier(criterion=’entropy‘)

Der Informationsgewinn kann auch für die Merkmalsauswahl vor der Modellierung verwendet werden.

Dabei wird der Informationsgewinn zwischen der Zielvariablen und jeder Eingabevariablen im Trainingsdatensatz berechnet. Die Weka-Workbench für maschinelles Lernen bietet eine Implementierung des Informationsgewinns für die Merkmalsauswahl über die Klasse InfoGainAttributeEval.

In diesem Kontext der Merkmalsauswahl kann der Informationsgewinn als „gegenseitige Information“ bezeichnet werden und berechnet die statistische Abhängigkeit zwischen zwei Variablen. Ein Beispiel für die Verwendung des Informationsgewinns (gegenseitige Information) für die Merkmalsauswahl ist die scikit-learn-Funktion mutual_info_classif().

Was ist gegenseitige Information?

Die gegenseitige Information wird zwischen zwei Variablen berechnet und misst die Verringerung der Unsicherheit für eine Variable bei einem bekannten Wert der anderen Variable.

Eine Größe, die als gegenseitige Information bezeichnet wird, misst die Menge an Informationen, die man von einer Zufallsvariablen angesichts einer anderen erhalten kann.

– Seite 310, Data Mining: Practical Machine Learning Tools and Techniques, 4. Auflage, 2016.

Die gegenseitige Information zwischen zwei Zufallsvariablen X und Y kann formal wie folgt angegeben werden:

  • I(X ; Y) = H(X) – H(X | Y)

Dabei ist I(X ; Y) die gegenseitige Information für X und Y, H(X) ist die Entropie für X und H(X | Y) ist die bedingte Entropie für X bei Y. Das Ergebnis hat die Einheit von Bits.

Die gegenseitige Information ist ein Maß für die Abhängigkeit oder „gegenseitige Abhängigkeit“ zwischen zwei Zufallsvariablen. Als solches ist das Maß symmetrisch, was bedeutet, dass I(X ; Y) = I(Y ; X).

Es misst die durchschnittliche Verringerung der Ungewissheit über x, die sich aus dem Lernen des Wertes von y ergibt; oder umgekehrt, die durchschnittliche Menge an Informationen, die x über y vermittelt.

– Seite 139, Information Theory, Inference, and Learning Algorithms, 2003.

Kullback-Leibler- oder KL-Divergenz ist ein Maß, das die Differenz zwischen zwei Wahrscheinlichkeitsverteilungen berechnet.

Die gegenseitige Information kann auch als KL-Divergenz zwischen der gemeinsamen Wahrscheinlichkeitsverteilung und dem Produkt der Randwahrscheinlichkeiten für jede Variable berechnet werden.

Wenn die Variablen nicht unabhängig sind, können wir eine Vorstellung davon bekommen, ob sie „fast“ unabhängig sind, indem wir die Kullback-Leibler-Divergenz zwischen der gemeinsamen Verteilung und dem Produkt der Randwahrscheinlichkeiten betrachten, was als gegenseitige Information zwischen den Variablen bezeichnet wird

– Seite 57, Pattern Recognition and Machine Learning, 2006.

Dies lässt sich formal wie folgt ausdrücken:

  • I(X ; Y) = KL(p(X, Y) || p(X) * p(Y))

Die gegenseitige Information ist immer größer als oder gleich Null, wobei der Wert umso größer ist, je stärker die Beziehung zwischen den beiden Variablen ist. Ist das berechnete Ergebnis gleich Null, so sind die Variablen unabhängig.

Die gemeinsame Information wird häufig als allgemeine Form eines Korrelationskoeffizienten verwendet, z. B. als Maß für die Abhängigkeit zwischen Zufallsvariablen.

Sie wird auch als Aspekt in einigen Algorithmen für maschinelles Lernen verwendet. Ein gängiges Beispiel ist die Independent Component Analysis, kurz ICA, die eine Projektion statistisch unabhängiger Komponenten eines Datensatzes liefert.

Wie hängen Informationsgewinn und gegenseitige Information zusammen?

Gegenseitige Information und Informationsgewinn sind dasselbe, obwohl der Kontext oder die Verwendung des Maßes oft zu den unterschiedlichen Bezeichnungen führt.

Zum Beispiel:

  • Auswirkung von Transformationen auf einen Datensatz (Entscheidungsbäume): Informationsgewinn.
  • Abhängigkeit zwischen Variablen (Merkmalsauswahl): Mutual Information.

Beachten Sie die Ähnlichkeit in der Art und Weise, wie die gegenseitige Information und der Informationsgewinn berechnet werden; sie sind gleichwertig:

  • I(X ; Y) = H(X) – H(X | Y)

und

  • IG(S, a) = H(S) – H(S | a)

Daher wird die gegenseitige Information manchmal als Synonym für Informationsgewinn verwendet. Technisch gesehen berechnen sie dieselbe Größe, wenn sie auf dieselben Daten angewandt werden.

Wir können die Beziehung zwischen den beiden so verstehen, dass der Informationsgewinn umso größer ist, je größer der Unterschied zwischen der gemeinsamen und der marginalen Wahrscheinlichkeitsverteilung (gegenseitige Information) ist (Informationsgewinn).

Weitere Lektüre

In diesem Abschnitt finden Sie weitere Ressourcen zu diesem Thema, wenn Sie das Thema vertiefen möchten.

Bücher

  • Information Theory, Inference, and Learning Algorithms, 2003.
  • Machine Learning: A Probabilistic Perspective, 2012.
  • Pattern Recognition and Machine Learning, 2006.
  • Machine Learning, 1997.
  • Data Mining: Practical Machine Learning Tools and Techniques, 4. Auflage, 2016.

API

  • scipy.stats.entropy API

Artikel

  • Entropie (Informationstheorie), Wikipedia.
  • Informationsgewinn in Entscheidungsbäumen, Wikipedia.
  • ID3-Algorithmus, Wikipedia.
  • Informationsgewinnverhältnis, Wikipedia.
  • Gegenseitige Information, Wikipedia.

Zusammenfassung

In diesem Beitrag haben Sie den Informationsgewinn und die gegenseitige Information beim maschinellen Lernen kennengelernt.

Insbesondere haben Sie Folgendes gelernt:

  • Der Informationsgewinn ist die Verringerung der Entropie oder der Überraschung durch die Transformation eines Datensatzes und wird häufig beim Training von Entscheidungsbäumen verwendet.
  • Der Informationsgewinn wird durch den Vergleich der Entropie des Datensatzes vor und nach einer Transformation berechnet.
  • Der Informationsgewinn wird durch den Vergleich der Entropie eines Datensatzes vor und nach einer Transformation berechnet.

Haben Sie noch Fragen?
Stellen Sie Ihre Fragen in den Kommentaren unten und ich werde mein Bestes tun, um zu antworten.

Get a Handle on Probability for Machine Learning!

Develop Your Understanding of Probability

….mit nur ein paar Zeilen Python-Code

Entdecken Sie in meinem neuen Ebook:
Wahrscheinlichkeit für maschinelles Lernen

Es bietet Tutorials zum Selbststudium und durchgängige Projekte zu:
Bayes-Theorem, Bayes’sche Optimierung, Verteilungen, Maximum Likelihood, Kreuzentropie, Kalibrierung von Modellen
und vieles mehr….

Nutzen Sie endlich die Ungewissheit in Ihren Projekten

Überspringen Sie die Akademiker. Just Results.See What’s Inside

Tweet Share Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.