Python 使用Keras和集成投票分类器

Python 使用Keras和集成投票分类器,python,keras,ensemble-learning,Python,Keras,Ensemble Learning,我试图使用mlxtend库中的EnsembleVoteClassifier,其中我的分类器是ANN、SVM和Logistic回归。我正在对模型进行预拟合,并调用EnsembleVoteClassifier进行预测: ensemble=EnsembleVoteClassifier(clfs=[model_nn, model_logreg],voting='hard',refit=False) ensemble.fit(X_train,y_train) y_pred_ensemble = ensem

我试图使用
mlxtend
库中的
EnsembleVoteClassifier
,其中我的分类器是ANN、SVM和Logistic回归。我正在对模型进行预拟合,并调用
EnsembleVoteClassifier
进行预测:

ensemble=EnsembleVoteClassifier(clfs=[model_nn, model_logreg],voting='hard',refit=False)
ensemble.fit(X_train,y_train)
y_pred_ensemble = ensemble.predict(X_test)
问题在于凯拉斯。我的代码如下:

model_nn = Sequential()
model_nn.add(Dense(20, input_shape=(X_train.shape[1],), 
                kernel_initializer=RandomNormal(mean=0.0, stddev=0.05, seed=42), 
                bias_initializer=RandomNormal(mean=0.0, stddev=0.05, seed=42)))

model_nn.add(Activation('relu'))
model_nn.add(BatchNormalization())
model_nn.add(Dropout(0.5))
model_nn.add(Dense(2, activation='softmax')) 
model_nn.compile (loss = 'sparse_categorical_crossentropy', optimizer=k.optimizers.Adam(lr=1e-4))

early_stopping_monitor = EarlyStopping(monitor='val_loss', mode='min', patience=20)
lr_reduce= ReduceLROnPlateau(monitor='val_loss', verbose=1, mode='min', patience=20)

history = model_nn.fit(X_train, y_train, epochs=1000, 
                    class_weight=class_weights, 
                    batch_size=32,
                    validation_data=(X_val, y_val), verbose = 1, 
                    callbacks=[early_stopping_monitor, lr_reduce])
y_pred_nn = model_nn.predict(X_test)
y_pred_nn = y_pred_nn.argmax(axis=1)
问题是预测类的形状是
(n_samples,2)
,这会在EnsembleVoteClassifier中产生错误:

raisevalueerror(“错误的输入形状{0}”。格式(形状))
ValueError:错误的输入形状(,2)

是否有任何方法通过处理形状问题的管道,并以与
sklearn
相同的形状输出keras预测

多谢各位