Entropie – Und andere Maße für Unreinheit in Daten

Dieser Artikel ist Teil 1 von 4 der Artikelserie Maschinelles Lernen mit Entscheidungsbaumverfahren.

Hierarchische Klassifikationsmodelle, zu denen das Entscheidungsbaumverfahren (Decision Tree) zählt, zerlegen eine Datenmenge iterativ oder rekursiv mit dem Ziel, die Zielwerte (Klassen) im Rahmen des Lernens (Trainingsphase des überwachten Lernens) möglichst gut zu bereiningen, also eindeutige Klassenzuordnungen für bestimmte Eigenschaften in den Features zu erhalten. Die Zerlegung der Daten erfolgt über einen Informationsgewinn, der für die Klassifikation mit einem Maß der Unreinheit berechnet wird (im nächsten Artikel der Serie werden wir die Entropie berechnen!)

Die Entropie als Maß für Unreinheit in Daten

Die Entropie gilt als das am häufigsten eingesetzte Maß für Unreinheit (Impurity) in der Informatik. Es wird in ähnlicher Bedeutung auch in der Thermodynamik und Fluiddynamik eingesetzt, bezieht sich dort nicht auf Daten, sondern auf die Verteilung von Temperatur-/Gas-/Flüssigkeitsgemischen. Stellt man sich beispielsweise ein KiBa-Getränk (Kirsch-Banane-Mischung) vor, ist die Reinheit hoch, wenn man ein zweifarbiges Getränkt vor sich sieht (z. B. unten gelb, oben rot). Die Unreinheit ist hoch, ist das Getränkt gut vermischt, so dass keine zwei Farben mehr zu unterscheiden sind.

In der maschinellen Klassifikation bevorzugen wir Reinheit, denn je unterscheidbarer zwei (bzw. mehrere) Klassen, desto sicherer wird die Klassifikation. Somit müssen wir auch die Daten hinsichtlich ihrer Un-Reinheit bewerten können, was wir mit der Entropie im Sinne der Informatik tun:

Entropy = \sum \limits_{i = 1}^n -p_{i} \cdot \log_{2} (p_{i})

Bei zwei zu separierenden Klassen demnach:

Entropy = - p_{1} \cdot \log_{2} (p_{1}) - p_{2} \cdot \log_{2} (p_{2})

In Python umgesetzt könnte der Algorithmus beispielsweise so umgesetzt werden:

Die Entropie ist maximal (bei zwei Klassen: 1.00), wenn die Klassen innerhalb einer Obermenge gleich häufig sind. Gewinnt eine Klasse eine quantitative Dominanz, steigt die Wahrscheinlichkeit für diese Klasse gleichermaßen an, die Entropie sinkt. Entropie, als Maß für die Unreinheit, funktioniert mathematisch nur mit Wahrscheinlichkeiten größer 0 und kleiner 1, was wir abfangen sollten:

Schauen wir uns die Entropie nun einmal visuell an:

Entropie als Maß der Unreinheit

Der Gini-Koeffizient als Maß für Unreinheit

Der Gini-Koeffizient funktioniert ähnlich wie die Entropie und nimmt sein Maximum bei exakt gleichhäufigen Klassen an, das bei 0.5 liegt. Der Gini-Koeffizient hat also gegenüber der Entropie ein flacheres degressives Wachstum, reagiert demnach etwas unempfindlicher auf Änderungen in Klassenhäufigkeiten.

Gini = \sum \limits_{i = 1}^n  p_{i} \cdot (1 - p_{i}) = 1 - \sum \limits_{i = 1}^n  p_{i}^2

In Python:

Der Klassifikationsfehler als Maß für die Unreinheit

Noch unempfindlicher auf Änderungen in den Klassenhäufigkeiten (= Klassenwahrscheinlichkeiten) ist der Klassifikationsfehler:

Error = 1 - max([p_{1}, \dotso p_{n}])

In Python:

Der Klassifikationsfehler sollte, insbesondere bei Mehrfachklassifikation, nicht zur Konstruktion für Entscheidungsbäume verwendet werden, ist aber das empfohlene Maß für das nachträgliche Stutzen (Pruning) der Baumzweige (Entscheidungsbäume neigen zur großen komplexen Modellen und zum Overfitting, was durch Pruning korrigiert werden kann).

Impurity – Bringing it all together

Bringen wir nun Entropie, Gini-Koeffizient und Klassifikationsfehler in eine gemeinsame Darstellung:

Neben der “normalen” Entropie haben wir auch die skalierte Entropie (= Entropie / 2) eingefügt, um aufzuzeigen, dass die Steigung der Entropie gegenüber dem Gini-Koeffizienten deutlich stärker ist.

Auffällig ist auch, dass der Klassifikationsfehler (in der Darstellung als Dreieck sichtbar) gegenüber der Entropie und auch dem Gini-Koeffizienten deutlich unempfindlicher, in einem zwei-Klassen-System nämlich linear, auf Änderungen in den Klassenhäufigkeiten reagiert.

Literatur-Hinweise

Folgende Bücher bieten gute Grundlagen des Machine Learning und erläutern auch das Entscheidungsbaumverfahren:


Einführung in Data Science: Grundprinzipien der Datenanalyse mit Python

Data Science for Business: What you need to know about data mining and data-analytic thinking

R for Data Science

Machine Learning mit Python: Das Praxis-Handbuch für Data Science, Predictive Analytics und Deep Learning (mitp Professional)

About Author

6 replies
  1. S. B.
    S. B. says:

    Hallo,
    wie sieht das denn mit der Entropie aus, wenn man keinen binären Baum hat, sondern 3 Klassen – würde man da ebenfalls mit dem log2 rechnen (wodurch man dann auf einen Max-Wert > 1 käme) oder könnte man auch den log3 nehmen. Bei diesem ergäbe sich bei einer gleichmäßig durchmischten Menge von 3 Klassen dann ebenfalls wieder auf einen normierten Max-Wert der Entropie von 1 (-1*[(1/3)log3(1/3) + (1/3)log3(1/3) + (1/3)log3(1/3)].

    Reply

Trackbacks & Pingbacks

  1. […] Informationsgewinn eines Attributes () im Sinne des ID3-Algorithmus ist die Differenz aus der Entropie () des gesamten Datensatzes () und der Summe aus den gewichteten Entropien des Attributes für jeden […]

  2. […] zu gering sein. Oftmals wird hierfür nicht die Entropie oder der Gini-Koeffizient, sondern der Klassifikationsfehler als Maß für die Unreinheit […]

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *

33402 Views