如题,对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,效果和不自定义损失函数差很多。
相关主题
关于knn算法中kd树的问题
1回答
决策树可以做多元分类吗?
1回答
怎么理解RandomForest中的max_features?
1回答
决策树的深度和数据特征个数的关系
1回答
怎么得到randomforestregressor里每棵树的预测结果?
1回答
关于为什么要用GBDT的疑问
1回答
剪枝是什么意思
1回答
Extra Tree算法
1回答
随机森林的模型一般都很大么?
3回答
我们谢绝在回答前讲“生动”的故事。
我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。
我们谢绝答非所问。
我们谢绝自己不会、硬要回答。
我们感激每一个用户在编写答案时的努力与付出!