From 6d6cc9f9172c34bbd50952fac68ce7c4ef07fa8d Mon Sep 17 00:00:00 2001 From: aaron Date: Thu, 4 Jun 2026 14:56:41 +0200 Subject: [PATCH] feautre(notizen): add l4 notes afternoon --- SL/notizen/L4_Notizen.md | 75 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/SL/notizen/L4_Notizen.md b/SL/notizen/L4_Notizen.md index f4a404e..32e6116 100644 --- a/SL/notizen/L4_Notizen.md +++ b/SL/notizen/L4_Notizen.md @@ -291,3 +291,78 @@ from sklearn.inspection import permutation_importance r = permutation_importance(model, X_test, y_test, n_repeats=10, random_state=1234) perm = pd.Series(r.importances_mean, index=X_train.columns).sort_values() ``` + +--- + +## RandomForest Tree + +- ist ein ensemble Lernverfahren das aus vielen einzelnen Entscheidungsbäumen besteht +- jeder Baum trifft eine Vorhersage und der RandomForest kombiniert diese zu einer Gesamtvorhersage +- Sammlung zufällig trainierter Entscheidungsbäume +- Gemeinsame Entscheidung ist besser als einzelne Vorhersagen + +### Ablauf + +1. Bootstrap-Sampling + - Für jeden baum zufälliges Dataset ziehen (mit zurücklegen) +2. Random Feature Selection + - Bei jedem Split darf der Baum nur aus einer zufälligen Auswahl von Features wählen +3. Viele Bäume trainieren + - 100-1000 Bäume + - jeder Baum ist schwach, zusammen sind sie stark +4. Aggregation der Vorhersagen + - Klassifikation (Mehrheitsvoting) + - Regression (Durchschnitt aller Baumvorhersagen) + +### Hyperparameter + +1. n_estimators + - Anzahl der Bäume im Wald + - Mehr Bäume -> stabiler, genauer aber langsamer +2. max_depth + - Maximale Tiefe jedes einzelnen Baums + - Klein -> verhindert Overfitting + - Gross -> jeder Baum wird komplexer +3. max_features + - Wie viele Features pro Split? + - Klassifikation oft "sqrt" +4. min_samples_split + - Minimale Anzahl Samples die nötig sind um einen Split zu erzeugen + - Höher -> glattere, stabilere Bäume + - Tiefer -> Mehr Splits +5. min_samples_leaf + - Minimale Anzahl Samples in einem Blatt + - Höher -> robust gegen rauschen + - Tiefer -> feinere instabilere Blätter (bei unbalancierten Daten wichtig) +6. Bootstrap + - Ob bootstrap-Sampling verwendet wird + - True -> jeder Baum sieht zufällige Daten + - False -> alle Bäume sehen dieselben Daten +7. criterion + - Reinheitsmass für Splits + - Klassifikation: Gini oder entropy + - Regression: squared_error oder absolute_error +8. max_leaf_nodes + - Begrenzt die Anzahl Blätter pro Baum + - Verhindert extreme Tiefe +9. oob_score + - Out Of Bag validierung aktivieren + - Liefert eine eingebaute Testgenauigkeit + - Spart einen separaten Validierungssplit + +### Unterschied zu DecisionTree + +- es werden viele Bäume trainiert (100-1000) +- jeder Baum basiert auf Zufallsstichprobe +- kein Pruning, Bäume werden voll ausgebaut +- Vorhersage: Alle Bäume werden aus gewertet und es wird abgestimmt + +- DecistionTree, wenn + - leicht erklärbares Modell wird benötigt + - Daten sind einfach und Overfitting kontrollierbar ist + - schnelle Trainings und Vorhersagezeiten +- Random Forest, wenn + - Maximale Genauigkeit + - komplexe Daten, verrauscht, hochdimensional + - Robustheit + - Overfitting unbedingt zu vermeiden ist