feature: add algorithm notes and linter stuff
This commit is contained in:
@@ -138,6 +138,7 @@ def e42_clean_names(df: pd.DataFrame) -> pd.DataFrame:
|
|||||||
df.info()
|
df.info()
|
||||||
return df
|
return df
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
data = load()
|
data = load()
|
||||||
# Data Frame
|
# Data Frame
|
||||||
@@ -158,4 +159,6 @@ if __name__ == "__main__":
|
|||||||
data = e42_clean_names(data)
|
data = e42_clean_names(data)
|
||||||
# E4.3 Standardisieren: kein Bedarf (modellabhängig, gehört ans Training)
|
# E4.3 Standardisieren: kein Bedarf (modellabhängig, gehört ans Training)
|
||||||
data.to_csv(OUT, index=False)
|
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)"
|
||||||
|
)
|
||||||
|
|||||||
@@ -365,3 +365,51 @@
|
|||||||
- Modelanwendung
|
- Modelanwendung
|
||||||
- Das Modell bekommt neue unbekannte Daten
|
- Das Modell bekommt neue unbekannte Daten
|
||||||
- Macht eine Vorhersage basierend auf den Trainingsdaten
|
- 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
|
||||||
|
|||||||
Reference in New Issue
Block a user