我是机器学习的初学者,尝试使用LSTM和GRU创建堆叠集成算法。但是,我得到以下错误:
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())
您使用的是StackingRegressionor,而您的最终估计值是Classifier。如果您打算使用Logistic回归作为最终的估计量,可以尝试使用StackingClassifier
相关问题 更多 >
编程相关推荐