====== 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. ===== 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,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$$ ===== Basic idea ===== - Generate simple regression model. - Compute error residual. - Learn to predict residual - Add to initial model