我正在使用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)
答案 0 :(得分:0)
正如@ ken-syme在上面的评论中所提到的,分类器具有不同于合奏的数字特征。在这种情况下发生了这种情况,因为用作数据的时间序列没有以完全相同的频率进行采样。