Die Interviewfragen zum maschinellen Lernen im Jahr 2026 umfassen Statistiken, Modellauswahl, Bewertungsmetriken, gängige Algorithmen, Deep-Learning-Konzepte und Produktions-ML. Dieser Leitfaden behandelt die am häufigsten gestellten ML-Fragen für Datenwissenschaftler und ML-Ingenieure.
Kernkonzepte für ML
1. Was ist der Kompromiss zwischen Bias und Varianz?
- Voreingenommenheit: Fehler aufgrund falscher Annahmen – Modell zu einfach, passt nicht zu den Trainingsdaten
- Varianz: Fehler aufgrund der Empfindlichkeit gegenüber Trainingsdaten – Modell zu komplex, Überanpassungen
- Abtausch: Eine Reduzierung der Voreingenommenheit erhöht die Varianz und umgekehrt
| Ausgabe | Zeichen | Fix |
|---|---|---|
| Hoher Bias (Unteranpassung) | Geringe Zug- UND Testgenauigkeit | Mehr Funktionen, komplexeres Modell, längeres Training |
| Hohe Varianz (Überanpassung) | Hoher Zug, geringe Testgenauigkeit | Mehr Daten, Regularisierung, Dropout, einfacheres Modell |
2. Erklären Sie Präzision, Erinnerung und F1-Ergebnis
# For binary classification:
# True Positive (TP): correctly predicted positive
# False Positive (FP): predicted positive, actually negative
# False Negative (FN): predicted negative, actually positive
# True Negative (TN): correctly predicted negative
# Precision = TP / (TP + FP)
# "Of all predicted positives, how many were actually positive?"
# Use when false positives are costly (spam filter: don't block legitimate email)
# Recall (Sensitivity) = TP / (TP + FN)
# "Of all actual positives, how many did we catch?"
# Use when false negatives are costly (cancer detection: don't miss cancer)
# F1 = 2 * (Precision * Recall) / (Precision + Recall)
# Harmonic mean — balanced metric when both matter
from sklearn.metrics import precision_score, recall_score, f1_score, classification_report
y_true = [1, 1, 0, 1, 0, 1, 0, 0, 1, 0]
y_pred = [1, 0, 0, 1, 0, 1, 1, 0, 1, 0]
print(f"Precision: {precision_score(y_true, y_pred):.2f}") # 0.80
print(f"Recall: {recall_score(y_true, y_pred):.2f}") # 0.80
print(f"F1: {f1_score(y_true, y_pred):.2f}") # 0.80
print(classification_report(y_true, y_pred))
3. Was ist Kreuzvalidierung und warum wird sie benötigt?
from sklearn.model_selection import KFold, StratifiedKFold, cross_val_score
from sklearn.ensemble import RandomForestClassifier
# Problem: single train/test split can be misleading
# Solution: cross-validation — use all data for both training and testing
model = RandomForestClassifier(random_state=42)
# K-Fold (k=5 most common)
cv_scores = cross_val_score(model, X, y, cv=5, scoring='accuracy')
print(f"CV scores: {cv_scores}")
print(f"Mean: {cv_scores.mean():.3f} (+/- {cv_scores.std():.3f})")
# Stratified K-Fold — maintain class balance in each fold (for imbalanced data)
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
stratified_scores = cross_val_score(model, X, y, cv=skf, scoring='f1')
# Key insight: cross-validation gives a DISTRIBUTION of scores, not a single number
# Use mean ± std to understand model reliability
4. Erklären Sie die Regularisierung (L1, L2, Dropout)
from sklearn.linear_model import Lasso, Ridge, ElasticNet
# L1 (Lasso): penalty = lambda * |weights|
# Effect: sparse weights — some become exactly 0 (feature selection!)
lasso = Lasso(alpha=0.1) # alpha = lambda
# L2 (Ridge): penalty = lambda * weights^2
# Effect: all weights shrink toward 0 but don't reach 0
ridge = Ridge(alpha=1.0)
# ElasticNet: combination of L1 + L2
elastic = ElasticNet(alpha=0.1, l1_ratio=0.5)
# For deep learning: Dropout
import torch.nn as nn
model = nn.Sequential(
nn.Linear(100, 256),
nn.ReLU(),
nn.Dropout(p=0.3), # randomly zero 30% of neurons during training
nn.Linear(256, 128),
nn.ReLU(),
nn.Dropout(p=0.2),
nn.Linear(128, 1),
)
# At test time, dropout is automatically disabled
5. Erklären Sie den Gradientenabstieg und seine Varianten
# Gradient Descent: update weights in direction that reduces loss
# weights = weights - learning_rate * gradient
# Batch Gradient Descent:
# - Uses ALL training data to compute gradient
# - Stable but slow for large datasets
# Stochastic Gradient Descent (SGD):
# - Uses ONE sample per update
# - Fast but noisy/unstable
# Mini-batch SGD (most common):
# - Uses a batch (32, 64, 128, 256 samples) per update
# - Balance of speed and stability
# Adam (most popular optimizer in 2026):
# - Adaptive learning rates per parameter
# - Combines momentum + RMSprop
import torch.optim as optim
optimizer = optim.Adam(model.parameters(), lr=1e-3, weight_decay=1e-4)
# Learning rate schedulers
scheduler = optim.lr_scheduler.ReduceLROnPlateau(optimizer, patience=5, factor=0.5)
# Reduces LR when validation loss stops improving
6. Was ist der Unterschied zwischen Klassifizierung und Regression?
- Einstufung: Eine Kategorie vorhersagen (Spam/kein Spam, Krankheit/keine Krankheit)
- Rückschritt: Einen kontinuierlichen Wert vorhersagen (Hauspreis, Temperatur, Bestand)
- Binäre Klassifizierung: 2 Klassen
- Mehrklassig: 3+ Klassen
- Mehrfachetikett: Mehrere Labels pro Beispiel
7. Wie gehen Sie mit unausgeglichenen Datensätzen um?
from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import RandomUnderSampler
from sklearn.utils.class_weight import compute_class_weight
# Option 1: Oversampling (SMOTE — synthetic minority)
sm = SMOTE(random_state=42)
X_resampled, y_resampled = sm.fit_resample(X_train, y_train)
# Option 2: Undersampling (reduce majority class)
rus = RandomUnderSampler(random_state=42)
X_resampled, y_resampled = rus.fit_resample(X_train, y_train)
# Option 3: Class weights (tell model to penalize minority mistakes more)
weights = compute_class_weight('balanced', classes=[0,1], y=y_train)
class_weight_dict = {0: weights[0], 1: weights[1]}
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(class_weight='balanced', random_state=42)
# Option 4: Use appropriate metric
# Don't use accuracy for imbalanced data!
# Use: F1, AUC-ROC, Precision-Recall AUC
8. Erklären Sie die Transformatorarchitektur
Transformatoren (vorgestellt in „Attention Is All You Need“ 2017) versorgen LLMs, BERT, GPT und die meisten modernen NLP/Vision-Modelle:
- Selbstaufmerksamkeit: Jeder Token kümmert sich um alle anderen Token – erfasst weitreichende Abhängigkeiten
- Mehrköpfige Aufmerksamkeit: Köpfe mit mehreren Aufmerksamkeiten lernen unterschiedliche Beziehungen
- Positionskodierung: Fügt Sequenzpositionsinformationen ein
- Feed-Forward-Ebenen: Anwesenheitsvertretungen transformieren
- Encoder-Decoder: Encoder codiert Eingabe; Decoder generiert Ausgabe (Übersetzung, Zusammenfassung)
- Nur Decoder: GPT-Stil, Text autoregressiv generieren
Erfolg bei ML-Interviews: Kennen Sie den Bias-Varianz-Kompromiss intuitiv (Unteranpassung vs. Überanpassung), erklären Sie die Bewertungsmetriken klar (wann sollten Sie Präzision vs. Rückruf vs. F1 verwenden), verstehen Sie die Regularisierung und demonstrieren Sie Kenntnisse über Gradientenabstiegsvarianten. Produktions-ML-Fragen umfassen Feature-Engineering, Modellüberwachung und MLOps-Muster.
🔗 Share this article
✍️ Leave a Comment