Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Maximum-Likelihood-Schätzung und Entscheidungsbäume: Ein Tutorial zu CM146

Lerne die Grundlagen der Maximum-Likelihood-Schätzung und Entscheidungsbäume anhand praktischer Beispiele. Dieses Tutorial erklärt die Konzepte hinter CM146 Problem Set 1-5 und zeigt, wie du sie in Python anwendest.

Maximum-Likelihood-Schätzung MLE Tutorial Bernoulli Verteilung Entscheidungsbäume ID3 Algorithmus Entropie Informationsgewinn CM146 Problem Set Maschinelles Lernen Grundlagen Python Statistik Titanic Überlebensvorhersage scikit-learn Entscheidungsbaum Likelihood Funktion plotten Split Heuristik Datenanalyse Beispiel KI Tutorial Deutsch Studenten Programmieren lernen

Einführung in die Maximum-Likelihood-Schätzung

Die Maximum-Likelihood-Schätzung (MLE) ist eine der grundlegenden Methoden der Statistik und des maschinellen Lernens. Sie wird verwendet, um die Parameter einer Wahrscheinlichkeitsverteilung zu schätzen, basierend auf beobachteten Daten. In diesem Tutorial gehen wir auf die MLE für Bernoulli-Verteilungen ein, wie sie in CM146 Problem Set 1 behandelt wird. Stell dir vor, du analysierst die Klickrate einer neuen App – ähnlich wie bei einer Münze, die entweder Erfolg (1) oder Misserfolg (0) anzeigt. Die MLE hilft dir, die wahre Erfolgswahrscheinlichkeit zu schätzen.

Die Likelihood-Funktion

Angenommen, wir beobachten n unabhängige Zufallsvariablen X1, …, Xn, die alle einer Bernoulli-Verteilung mit Parameter θ folgen. Die Likelihood-Funktion ist die Wahrscheinlichkeit, genau diese Daten zu sehen, gegeben einen bestimmten Wert von θ. Sie ist definiert als:

L(θ) = ∏_{i=1}^{n} θ^{x_i} (1-θ)^{1-x_i}

Diese Funktion hängt nicht von der Reihenfolge der Beobachtungen ab, da die Multiplikation kommutativ ist. Das ist wichtig, denn bei echten Daten, wie etwa den Überlebensdaten der Titanic (siehe CM146 Problem Set 4), spielt die Reihenfolge keine Rolle.

Log-Likelihood und Ableitung

Da der Logarithmus eine monotone Funktion ist, maximieren wir oft die Log-Likelihood:

ℓ(θ) = log L(θ) = (∑ x_i) log θ + (n - ∑ x_i) log(1-θ)

Die erste Ableitung ist:

dℓ/dθ = (∑ x_i)/θ - (n - ∑ x_i)/(1-θ)

Setzt man diese gleich Null, erhält man den MLE-Schätzer:

θ̂_MLE = (1/n) ∑ x_i

Das ist einfach der Anteil der Einsen in den Daten. Für ein Beispiel mit 6 Einsen und 4 Nullen (n=10) ergibt sich θ̂ = 0,6. Die zweite Ableitung ist negativ, was bestätigt, dass es sich um ein Maximum handelt.

Visualisierung der Likelihood-Funktion

Mit Python und Matplotlib kannst du die Likelihood-Funktion plotten. Für n=10, 6 Einsen, sieht der Code so aus:

import numpy as np
import matplotlib.pyplot as plt
theta = np.linspace(0, 1, 101)
likelihood = theta**6 * (1-theta)**4
plt.plot(theta, likelihood)
plt.xlabel('θ')
plt.ylabel('L(θ)')
plt.axvline(x=0.6, color='r', linestyle='--')
plt.show()

Der Plot zeigt ein Maximum bei θ=0,6, genau wie die geschlossene Form. Für andere Datensätze (z.B. n=100, 60 Einsen) wird die Kurve schmaler, was die höhere Sicherheit widerspiegelt.

Entscheidungsbäume und Split-Heuristiken

Entscheidungsbäume sind ein beliebtes Werkzeug im maschinellen Lernen. Der ID3-Algorithmus wählt Splits, die die Entropie maximieren (Informationsgewinn). In CM146 Problem Set 2 wird gezeigt, warum die Reduktion des Fehlers allein nicht ausreicht. Stell dir vor, du entwickelst eine KI für ein Spiel wie Fortnite – der Entscheidungsbaum könnte lernen, wann ein Spieler angreifen oder sich verstecken sollte, basierend auf Merkmalen wie Gesundheit oder Gegnerdistanz.

Fehlerreduktion vs. Entropiereduktion

Betrachten wir eine boolesche Funktion f(X) = X1 ∨ X2 ∨ X3 mit n≥4. Ein Baum ohne Split (1 Blatt) sagt für alle Beispiele die Mehrheitsklasse voraus. Da es 2n Beispiele gibt, wobei 7/8 der Beispiele die Klasse 1 haben (da nur bei X1=X2=X3=0 die Klasse 0 ist), macht der Baum 2n/8 Fehler. Ein Split nach X4 (oder einem irrelevanten Merkmal) reduziert den Fehler nicht, da die Verteilung der Zielvariable in den Kindern gleich bleibt. Die Entropie hingegen sinkt beim Split nach X1, X2 oder X3, da die Kinder reiner werden. Das zeigt, dass die Entropie ein besserer Indikator für nützliche Splits ist.

Entropie und Informationsgewinn

Die Entropie einer Menge S mit p positiven und n negativen Beispielen ist H(S) = B(p/(p+n)), wobei B(q) = -q log q - (1-q) log(1-q). Wenn ein Split in k Teilmengen erfolgt, bei denen das Verhältnis pk/(pk+nk) für alle k gleich ist, dann ist der Informationsgewinn null. Das passiert bei irrelevanten Merkmalen.

Praktische Anwendung: Titanic-Überlebensvorhersage

In CM146 Problem Set 4 wendest du Entscheidungsbäume auf den Titanic-Datensatz an. Ziel ist es, das Überleben von Passagieren vorherzusagen. Mit scikit-learn kannst du einen Entscheidungsbaum trainieren:

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import pandas as pd
data = pd.read_csv('titanic_train.csv')
X = data[['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare']]
X = pd.get_dummies(X, columns=['Sex'])
X['Age'].fillna(X['Age'].median(), inplace=True)
y = data['Survived']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
clf = DecisionTreeClassifier(max_depth=3)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print('Genauigkeit:', accuracy_score(y_test, y_pred))

Dieses Beispiel zeigt, wie du mit einfachen Features eine Genauigkeit von etwa 80% erreichst. Die Entscheidungsbäume lernen, dass Frauen und Kinder aus der ersten Klasse eine höhere Überlebenschance hatten – ein historisches Muster, das auch in der heutigen Datenanalyse relevant ist.

Fazit

Dieses Tutorial hat die Kernkonzepte der Maximum-Likelihood-Schätzung und Entscheidungsbäume behandelt, wie sie in CM146 Problem Set 1-5 vorkommen. Mit diesen Werkzeugen kannst du nicht nur akademische Probleme lösen, sondern auch reale Daten analysieren – sei es für KI-Anwendungen, Finanzprognosen oder Spieleentwicklung. Übe die Konzepte, indem du eigene Datensätze ausprobierst, und du wirst die Macht der statistischen Modellierung verstehen.