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()
|
||||
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)"
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user