You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RandomizedSearchCV调优LightGBM时feature_fraction<=1.0报错问题

问题根源

报错的核心原因是feature_fraction参数的实际生成值超过了LightGBM要求的上限1.0,本质是对scipy.stats.uniform的参数定义理解有误。
scipy.stats.uniform接收的两个参数分别是loc和scale:loc为均匀分布区间的左端点,scale为区间的长度,最终生成的随机值范围为**[loc, loc + scale]**,而非你误以为的[loc, 第二个参数]。
你当前设置的参数实际取值范围如下:

  • feature_fraction = uniform(0.5, 0.95):实际取值范围为 0.5 ≤ x ≤ 0.5 + 0.95 = 1.45,存在大量大于1.0的取值,直接触发LightGBM的参数校验报错
  • bagging_fraction = uniform(0.35, 0.95):实际取值范围为 0.35 ≤ x ≤ 0.35 + 0.95 = 1.3,同样存在超出上限1.0的风险
修复方案

如果需要限定参数的取值上限为0.95,scale参数需要设置为上限值 - 左端点值:

  • feature_fraction要落在[0.5, 0.95]区间内,scale应设置为 0.95 - 0.5 = 0.45
  • bagging_fraction要落在[0.35, 0.95]区间内,scale应设置为 0.95 - 0.35 = 0.6

修正后的参数配置如下:

from scipy.stats import uniform
params = dict()
params['feature_fraction'] = uniform(0.5, 0.45)
params['bagging_fraction'] = uniform(0.35, 0.6)
params['bagging_freq'] = [1]

内容的提问来源于stack exchange,提问作者Olli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:27:03