You need to enable JavaScript to run this app. RandomizedSearchCV调参出现测试得分非有限警告如何解决
优惠活动
大模型
产品
解决方案
定价
更多

RandomizedSearchCV调参出现测试得分非有限警告如何解决

问题根源

你遇到的警告完全是max_features超参数的取值范围非法导致的,和数据集编码、类别覆盖问题无关:
随机森林的max_features参数如果传入浮点型数值,代表节点分裂时抽样使用的特征占总特征数的比例,合法取值区间为*(0, 1]*。而你的代码中使用np.arange(0, 1, 0.05)生成参数候选值,生成的数组第一个元素为0,当随机搜索抽到该参数值时,单棵决策树节点分裂时无法选择任何特征,模型训练失败,对应交叉验证折的得分直接返回nan,最终触发UserWarning。你移除该参数后所有参数均为合法取值,自然不会出现警告。

你现有编码逻辑是正常的,因为移除max_features后调参流程完全正常,不需要调整数据预处理逻辑。

解决方法

  • 调整max_features的候选值范围,把起始值调整为大于0的数值,示例如下:
'max_features': np.arange(0.1, 1, 0.05) # 最小取0.1,确保所有取值合法
  • 后续调参时如果遇到类似nan警告,可以给RandomizedSearchCV添加error_score='raise'参数,遇到参数非法时会直接抛出明确错误,比返回nan更方便定位问题:
random_model_search = RandomizedSearchCV(
    estimator=classifier,
    param_distributions=param_grid,
    n_iter=100,
    scoring="f1",
    return_train_score=True,
    n_jobs=-1,
    cv=3,
    random_state=random,
    error_score='raise' # 出错直接抛出异常
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 19:15:03