【发布时间】:2021-11-24 13:38:25
【问题描述】:
我是机器学习的初学者,正在尝试使用 LSTM 和 GRU 创建 Stacking Ensemble 算法。但是,我收到以下错误:
Traceback (most recent call last):
File "<input>", line 3, in <module>
File "I:\API and Dataset\venv\lib\site-packages\sklearn\ensemble\_stacking.py", line 684, in fit
return super().fit(X, y, sample_weight)
File "I:\API and Dataset\venv\lib\site-packages\sklearn\ensemble\_stacking.py", line 139, in fit
names, all_estimators = self._validate_estimators()
File "I:\API and Dataset\venv\lib\site-packages\sklearn\ensemble\_base.py", line 241, in _validate_estimators
raise ValueError(
ValueError: The estimator Sequential should be a regressor
我不知道如何解释这个错误或如何解释它。以下是我的模型供参考。
LSTM 模型
# model.add(LSTM(200, input_shape=(1,3), activation='relu', return_sequences=True))
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)
LSTMmodel.fit(X_train, Y_train_scaled, epochs=10, batch_size=5000, verbose=1)
注意:GRU 模型结构类似于 LSTM
堆叠集成模型
estimator_list = [('GRUmodel', GRUmodel), ('LSTMmodel', LSTMmodel)]
stack_model = StackingRegressor(estimators=estimator_list, final_estimator=LogisticRegression)
stack_model.fit(X_train, Y_train.ravel())
【问题讨论】:
标签: python machine-learning scikit-learn lstm ensemble-learning