使用具有预装分类器的mlxtend ensemblevoteclassifier进行二进制分类

时间:2018-03-14 11:12:27

标签: python scikit-learn ensemble-learning mlxtend

我正在使用mlxtend EnsembleVoteClassifier对预先安装的线性SVC进行二进制分类,但我一直有一个反复出现的错误:

  

ValueError:X.shape [1] = 352应该等于336,数量为   培训时的功能

我使用scikit-learn joblib将预先安装的分类器加载到列表中。分类器是来自sklearn.svm的线性svc:

CLFS列表:

[SVC(C=0.1, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False),SVC(C=0.1, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)]

它们被传递到整体投票分类器,并且照常安装,没有任何问题:

ensembleVoting = EnsembleVoteClassifier(clfs = list_of_clfs, refit = False, voting='hard', weights=None)
X = ...
y = ...
ensembleVoting.fit(X,y)

上面提到的错误在预测时出现,即使使用相同的拟合数据:

predictions = ensembleVoting.predict(X)

1 个答案:

答案 0 :(得分:0)

正如@ ken-syme在上面的评论中所提到的,分类器具有不同于合奏的数字特征。在这种情况下发生了这种情况,因为用作数据的时间序列没有以完全相同的频率进行采样。