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)
|
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()
|
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