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

使用LSTM与GRU搭建Stacking集成时提示Sequential应为回归器报错如何解决

错误含义

ValueError: The estimator Sequential should be a regressor 报错是因为Scikit-learn的StackingRegressor要求所有传入的基学习器必须符合Scikit-learn的评估器接口规范,你直接传入Keras构建的Sequential模型,Sklearn无法识别它的任务类型,也无法调用统一的fit、predict方法,所以校验不通过。

解决步骤

1. 包装Keras模型为Sklearn兼容格式

使用Keras自带的KerasRegressor(回归任务)或KerasClassifier(分类任务)将你的LSTM、GRU模型封装为符合Sklearn接口的评估器。
首先导入依赖:

from tensorflow.keras.wrappers.scikit_learn import KerasRegressor

将模型构建逻辑封装为独立函数,再实例化包装器:

# 封装LSTM模型构建逻辑
def build_lstm_model():
    LSTMmodel = Sequential()
    LSTMmodel.add(Bidirectional(LSTM(100, input_shape=(1, lookback))))
    LSTMmodel.add(Dense(100, activation='relu'))
    LSTMmodel.add(Dense(50, activation='relu'))
    LSTMmodel.add(Dense(1, activation='sigmoid'))
    LSTMmodel.compile(loss='mean_absolute_error', optimizer='adam')
    keras.backend.set_value(LSTMmodel.optimizer.learning_rate, 0.0007)
    return LSTMmodel

# 包装为Sklearn兼容的回归器
wrapped_lstm = KerasRegressor(
    build_fn=build_lstm_model, 
    epochs=10, 
    batch_size=5000, 
    verbose=1
)

# GRU模型按同样逻辑封装即可
def build_gru_model():
    # 此处填写你的GRU模型构建代码
    pass
wrapped_gru = KerasRegressor(
    build_fn=build_gru_model, 
    epochs=10, 
    batch_size=5000, 
    verbose=1
)

2. 修正Stacking模型代码

注意两个问题:

  1. 基学习器替换为包装后的模型
  2. StackingRegressor是回归任务用的集成器,最终学习器不能用分类器LogisticRegression,如果是回归任务请替换为回归模型(比如线性回归);如果你的任务实际是二分类,请将StackingRegressor改为StackingClassifier,同时模型包装用KerasClassifier。
    修正后的参考代码(回归场景):
from sklearn.ensemble import StackingRegressor
from sklearn.linear_model import LinearRegression

estimator_list = [('GRUmodel', wrapped_gru), ('LSTMmodel', wrapped_lstm)]
stack_model = StackingRegressor(
    estimators=estimator_list, 
    final_estimator=LinearRegression()
)
stack_model.fit(X_train, Y_train.ravel())

其他注意事项

  • 确保输入模型的数据集维度符合RNN要求的三维格式(样本数,时间步,特征数),避免维度不匹配报错。
  • 如果是二分类场景,输出层sigmoid激活无需修改,只需将包装器改为KerasClassifier,集成器改为StackingClassifier,最终学习器可以保留LogisticRegression。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:09:04