Para el problema de clasificación, por supuesto, tiene que convertirse a OHE, y luego out_dims
se realiza el ajuste para cada
1 2 GL 2 HL + λ + 1 2 GR 2 HR + λ - 1 2 (GL + GR) 2 HL + HR + λ - γ \ frac {1} {2} \ frac {G_ {L} ^ {2} } {H_ {L} + \ lambda} + \ frac {1} {2} \ frac {G_ {R} ^ {2}} {H_ {R} + \ lambda} - \ frac {1} {2} \ frac {\ left (G_ {L} + G_ {R} \ right) ^ {2}} {H_ {L} + H_ {R} + \ lambda} - \ gamma 21HL+λGRAMOL2+21HR+λGRAMOR2-21HL+HR+λ( GL+GRAMOR)2-C
XGBoostRegressionTree
Heredado DecisionTree
, buenos chicos, no reescriban la función. De una manera tan oscura, me sorprendió durante unos minutos entender. Tal vez el autor quiera que entendamos a través del nombre de la función
class SquareLoss(Loss):
def __init__(self):
pass
def loss(self, y, y_pred):
pass
def grad(self, y, y_pred):
return -(y - y_pred)
def hess(self, y, y_pred):
return 1
class CrossEntropyLoss(Loss):
def __init__(self):
pass
def loss(self, y, y_pred):
pass
def grad(self, y, y_pred):
return - (y - y_pred)
def hess(self, y, y_pred):
return y_pred * (1-y_pred)