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

使用RandomizedSearchCV调用fit时报缺少位置参数X错误如何解决?

问题原因

这是scikit-learn接口参数命名规则和Keras参数命名规则冲突导致的问题:

  • scikit-learn所有评估器的fit方法强制要求特征输入参数名为大写的X,而Keras自身的模型fit方法兼容小写x
  • 你调用的RandomizedSearchCV是scikit-learn的组件,它的fit方法只会识别大写X作为特征输入参数,你传入的小写x=X_train_pca会被判定为额外参数,传递给内层Keras模型的fit方法,因此scikit-learn层面会抛出缺少位置参数X的错误。

解决方案

直接修改fit调用的参数名即可,把小写的x改成大写的X:

history = rscv_model.fit(X=X_train_pca,
                         y=y_train,
                         validation_split=0.1,
                         epochs=epochs,
                         batch_size=batch_size,
                         callbacks=callbacks,
                         shuffle=True,
                         verbose=0)

额外注意点

你当前定义的超参数字典使用了model__前缀,这是scikit-learn Pipeline中指定特定步骤参数的语法,如果你的KerasRegressor没有嵌套在Pipeline中使用,需要去掉参数前缀,否则超参数无法传入模型构造函数:

parameters = {"il_neurons": il_neurons,
              "hl_neurons": hl_neurons,
              "num_hl": num_hl}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:45:09