【问题标题】:Adjust custom loss function for gradient boosting classification调整梯度提升分类的自定义损失函数
【发布时间】:2019-07-31 06:57:36
【问题描述】:

我已经实现了梯度提升决策树来进行多类分类。我的自定义损失函数如下所示:

import numpy as np
from sklearn.preprocessing import OneHotEncoder
def softmax(mat):
    res = np.exp(mat)
    res = np.multiply(res, 1/np.sum(res, axis=1, keepdims=True))
    return res
def custom_asymmetric_objective(y_true, y_pred_encoded):
    pred = y_pred_encoded.reshape((-1, 3), order='F')
    pred = softmax(pred)
    y_true = OneHotEncoder(sparse=False,categories='auto').fit_transform(y_true.reshape(-1, 1))
    grad = (pred - y_true).astype("float")
    hess = 2.0 * pred * (1.0-pred)
    return grad.flatten('F'), hess.flatten('F')


def custom_asymmetric_valid(y_true, y_pred_encoded):
    y_true = OneHotEncoder(sparse=False,categories='auto').fit_transform(y_true.reshape(-1, 1)).flatten('F')
    margin = (y_true - y_pred_encoded).astype("float")
    loss = margin*10
    return "custom_asymmetric_eval", np.mean(loss), False

一切正常,但现在我想通过以下方式调整我的损失函数:如果项目分类错误,它应该“惩罚”,并且应该为某个约束添加惩罚(这是之前计算的,让我们只是假设惩罚是例如 0,05,所以只是一个实数)。 有没有办法同时考虑错误分类和惩罚值?

【问题讨论】:

  • Deviance loss,在GradientBoostingClassifier 中使用已经会惩罚错误分类。您要添加的特殊约束是什么?你能补充一下它的细节吗?
  • 是否可以调整偏差损失以增加惩罚?要理解约束需要整个模型......但我认为知道约束的惩罚(之前计算过)在 0 到 5% 之间就足够了

标签: python machine-learning scikit-learn


【解决方案1】:

尝试 L2 正则化:权重将在减去 learning rateerrorx 加上惩罚项 lambda weight 的 2 次方后更新

简化:

这将是效果:

已添加:惩罚项(在等式右侧)增加了模型的泛化功率。因此,如果您在培训集中过度使用模型,则性能将在测试集中差。因此,您会在训练集中惩罚这些“正确”分类,这些分类会在测试集中产生错误并损害泛化能力。

【讨论】:

  • 感谢您的回答。我只是没有得到错误分类(因此Y_TRUE和Y_PRED之间的区别)受到惩罚? span>
  • 请检查添加到响应的文本。 span>
  • 您可以从头开始,这取决于您使用的算法。对于神经网络,KERAS具有L1和L2正则化选项。你也有山脊回归。对于树,如随机森林、决策树和梯度提升树,你可以做类似的事情,如果你让树修剪=通过移除树的分支来减少过拟合。另外,请记住,训练数据中的错误分类可能是由于随机误差的系统性造成的,其中一些是无法修复的。示例 X=[0,1,2,1]Y=[0]X=[0,1,2,1]Y=[1] 在同一数据集中。
  • @ sarah,选中此链接:scikit-learn.org/stable/modules/generated/… span>
  • 这种方法是否适合分类任务?我的意思是线性最小二乘实际用于回归不是吗? span>
猜你喜欢
  • 2019-11-03
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 2019-05-09
  • 2020-08-25
  • 1970-01-01
  • 2021-03-11
相关资源
最近更新 更多