【问题标题】:Getting ValueError: The estimator Sequential should be a regressor when creating a Stacking ensemble using LSTM and GRU获取 ValueError:使用 LSTM 和 GRU 创建 Stacking 集成时,估计器 Sequential 应该是回归量
【发布时间】: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


    【解决方案1】:

    您正在使用 StackingRegressor 而您的 final_estimator 是分类器。如果您打算使用 LogisticRegression 作为 final_estimator,可以尝试使用 StackingClassifier。

    【讨论】:

    • 我刚才尝试使用 StackingClassifier,它给了我一个值错误,这实际上意味着我将浮点数传递给分类器。这是一个回归问题,而不是分类问题。还有其他线索吗?
    • 如果它是一个回归问题,那么为什么要使用“LogisticRegression”作为 final_estimator,因为“LogisticRegression”是一个分类器。
    • 尝试使用其他回归量作为您的 final_estimator
    • 你能建议使用哪一个吗?我是新手。我尝试使用 LinearRegression 但没有用。
    • 你在使用 LinearRegression 时遇到了什么错误?
    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 2018-11-12
    • 2021-09-04
    相关资源
    最近更新 更多