Xgboost: Apakah Normalisasi diperlukan?

Dibuat pada 17 Jun 2015  ·  3Komentar  ·  Sumber: dmlc/xgboost

Saya tidak yakin bagaimana xgboost bekerja secara teori. Tetapi karena xgboost adalah pengklasifikasi berbasis pohon, apakah boleh berasumsi bahwa tidak diperlukan normalisasi fitur?

Komentar yang paling membantu

tidak, Anda tidak perlu menormalkan fitur

Semua 3 komentar

tidak, Anda tidak perlu menormalkan fitur

Saya pikir saya mengerti bahwa pada prinsipnya tidak perlu normalisasi saat meningkatkan pohon.

Namun, seseorang dapat melihat beberapa dampak ketika menskalakan target y, terutama dengan ' reg:gamma ', tetapi juga (pada tingkat lebih rendah) untuk ' reg:linear ' (default). Apa alasannya?

Contoh untuk kumpulan data Perumahan Boston:

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=10000.0)
272.29640759874474 (skala = 1000000.0)

Dampak penskalaan y sangat besar saat menggunakan ' 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 (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=10000.0)
592.1469169959003 (skala = 1000000.0)

@tqchen Membaca Pengantar Anda untuk Pohon yang Didorong , tidak jelas bagi saya mengapa penskalaan fitur tidak diperlukan dalam istilah matematika.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat