Welche Frage trennt die Daten am besten?
Ein Entscheidungsbaum ist ein Modell, das Daten durch eine Folge von Ja-Nein-Fragen einordnet. Die wichtige Kunst liegt darin, an jeder Stelle die Frage zu wählen, die die Daten am besten trennt.
Eine Bibliothek will vorhersagen, ob ein Buch verspätet zurückkommt. Fragt sie zuerst nach dem Fach oder nach der Leihdauer? Zwei Zahlen, Entropie und Informationsgewinn, geben die Antwort.
Am Ende dieser Lektion
Notiz
Ich kann mit Entropie und Informationsgewinn die beste Frage zum Teilen von Daten wählen.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Entscheidungsbaum | ein Modell aus aufeinanderfolgenden Fragen |
| Etikett | die Antwort, die vorhergesagt werden soll |
| Entropie | ein Maß dafür, wie gemischt die Etiketten sind |
| Aufteilung | das Zerlegen der Zeilen nach den Werten eines Merkmals |
| Informationsgewinn | um wie viel die Entropie durch eine Aufteilung sinkt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Baum stellt eine Frage nach der anderen
Jede Zeile eines Datensatzes hat Merkmale und ein Etikett. Hier sind es das Fach und die Leihdauer eines Buchs, das Etikett lautet pünktlich oder spät.
Ein Entscheidungsbaum stellt eine Frage zu einem Merkmal und teilt die Zeilen nach der Antwort. Mit jeder Frage soll jede Gruppe einheitlicher werden, bis ein Etikett klar überwiegt.
Die Entropie misst, wie gemischt eine Gruppe ist
Sind alle Bücher einer Gruppe verspätet, ist nichts mehr unklar: Die Entropie ist 0. Sind sie je zur Hälfte spät und pünktlich, ist sie am größten, nämlich 1.
Man rechnet sie aus den Anteilen der Etiketten. Dazu braucht man den Logarithmus zur Basis 2, in Python math.log2. Sie müssen die Formel nicht auswendig kennen, nur ihre Richtung lesen.
Beispiel: Entropie für vier Bücher
| Etiketten der Gruppe | Anteile | Entropie |
|---|---|---|
| 4 spät | 1 zu 0 | 0 |
| 3 spät, 1 pünktlich | 0,75 zu 0,25 | 0,811 |
| 2 spät, 2 pünktlich | 0,5 zu 0,5 | 1 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Entropie einer halben Mischung
docker exec jupyter python3 -c "print(-0.5 * __import__('math').log2(0.5) * 2)"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Entropie in Python berechnen
import math
# Wie gemischt sind die Etiketten? 0 heißt: alle gleich. 1 heißt: halb und halb.
def entropie(etiketten):
gesamt = len(etiketten)
summe = 0
for e in ["pünktlich", "spät"]:
anteil = etiketten.count(e) / gesamt
if anteil > 0:
summe = summe - anteil * math.log2(anteil)
return summe
print(round(entropie(["spät", "spät", "spät", "spät"]), 3))
print(round(entropie(["spät", "spät", "pünktlich", "pünktlich"]), 3))
print(round(entropie(["spät", "pünktlich", "pünktlich", "pünktlich"]), 3))
# Probieren Sie sechs Etiketten: eins "spät" und fünf "pünktlich".
Der Informationsgewinn vergleicht vorher und nachher
Der Informationsgewinn einer Frage ist die Entropie vor der Aufteilung, minus die mittlere Entropie danach. Die mittlere Entropie wiegt jede Gruppe nach ihrer Größe.
Bei acht Büchern ist die Entropie 0,954. Teilt man nach der Leihdauer, sinkt sie im Mittel auf 0,405. Der Gewinn ist 0,549.
Beispiel: zwei mögliche Fragen bei acht Büchern
| Frage | Entropie vorher | Mittlere Entropie nachher | Gewinn |
|---|---|---|---|
| Welches Fach? | 0,954 | 0,906 | 0,049 |
| Welche Leihdauer? | 0,954 | 0,405 | 0,549 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele wählen die Frage, deren Gruppen am kleinsten sind. Entscheidend ist aber, wie einheitlich die Gruppen sind, gewichtet nach ihrer Größe. Eine Frage, die ein einziges Buch abtrennt, bringt fast nichts. Wählen Sie die Frage mit dem größten Gewinn.