feautre(notizen): add l4 notes afternoon
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user