我想使用scikit-learn的StackedRegressor构建一个整体,但是我想使用预训练的keras模型。基本上,我想利用元回归器以可能的最佳方式使用每个基本模型,但是我不需要对其进行培训。
regressor_1 = KerasRegressor(build_fn)
regressor_2 = KerasRegressor(build_fn)
regressor_3 = KerasRegressor(build_fn)
regressors = [('r1', regressor_1),
('r2', regressor_2),
('r3', regressor_3)]
xgboost = XGBRegressor(learning_rate=0.01, n_estimators=3460,
max_depth=3, min_child_weight=0,
gamma=0, subsample=0.7,
colsample_bytree=0.7,
objective='reg:linear', nthread=-1,
scale_pos_weight=1, seed=27,
reg_alpha=0.00006)
stack_gen = StackingRegressor(estimators=regressors,
final_estimator=xgboost,
n_jobs=-1)
但同样没有拟合基础模型。
答案 0 :(得分:0)
我认为您不需要stackingRegressor
。
做这样的事情:
prediction =[]
for reg in regressors:
predictions.append(reg.predict(X))
xgboost.fit_predict(prediction)
答案 1 :(得分:0)
通过描述和定义,sklearn的StackingRegressor模块使用多个回归变量的预测将其注入另一个回归模型中
”每个单独的估算器的预测被堆叠在一起, 用作最终估算器的输入以计算预测。 “
因此,为了接收(简单描述)if-then或y = ax + bz逻辑,并将ifs和x-z放入等式中,不可避免地需要对某些数据进行拟合(生成算法)。
我在想,在您的情况下,您可能只需要一种集成技术,即采用“最佳”(最小错误)或仅取预测的平均值即可。 有关此主题的更多信息和sklearn模块: https://scikit-learn.org/stable/modules/ensemble.html