Xgboost: Ist eine Normalisierung notwendig?

Erstellt am 17. Juni 2015  ·  3Kommentare  ·  Quelle: dmlc/xgboost

Ich bin mir nicht ganz sicher, wie xgboost theoretisch funktioniert. Aber da xgboost ein baumbasierter Klassifikator ist, ist es in Ordnung anzunehmen, dass keine Normalisierung von Funktionen erforderlich ist?

Hilfreichster Kommentar

nein du musst die Features nicht normalisieren

Alle 3 Kommentare

nein du musst die Features nicht normalisieren

Ich denke, ich verstehe, dass beim Boosten von Bäumen im Prinzip keine Normalisierung erforderlich ist.

Allerdings kann man bei der Skalierung des Ziels y einige Auswirkungen sehen, insbesondere bei ' reg:gamma ', aber auch (in geringerem Maße) bei ' reg:linear ' (Standard). Was ist der Grund dafür?

Beispiel für den Datensatz Boston Housing:

import numpy as np
import xgboost as xgb
from sklearn.metrics import mean_squared_error
from sklearn.datasets import load_boston

boston = load_boston()
y = boston['target']
X = boston['data']

for scale in np.logspace(-6, 6, 7):
    xgb_model = xgb.XGBRegressor().fit(X, y / scale)
    predictions = xgb_model.predict(X) * scale
    print('{} (scale={})'.format(mean_squared_error(y, predictions), scale))

2.3432734454908335 (Skala=1e-06)
2.343273977065266 (Skala=0,0001)
2.3432793874455315 (Skala=0,01)
2.290595204136888 (Skala=1,0)
2.528513393507719 (Skala=100.0)
7.228978353091473 (Skala=1000.0)
272.29640759874474 (Skala=1000000.0)

Die Auswirkung der Skalierung von y ist bei der Verwendung von ' reg:gamma ' wirklich groß:

for scale in np.logspace(-6, 6, 7):
    xgb_model = xgb.XGBRegressor(objective='reg:gamma').fit(X, y / scale)
    predictions = xgb_model.predict(X) * scale
    print('{} (scale={})'.format(mean_squared_error(y, predictions), scale))

591.6509503519147 (Skala=1e-06)
545,8298971540023 (Skala=0,0001)
37,68688286293508 (Skala=0,01)
4.039819858716935 (Skala=1,0)
2.505477263590776 (Skala=100,0)
198.94093800190453 (Skala=1000.0)
592.1469169959003 (Skala=1000000.0)

@tqchen Wenn Einführung in Boosted Trees lese , ist mir nicht klar, warum die Skalierung von Funktionen in mathematischer Hinsicht nicht erforderlich ist.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

wenbo5565 picture wenbo5565  ·  3Kommentare

RanaivosonHerimanitra picture RanaivosonHerimanitra  ·  3Kommentare

trivialfis picture trivialfis  ·  3Kommentare

hx364 picture hx364  ·  3Kommentare

uasthana15 picture uasthana15  ·  4Kommentare