Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:m245:learningunits:lu02:loesungen:l02 [2026/01/05 13:26] – angelegt vdemirde:modul:m245:learningunits:lu02:loesungen:l02 [2026/04/08 08:43] (aktuell) – [Modellvergleich] vdemir
Zeile 3: Zeile 3:
 ===== Voraussetzung ===== ===== Voraussetzung =====
  
-  pip install pandas scikit-learn joblib +<code python> 
-  +pip install pandas scikit-learn joblib 
 +</code> 
 ===== Python-Skript: ml_basics_shop.py ===== ===== Python-Skript: ml_basics_shop.py =====
 +<code python>
 import pandas as pd import pandas as pd
 from sklearn.model_selection import train_test_split from sklearn.model_selection import train_test_split
Zeile 15: Zeile 17:
 from sklearn.metrics import accuracy_score, confusion_matrix, classification_report from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
 import joblib import joblib
- +  
-# -----------------------------+# -----------------------------  
 # Daten laden # Daten laden
 # ----------------------------- # -----------------------------
 data = pd.read_csv("shop_data.csv") data = pd.read_csv("shop_data.csv")
- 
 X = data.drop("buy", axis=1) X = data.drop("buy", axis=1)
 y = data["buy"] y = data["buy"]
Zeile 27: Zeile 28:
 # Train / Test Split # Train / Test Split
 # ----------------------------- # -----------------------------
-X_train, X_test, y_train, y_test = train_test_split( +X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42)
-    X, y, test_size=0.2, random_state=42 +
-)+
  
 # ----------------------------- # -----------------------------
Zeile 41: Zeile 40:
 log_reg_pipeline.fit(X_train, y_train) log_reg_pipeline.fit(X_train, y_train)
 y_pred_lr = log_reg_pipeline.predict(X_test) y_pred_lr = log_reg_pipeline.predict(X_test)
 +#
 print("Logistische Regression") print("Logistische Regression")
 print("Accuracy:", accuracy_score(y_test, y_pred_lr)) print("Accuracy:", accuracy_score(y_test, y_pred_lr))
Zeile 77: Zeile 76:
  
 print("\nVorhersage fuer neuen Kunden:", prediction[0]) print("\nVorhersage fuer neuen Kunden:", prediction[0])
 +</code>
 +  
 +===== Modellvergleich =====
 +^ Kriterium ^ Logistische Regression ^ Decision Tree ^
 +| Interpretierbarkeit | hoch | mittel | 
 +| Overfitting-Gefahr | gering | hoch | 
 +| Skalierung | nötig ja | nein | 
 +| Didaktisch | sinnvoll sehr | ja | 
  
 +===== Fazit =====
 +  * Bei kleinen, sauberen Datensätzen ist die Logistische Regression meist stabiler. 
 +  * Decision Trees sind anschaulich, aber übermotiviert – sie merken sich gern alles bzw. "lernen einen Fall auswendig".
  
 +----
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Volkan Demir
  
 +  
  • de/modul/m245/learningunits/lu02/loesungen/l02.1767615993.txt.gz
  • Zuletzt geändert: 2026/01/05 13:26
  • von vdemir