经过培训的SVM的培训准确性为0%

时间:2018-07-18 18:52:17

标签: machine-learning classification svm

我正在针对一些EEG数据训练SVM,以进行语音识别。我正在尝试对数据点进行二进制分类。这是训练我的SVM的代码。

rbf_clf = svm.SVC()
param_grid = {"C": [0.001, 0.01, 0.1, 1, 1.5],
            "gamma": [0.001, 0.01, 0.1, 1, 10],
            "kernel": ['linear', 'rbf', 'sigmoid', 'poly'],
            "decision_function_shape": ['ovo'],
            }
grid_cv = GridSearchCV(rbf_clf, param_grid=param_grid, cv=4, refit=True, n_jobs=4, pre_dispatch=8)
grid_cv.fit(training_features, training_labels)
rbf_clf = grid_cv.best_estimator_
rbf_clf.fit(training_features, training_labels)
prediction = rbf_clf.predict(training_features)
print(prediction)
print(testing_labels)
print(rbf_clf.decision_function(training_features))

作为一个实验者,我尝试对training_features进行预测,并且期望得到完美的分类,因为这是分类器的训练数据。但是,预测的输出是全0的向量。有谁知道为什么会这样?还是有人能暗示我可以在哪里解决该问题,或者我缺少什么?感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试改组数据。对于您的训练和测试拆分,所有训练示例都可能属于类0,因此您的分类器得知,不管输入特征如何,始终输出0。