Xgboost: ¿Es necesaria la normalización?

Creado en 17 jun. 2015  ·  3Comentarios  ·  Fuente: dmlc/xgboost

No estoy muy seguro de cómo funciona xgboost en teoría. Pero dado que xgboost es un clasificador basado en árbol, ¿está bien suponer que no es necesaria la normalización de características?

Comentario más útil

no, no tienes que normalizar las características

Todos 3 comentarios

no, no tienes que normalizar las características

Creo que entiendo que, en principio, no hay necesidad de normalización al impulsar árboles.

Sin embargo, se puede ver bastante impacto al escalar el objetivo y, especialmente con ' reg: gamma ', pero también (en menor medida) para ' reg: linear ' (el valor predeterminado). ¿Cuál es la razón para esto?

Ejemplo para el conjunto de datos de 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 (escala = 1e-06)
2.343273977065266 (escala = 0.0001)
2.3432793874455315 (escala = 0.01)
2.290595204136888 (escala = 1.0)
2.528513393507719 (escala = 100.0)
7.228978353091473 (escala = 10000.0)
272.29640759874474 (escala = 1000000.0)

El impacto de escalar y es realmente grande cuando se usa ' reg: gamma ':

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 (escala = 1e-06)
545.8298971540023 (escala = 0.0001)
37.68688286293508 (escala = 0.01)
4.039819858716935 (escala = 1.0)
2.505477263590776 (escala = 100.0)
198.94093800190453 (escala = 10000.0)
592.1469169959003 (escala = 1000000.0)

@tqchen Al leer su excelente Introducción a Boosted Trees , no me queda claro por qué el escalado de características no es necesario en términos matemáticos.

¿Fue útil esta página
0 / 5 - 0 calificaciones