lightgbm使用自定义损失函数后,二分类的预测结果不再是【0,1】区间

  统计/机器学习 监督式学习    浏览次数:179        分享
1

如题,对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,效果和不自定义损失函数差很多。

 

wwb_306   2020-06-17 08:55



    还没有回答。我来答!  


  相关主题

剪枝是什么意思   1回答

关于knn算法中kd树的问题   1回答

决策树可以做多元分类吗?   1回答

决策树算法ID3,C4.5和CART的特点、异同?   3回答

Adaboost里的树有没有可能权重是负数?   1回答

决策树是如何得到量化的概率,不只是0或1的标签?   2回答

gbdt为什么需要泰勒公式展开进行节点分裂计算   2回答

请问针对Adaboost、GBDT等集成学习同一个特征是否可以入模多次?   1回答

决策树怎么做增量学习或者online学习?   1回答

决策树的深度和数据特征个数的关系   1回答

python里实现一个简单的决策树   1回答

决策树、随机森林中的多重共线性问题   3回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!