【集成学习】对已训练好的模型进行投票
在不同的数据预处理情况下训练得到了三个SVM模型,结果都差不多,对这三个模型的分类结果进行投票
1、三个模型的model_path
# 最终model的path
self.model_path = log_path+'/'+model_name+'_model.gz'
self.time_log = log_path+'/'+model_name+'_time_log.csv'
# 模型1
self.model1_path = 'F:/20230911_bcic_windowlenth/4/subject_dependent_2_classes' + '/' + model_name + '_model.gz'
# 模型2
self.model2_path = 'F:/20230911_bcic_windowlenth/2_1/subject_dependent_2_classes' + '/' + model_name + '_model.gz'
# 模型3
self.model3_path = 'F:/20230911_bcic_windowlenth/2_2/subject_dependent_2_classes' + '/' + model_name + '_model.gz'
2、导入、拟合、保存
# model1
clf1 = load(self.model1_path)
# model2
clf2 = load(self.model2_path)
# model3
clf3 = load(self.model3_path)
estimators = [('svm', clf1), ('svm1', clf2), ('svm2', clf3)]
# soft/hard
classifier = VotingClassifier(estimators, voting="soft")
classifier.fit(X_train, y_train)
# save
dump(classifier, self.model_path)
3、predict
classifier = load(self.model_path)
vote_acc = classifier.score(X_test, y_test)
遇到的问题:
AttributeError: predict_proba is not available when probability=False
分别在model1、model2、model3训练svm的时候按照上述设置