构建跨季节机器学习模型:自定义xgboost模型损失函数方案

构建跨季节机器学习模型:自定义xgboost模型损失函数方案

构建跨季节机器学习模型:

许多机器学习模型具有季节性;

基于问题的迭代分析,我们可能需要构建自定义的损失函数;在自定义损失函数中计算梯度和嗨森矩阵;

注意:使用xgboost包的xgboost API而不是使用sklearn类似的API

#自定义损失函数;

#weight其实就是不同季节对应的不同的权重参数,例如,以温度预测模型为例,个别地域,温度在秋天和春天波动较大,那么我们可以加大对对应月份的训练样本的惩罚力度,让数据快速跟随,而不是缓慢跟随上去,消除模型自身滞后效应;

def custom_loss(self, y_true, y_pred):
    residual = (y_true - y_pred).astype("float")
    grad = np.where(residual < 0, - 2 * self.weight * residual, - 2 * residual)
    hess = np.where(residual < 0, 2 * self.weight, 2.0)
    return grad, hess


def custom_asymmetric_valid(self, preds, train_result):
    y_true 

猜你喜欢

转载自blog.csdn.net/zhongkeyuanchongqing/article/details/120685026