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

MLP Regressor拟合报错ValueError:shuffle参数值异常的解决方法

解决MLP Regressor拟合时的shuffle参数报错问题

我为MLP Regressor找到了最佳超参数网格,通过以下代码设置参数:

model=model0.set_params(**best_grid)

执行拟合代码时:

mod1=model.fit(X_pp, y)

出现报错:

ValueError: shuffle must be either True or False, got True.

best_grid内容如下:

{'activation': 'relu',
 'alpha': 0.1,
 'batch_size': 'auto',
 'beta_1': 0.9,
 'beta_2': 0.9,
 'early_stopping': True,
 'epsilon': 1e-07,
 'hidden_layer_sizes': [62, 31, 48],
 'learning_rate': 'constant',
 'learning_rate_init': 0.01,
 'max_fun': 15000,
 'max_iter': 10000,
 'momentum': 0.6,
 'n_iter_no_change': 10.0,
 'nesterovs_momentum': True,
 'power_t': 0.5,
 'random_state': None,
 'shuffle': True,
 'solver': 'sgd',
 'tol': 0.1,
 'validation_fraction': 0.1,
 'verbose': False,
 'warm_start': False}

解决方案

  • 修复n_iter_no_change参数类型:你的best_grid中n_iter_no_change是浮点数10.0,但scikit-learn要求该参数为整数。将其修改为整数10:

    best_grid['n_iter_no_change'] = 10
    

    这类参数类型不匹配会触发内部校验逻辑异常,进而导致看似无关的shuffle参数报错,这是最常见的原因。

  • 确认shuffle参数类型:如果上述修改后仍报错,检查shuffle的值是否确实是布尔类型。若网格搜索过程中它被意外转为字符串(比如'True'),则强制转换为布尔值:

    best_grid['shuffle'] = bool(best_grid['shuffle'])
    

修改完成后重新执行参数设置和拟合代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:00:55