簡體   English   中英

LightGBM時間序列預測如何實現LINEX loss function?

[英]How to implement LINEX loss function for LightGBM time series forecast?

在需求預測中,請記住,低估需求對大多數企業的傷害更大,因為高估某種產品的需求會增加成本。

Gradient Boosting 機器的標准損失 function 是 RMSE,它沒有平滑的導數。

為了使目標更“商業化”,我們可以定義一個自定義損失 function,將產品價格考慮在內(例如非對稱 MSE)。

另一種可能性是所謂的 LINEX 損失 function。LINEX 代表線性指數損失並說明不對稱損失。

然而,我在R中很難實現LINEX。我只找到了一個沒有深入描述的公式。 在此處輸入圖像描述

圖示示例顯示了 xgboost model 的實現。

有誰知道,如何在防風草中實現這個?

這是一個示例,如何實現自定義損失 function:

library(tidymodels)
library(lightgbm)
library(bonsai)
mod <- boost_tree("regression") %>% 
  set_engine("lightgbm",
             objective = function(preds, dtrain) {
               truth <- as.numeric(getinfo(dtrain, "label"))
               error <- truth - preds
               gradient <- -2 * error
               hess <- rep.int(2, length(preds))
               list(grad = gradient, hess = hess)
             }
             )

您可能必須編寫自定義標准 function

您還可以添加一個GitHub 問題來實現它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM