如题,对lightgbm使用如下的自定义函数后
def logistic_obj(y_hat, dtrain):
    y = dtrain.get_label()
    p = y_hat 
    p = 1. / (1. + np.exp(-y_hat)) # 用于避免hessian矩阵中很多0
    grad = p - y
    hess = p * (1. - p)
    grad = 4 * p * y + p - 5 * y
    hess = (4 * y + 1) * (p * (1.0 - p))
    return grad, hess其预测结果不再是【0,1】,而是有正有负。如果再结果上再加一层sigmoid,效果和不自定义损失函数差很多。
    
  相关讨论
  随便看看