data_mining:gradient_boosting

Gradient Boosting

Grundlegendes simples Problem:

Gegeben Vektor von unabhängigen Veriablen $X = (X_1, ..., X_n)^T$ finde eine optimale Funktion $f^*(X)$, die abhängige Variable $Y$ vorhersagt.

$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 (Nelder & Wedderburn): $$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): $$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, forward/backward) sind instabil oder erfordern das mehrfache Fitten des Modells.

Gradient boosting wird eingesetzt, um allgemeine Arten von Risikofunktionen bzgl. einer Vorhersagefunktion $f$ zu minimieren.

Beispiele hierzu: Quadrierter Fehler in gauß'scher Regression, negative log likelihood loss function.

Boosting führt zu einer additiven Vorhersagefunktion, wie $f^*(X)=\beta_0+f_1(X_1)+...+f_p(X_p)$

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.

  • 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,f(X))]$ mit $p$ als differenzierbare Loss-Funktion bzgl. einer Vorhersagefunktion $f(X)$.

Beispielhafte Loss-Funktion: Quadrierter Fehler in Gauß'scher Regression $p=(Y-f(X))^2$

Gegeben $X=(X_1, ..., X_n), Y=(Y_1,...,Y_n)$, minimiere das empirische Risiko

$$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$$

  1. Generate simple regression model.
  2. Compute error residual.
  3. Learn to predict residual
  4. Add to initial model
  • data_mining/gradient_boosting.txt
  • Last modified: 2017/07/19 20:34
  • by phreazer