Reputation: 2989
I want to find out the error rate using svm classifier in python, the approach that I am taking to accomplish the same is:
1-svm.predict(test_samples).mean()
However, this approach does not work. Also the score function of sklearn gives mean accuracy...however, I can not use it as I want to accomplish cross-validation, and then find the error-rate. Please suggest a suitable function in sklearn to find out the error rate.
Upvotes: 3
Views: 34411
Reputation: 799
Use sklearn.metrics.accuracy_score
Doc here.
from sklearn.metrics import accuracy_score
#create vectors for actual labels and predicted labels...
my_accuracy = accuracy_score(actual_labels, predicted_labels, normalize=False) / float(actual_labels.size)
Upvotes: 1
Reputation: 40149
If you want to cross validate a score, use the sklearn.cross_validation.cross_val_score
utility function and pass it the scoring function you like from the sklearn.metrics
module:
http://scikit-learn.org/dev/modules/cross_validation.html
Upvotes: 3
Reputation: 363487
Assuming you have the true labels in a vector y_test
:
from sklearn.metrics import zero_one_score
y_pred = svm.predict(test_samples)
accuracy = zero_one_score(y_test, y_pred)
error_rate = 1 - accuracy
Upvotes: 6