Π― Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅Π½, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ xgboost Π² ΡΠ΅ΠΎΡΠΈΠΈ. ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ xgboost - Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ?
Π½Π΅Ρ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠΌΠ°Ρ, Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ Π±ΡΡΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π².
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ y, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ Β« reg: gamma Β», Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ (Π² ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ) Π΄Π»Ρ Β« reg: linear Β» (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). Π§ΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΡΠΎΠ³ΠΎ?
ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ 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 (ΠΌΠ°ΡΡΡΠ°Π± = 1e-06)
2,343273977065266 (ΠΌΠ°ΡΡΡΠ°Π± = 0,0001)
2,3432793874455315 (ΠΌΠ°ΡΡΡΠ°Π± = 0,01)
2,290595204136888 (ΠΌΠ°ΡΡΡΠ°Π± = 1,0)
2,528513393507719 (ΠΌΠ°ΡΡΡΠ°Π± = 100,0)
7,228978353091473 (ΠΌΠ°ΡΡΡΠ°Π± = 10000,0)
272,29640759874474 (ΠΌΠ°ΡΡΡΠ°Π± = 1000000,0)
ΠΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ y Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π΅Π»ΠΈΠΊΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ 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 (ΠΌΠ°ΡΡΡΠ°Π± = 1e-06)
545,8298971540023 (ΠΌΠ°ΡΡΡΠ°Π± = 0,0001)
37,68688286293508 (ΠΌΠ°ΡΡΡΠ°Π± = 0,01)
4,039819858716935 (ΠΌΠ°ΡΡΡΠ°Π± = 1,0)
2,505477263590776 (ΠΌΠ°ΡΡΡΠ°Π± = 100,0)
198.94093800190453 (ΠΌΠ°ΡΡΡΠ°Π± = 10000,0)
592,1469169959003 (ΠΌΠ°ΡΡΡΠ°Π± = 1000000,0)
@tqchen Π§ΠΈΡΠ°Ρ Π²Π°ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Boosted Trees, ΠΌΠ½Π΅ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π½Π΅Ρ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ