feature: add algorithm notes and linter stuff

This commit is contained in:
2026-05-28 15:47:05 +02:00
parent 1410c6c990
commit 5e4151d261
2 changed files with 52 additions and 1 deletions
+4 -1
View File
@@ -138,6 +138,7 @@ def e42_clean_names(df: pd.DataFrame) -> pd.DataFrame:
df.info()
return df
if __name__ == "__main__":
data = load()
# Data Frame
@@ -158,4 +159,6 @@ if __name__ == "__main__":
data = e42_clean_names(data)
# E4.3 Standardisieren: kein Bedarf (modellabhängig, gehört ans Training)
data.to_csv(OUT, index=False)
print(f"Fertig: {OUT} geschrieben ({data.shape[0]} Zeilen, {data.shape[1]} Spalten)")
print(
f"Fertig: {OUT} geschrieben ({data.shape[0]} Zeilen, {data.shape[1]} Spalten)"
)
+48
View File
@@ -365,3 +365,51 @@
- Modelanwendung
- Das Modell bekommt neue unbekannte Daten
- Macht eine Vorhersage basierend auf den Trainingsdaten
## Algorithmen Übersicht
- lineare Modelle
- Baumverfahren
- Ensemble-Verfahren
- Suport Vector Machines
- Naive Bayes
- k-Nearest Neighbors
- Neuronale Netze
## kNN: k Nearest Neighbors
- Ist sehr intuitiv
- Berechnet man anhand von Distanzen
- Kosinus Distanz
- Manhattan Distanz
- Euklidische Distanz
- k Nachbarn auswählen (k ist eine natürliche Zahl) die berücksichtig werden
- einer der wichtigsten Schritte bei diesem Modell
- schlecht gewähltes k führt zu Over- oder Underfitting
- ist abhänig von der Datenmenge
- entscheidung treffen
- Klassifikation: Mehrheit gewinnt
- Regression: Durchschnitt der Nachbaren
- Grundprinzip
- kelines k -> Overfitting -> Modell reagiert auf zu viele Punkte
- grosses k -> Underfitting -> Modell wird zu grob
- Vorteile
- Einfachheit
- Nachteile
- langsames Training
- viel Rechenaufwand
- kNN wid vor allem dort eingesetzt wo die Ähnlichkeit zwischen Datenpunkten eine grosse Rolle spielt!
- kNN ist kein Clusterin Algorithmus aber es kann ähnliche Ergebnisse liefern
- kNN funktioniert am besten, wenn Daten übersichtlich, niederdimensional und gut skaliert sind
## kNN mit scikit-learn
- kNN ist ein Klassifikator, das generelle Vorgehen ist wie folgt
1. laden der Daten
2. auftrennen in feature Matrix (X) und Traget Vektor (y): Features - Target - Split
3. auftrennen von X und y in trainingsset (X_train, y_train) und Testset (X_Test und y_test)
4. importieren der Trainingsfunktion
5. definieren des zu lernenden Modells mit gewünschter Parametrisierung
6. trainieren des Modells
7. anwenden des Modells
8. evaluieren der performance