使用相同的CNN架构但使用不同的数据集的训练模型的集成模型

时间:2020-08-12 19:54:34

标签: python-3.x machine-learning classification multiclass-classification ensemble-learning

我有一个音频数据集,即UrbanSound8K。

第1步:我从上述数据集中提取了音频特征作为频谱图,并将其存储在NumPy数组中。然后,我将这些功能作为输入输入到我的机器学习模型中,以获得大约84%的分类精度。

Step2:我提取了频谱图图像,并将图像和图像标签存储到NumPy数组中。然后,我将NumPy数组传递给我的机器学习模型,以获得大约93%的分类精度。

注意:以上两种情况的机器学习模型都是相同的

Step3:现在,我想将集合模型应用于上述模型,以获得更好的分类精度,因为可以看出,在某些情况下,一种方法的性能较好,而在其他情况下,第二种方法的性能更好。使用集成模型的动机是当我们集成一个或多个模型时,它提高了准确性。

我正在使用下面的代码来获取准确性:

from tensorflow.keras.models import load_model
model1 = load_model("Models/Image_1.h5")

from tensorflow.keras.models import load_model
model2 = load_model("Models/Audio_1.h5")

# Evaluate the model on the test data using `evaluate`
print("Evaluate on Test Data for Image")
results1 = model1.evaluate(X_test1, y_test1, batch_size=32)
print("Test acc:", results1)

# Evaluate the model on the test data using `evaluate`
print("Evaluate on Test Data for Image")
results2 = model2.evaluate(X_test2, y_test2, batch_size=32)
print("Test acc:", results2[1])

from sklearn.ensemble import VotingClassifier
#create a dictionary of our models
estimators=[('Image', model1), ('Audio', model2)]
#create our voting classifier, inputting our models
ensemble = VotingClassifier(estimators, voting='hard')

#fit model to training data
ensemble.fit(X_train, y_train)
#test our model on the test data
ensemble.score(X_test, y_test)

但我遇到错误

NotImplementedError: Multilabel and multi-output classification is not supported

是否有解决此类问题的方法。我尝试连接对我来说没有任何意义的数据集,因为那时没有使用集成模型,并且我也尝试连接训练集,但是其准确性从84%显着降低到49%。

0 个答案:

没有答案