gpt4 book ai didi

python - 如何使用 lightgbm.cv 进行回归?

转载 作者:太空狗 更新时间:2023-10-29 17:13:11 34 4
gpt4 key购买 nike

我想使用 lgb.Dataset 并使用 early_stopping_rounds 对 LightGBM 模型进行交叉验证。以下方法适用于 XGBoost 的 xgboost.cv。我不喜欢将 Scikit Learn 的方法与 GridSearchCV 一起使用,因为它不支持提前停止或 lgb.Dataset。

import lightgbm as lgb
from sklearn.metrics import mean_absolute_error
dftrainLGB = lgb.Dataset(data = dftrain, label = ytrain, feature_name = list(dftrain))

params = {'objective': 'regression'}

cv_results = lgb.cv(
params,
dftrainLGB,
num_boost_round=100,
nfold=3,
metrics='mae',
early_stopping_rounds=10
)

任务是做回归,但是下面的代码会报错:

Supported target types are: ('binary', 'multiclass'). Got 'continuous' instead.

LightGBM 是否支持回归,还是我提供了错误的参数?

最佳答案

默认情况下,lightgbm.cv 中的分层参数为 True。根据the documentation :

stratified (bool, optional (default=True)) – Whether to perform stratified sampling.

但是分层只适用于分类问题。因此,要使用回归,您需要将其设为 False。

cv_results = lgb.cv(
params,
dftrainLGB,
num_boost_round=100,
nfold=3,
metrics='mae',
early_stopping_rounds=10,

# This is what I added
stratified=False
)

现在可以使用了。

关于python - 如何使用 lightgbm.cv 进行回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49774825/

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