我正在使用 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)