Einfache, in sich abgeschlossene Python-Übungen zum Kurs Maschinelles Lernen (Semester 2). Der Fokus liegt auf den Standard-Workflows mit scikit-learn:
Daten laden → Train/Test-Split → mit sklearn fitten → vorhersagen → mit fertigen Funktionen bewerten → plotten → interpretieren.
Es wird nichts „von Hand" implementiert. Zum Bewerten und Plotten werden die
fertigen Funktionen von sklearn, numpy und matplotlib genutzt (z. B. accuracy_score,
confusion_matrix, roc_auc_score, r2_score, silhouette_score, plot_tree,
ConfusionMatrixDisplay, RocCurveDisplay, DecisionBoundaryDisplay).
Nur numpy, matplotlib und scikit-learn – kein pandas.
Alle Eingabedaten liegen als CSV vor und werden immer mit
np.genfromtxt(CSV_PATH, delimiter=",", skip_header=1) eingelesen.
| Ordner | Verfahren | Typ |
|---|---|---|
01_Lineare_Regression |
Lineare Regression (LinearRegression) |
Regression |
02_Polynomiale_Regression |
Polynomiale Regression (PolynomialFeatures + Pipeline) |
Regression |
03_Regularisierung |
Ridge & Lasso (Ridge, Lasso) |
Regression |
04_Logistische_Regression |
Logistische Regression (LogisticRegression) |
Klassifikation |
05_Klassifikationsmetriken |
Konfusionsmatrix & Report (confusion_matrix, classification_report) |
Klassifikation |
06_ROC_und_AUC |
ROC-Kurve & AUC (roc_curve, roc_auc_score) |
Klassifikation |
07_Entscheidungsbaum_Klassifikation |
Entscheidungsbaum (DecisionTreeClassifier, plot_tree) |
Klassifikation |
08_Entscheidungsbaum_Regression |
Entscheidungsbaum (DecisionTreeRegressor) |
Regression |
09_Random_Forest |
Random Forest & Feature Importance (RandomForestClassifier) |
Klassifikation |
10_SVM |
Support Vector Machine (SVC, linear & RBF-Kernel) |
Klassifikation |
11_Support_Vector_Regression |
Support Vector Regression (SVR) |
Regression |
12_KMeans_Clustering |
K-Means (KMeans, silhouette_score) |
Clustering |
13_Gaussian_Mixture |
Gaussian Mixture Model (GaussianMixture) |
Clustering |
14_PCA |
Hauptkomponentenanalyse (PCA) |
Dimensionsreduktion |
15_Kreuzvalidierung_GridSearch |
Kreuzvalidierung & Hyperparameter (cross_val_score, GridSearchCV) |
Modellwahl |
16_RANSAC |
Robuste Regression (RANSACRegressor) |
Regression |
Die alten Übungen (mit „von Hand"-Implementierungen) liegen im Ordner
archiv/.
Jeder Ordner enthält vier Dateien:
aufgabe.py– Die Aufgabenstellung als Kommentar (Teile a, b, c …) mit fast keinem vorgegebenen Code. Hier schreibst du deine Lösung ab der Zeile# ab hier selbst schreiben ....loesung.py– Die Musterlösung. Vor jedem Codeblock steht der jeweilige Aufgaben-Kommentar, gefolgt von# --- LÖSUNG ---und dem Lösungscode. So ist klar getrennt, was zu tun war und wie es gelöst wird.daten_erzeugen.py– Erzeugt die CSV-Datei neu (nutztsklearn.datasetsbzw. einen numpy-Zufallsgenerator). Nur zur Reproduktion nötig – die CSV liegt bereits bei.<datensatz>.csv– Die Eingabedaten.
pip install -r requirements.txtBenötigt Python 3.10+ mit numpy, scikit-learn, matplotlib (kein pandas).
# CSV bei Bedarf neu erzeugen und die Lösung starten, z. B.:
python 01_Lineare_Regression/daten_erzeugen.py
python 01_Lineare_Regression/loesung.pyDie Skripte öffnen matplotlib-Fenster (plt.show()). Möchtest du sie ohne Fenster
nur auf Fehler prüfen, setze das Agg-Backend:
# PowerShell
$env:MPLBACKEND="Agg"; python 01_Lineare_Regression/loesung.pyaufgabe.pyöffnen und die Aufgabenteile lesen.- Ab
# ab hier selbst schreiben ...selbst lösen (nur numpy/matplotlib/sklearn). - Ausführen, Ausgaben und Plots prüfen.
- Mit
loesung.pyvergleichen.