【发布时间】:2018-12-26 19:01:24
【问题描述】:
我正在一些 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 的向量。有谁知道为什么会发生这种情况?或者任何人都可以暗示我可以在哪里解决这个问题或者我错过了什么?感谢您的帮助!
【问题讨论】:
-
"the output of the prediction was a vector of all 0's"是什么意思?也许训练数据的标签为 0,模型预测正确?
标签: machine-learning classification svm