Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
data_mining:gradient_boosting [2016/01/17 14:24] – phreazer | data_mining:gradient_boosting [2017/07/19 18:34] (current) – [Basic idea] phreazer | ||
---|---|---|---|
Line 7: | Line 7: | ||
$f^*(X)$ sollte interpretierbar sein, d.h. eine Struktur besitzen, die den Anteil jedes Beitrags eines unabhängigen Variablen erklärt. | $f^*(X)$ sollte interpretierbar sein, d.h. eine Struktur besitzen, die den Anteil jedes Beitrags eines unabhängigen Variablen erklärt. | ||
- | Beispiel hierfür ist die GLM-Struktur (Generalized Linear Model): | + | |
+ | |||
+ | Beispiel hierfür ist die GLM-Struktur (Generalized Linear Model (Nelder & Wedderburn): | ||
$$f^*(X) = \beta_0 + \beta_1 X_1 + ... + \beta_n X_n$$ | $$f^*(X) = \beta_0 + \beta_1 X_1 + ... + \beta_n X_n$$ | ||
+ | (Unterschied zu LM: Fehlerterm muss nicht normalverteilt sein, sondern kann Verteilung der exponentiellen Familie besitzen) | ||
+ | |||
Beispiel für eine GAM-Struktur (Generalized Additive Model): | Beispiel für eine GAM-Struktur (Generalized Additive Model): | ||
$$f^*(X) = \beta_0 + f_1(X_1) + ... + f_n(X_n)$$ | $$f^*(X) = \beta_0 + f_1(X_1) + ... + f_n(X_n)$$ | ||
+ | Typische Vorgehensweise ist die ML-Schätzung um ein Regressionsmodell zu fitten. | ||
+ | Probleme ML-Schätzung: | ||
+ | * Multikollinearität der Prädiktorvariablen (feature selection notwendig) | ||
+ | * Gewöhnliche Featureselektion (univariate, | ||
+ | |||
+ | Gradient boosting wird eingesetzt, um allgemeine Arten von Risikofunktionen bzgl. einer Vorhersagefunktion $f$ zu minimieren. | ||
+ | |||
+ | Beispiele hierzu: Quadrierter Fehler in gauß' | ||
+ | |||
+ | Boosting führt zu einer additiven Vorhersagefunktion, | ||
+ | |||
+ | Wenn Boosting bis zur Konvergenz durchgeführt wird, kann es als Alternative zu konventionellen Fittingmethoden (wie Fisher scoring, backfitting) für GAM Modelle gesehen werden. | ||
+ | |||
+ | ===== Warum boosting? ===== | ||
+ | |||
+ | * Verschiedene Risikofunktionen (absoluter loss, quantile regression) | ||
+ | * Feature selection während der Fitting Prozess | ||
+ | * Anwendbar, wenn $p >> n$ | ||
+ | * Adressiert Multikollinearitätsprobleme | ||
+ | * Optimiert Accuracy (bzgl. Risikofunktion). | ||
+ | |||
+ | Schätzproblem | ||
+ | |||
+ | Schätzung von $f^* := \argmin_{f(.)} E[p(Y, | ||
+ | |||
+ | Beispielhafte Loss-Funktion: | ||
+ | |||
+ | Gegeben $X=(X_1, ..., X_n), Y=(Y_1, | ||
+ | |||
+ | $$R = \frac{1}{n} \sum_{i=1}^n p(Y_i, f(X_i))$$ | ||
+ | |||
+ | Beispiel (quadratischer Fehler): | ||
+ | $$R = \frac{1}{n} \sum_{i=1}^n p(Y_i - f(X_i))^2$$ | ||
+ | |||
+ | ===== Basic idea ===== | ||
+ | - Generate simple regression model. | ||
+ | - Compute error residual. | ||
+ | - Learn to predict residual | ||
+ | - Add to initial model |