gpt4 book ai didi

lightgbm - 使用具有平均精度召回分数的 lightgbm

转载 作者:行者123 更新时间:2023-12-04 13:59:49 26 4
gpt4 key购买 nike

我正在使用 LightGBM 并希望使用平均准确率召回作为指标。
我尝试定义 feval:

cv_result = lgb.cv(params=params, train_set=lgb_train, feature_name=Rel_Feat_Names, feval=APS)

其中 APS 定义为:
def APS(preds, train_data):
y_pred_val = []
y_test_val = []
for i, stat in enumerate(train_data.get_label.isnull()):
if ~stat:
y_pred_val.append(preds[i])
y_test_val.append(train_data.get_label[i])
aps = average_precision_score(np.array(y_test_val), np.array(y_pred_val))
return aps

我收到一个错误:

类型错误:未知类型的参数:feval,得到:函数

我也尝试使用“MAP”作为指标
cv_result = lgb.cv(params=params, train_set=lgb_train, feature_name=Rel_Feat_Names, "metric="MAP")

但出现以下错误:

“lightgbm.basic.LightGBMError:对于MAP metric,应该有查询信息”

我找不到所需的查询信息。

如何正确使用 feval 并定义“MAP”所需的查询

谢谢

最佳答案

现在你可以把map (别名 mean_average_precision)作为您的指标,如 here 所述,而是回答申请问题feval正确:
自定义指标的输出应该是名称、值和greater_is_better 的元组,因此在您的情况下:

def APS(preds, train_data):
aps = average_precision_score(train_data.get_label(), preds)
return 'aps', aps, False
然后也包括在您的 params 中以下: 'objective': 'binary', 'metric': 'None'

关于lightgbm - 使用具有平均精度召回分数的 lightgbm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com