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

使用GridSearchCV调参时遇ValueError: Unknown label type: continuous错误求助

问题解决:ValueError: Unknown label type: continuous

你遇到的错误核心原因是误用了分类任务的封装器:KerasClassifier是专门为分类任务设计的,它默认会检查标签是否为离散类别,而你的任务是回归(预测连续的出租车车费),标签是浮点型连续值,因此触发了类型不匹配的错误。

具体修改步骤

  1. 替换封装器为回归专用的KerasRegressor
    从keras.wrappers.scikit_learn导入KerasRegressor,替换代码中的KerasClassifier。

  2. 修正后的完整代码

from keras.wrappers.scikit_learn import KerasRegressor  # 替换原KerasClassifier导入
import keras

def create_model(activation = 'relu', optimizer='adam'):
  model = keras.models.Sequential([
      keras.layers.Dense(128, activation=activation),
      keras.layers.Dense(64, activation=activation),
      keras.layers.Dense(32, activation='sigmoid'),
      keras.layers.Dense(1)  # 回归任务输出层无需激活函数
  ])
  model.compile(optimizer=optimizer, loss='mean_squared_error')
  return model

# 用KerasRegressor替代KerasClassifier
model = KerasRegressor(build_fn=create_model,
                        epochs=50,  
                        verbose=0)

optimizer = ['SGD', 'RMSprop', 'Adadelta', 'Adam', 'Adamax', 'Nadam']
epochs = [50, 100, 150, 200, 250, 300]

param_grid = dict(optimizer = optimizer,
                  epochs=epochs)
grid = GridSearchCV(
    estimator=model,
    param_grid=param_grid,
    n_jobs=-1,
    cv=3,
    scoring='neg_mean_squared_error',
    verbose=2
)

grid_result = grid.fit(train_in, train_out)

额外注意事项

  • 确保train_out是一维数组(形状为(样本数,)),如果当前是二维(比如(样本数,1)),可以用train_out = train_out.flatten()转换。
  • 回归任务的输出层不要加激活函数(比如sigmoid或softmax),否则会限制输出范围,影响回归效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:31:20