Xgboost: A normalização é necessária?

Criado em 17 jun. 2015  ·  3Comentários  ·  Fonte: dmlc/xgboost

Não tenho certeza de como o xgboost funciona em teoria. Mas como o xgboost é um classificador baseado em árvore, é correto assumir que nenhuma normalização de recursos é necessária?

Comentários muito úteis

não, você não tem que normalizar os recursos

Todos 3 comentários

não, você não tem que normalizar os recursos

Acho que entendo que, em princípio, não há necessidade de normalização ao aumentar árvores.

No entanto, pode-se ver algum impacto ao dimensionar o alvo y, especialmente com ' reg: gamma ', mas também (em uma extensão menor) para ' reg: linear ' (o padrão). Qual é a razão para isto?

Exemplo para o conjunto de dados 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)

O impacto de dimensionar y é muito grande ao usar ' 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 Lendo sua ótima introdução às árvores impulsionadas , não está claro para mim por que o dimensionamento de recursos não é necessário em termos matemáticos.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

vkuznet picture vkuznet  ·  3Comentários

matthewmav picture matthewmav  ·  3Comentários

nicoJiang picture nicoJiang  ·  4Comentários

trivialfis picture trivialfis  ·  3Comentários

tqchen picture tqchen  ·  4Comentários