使用Xvars的Xgboost自定义eval函数

时间:2018-03-02 19:33:03

标签: python machine-learning xgboost

我想构建一个xgb可以使用的自定义评估函数。它主要是跨多个群体的加权平均函数。来自xgboost文档的AFAIK示例自定义eval调用有点像这样:

def custom_loss(yhat, dtrain):
    y = dtrain.get_label()
    return 'mae', mean_absolute_error(np.exp(y)-shift,
                                  np.exp(yhat)-shift)

我想要传递的是我的数据帧。所以函数调用可能是这样的:

def custom_loss(yhat, dtrain, X):
    y = dtrain.get_label()
    # Do some groupby with X and so on....
    # Get wrmse here 
    return 'wrmse', wrmse 

其中X可以是我的火车/评估数据帧。有人可以告诉我是否有办法实现这一目标?

我的第二点是即使我能够通过这个" X"(训练/评估数据帧)它是否是DMatrix对象?如果是,是否有某种方法从中提取列?

0 个答案:

没有答案