I've wondered if there is a function in sklearn which corresponds to the accuracy(difference between actual and predicted data) and how to print it out?
from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import GaussianNB
naive_classifier= GaussianNB()
y =naive_classifier.fit(iris.data, iris.target).predict(iris.data)
pr=naive_classifier.predict(iris.data)
We calculate accuracy by dividing the number of correct predictions (the corresponding diagonal in the matrix) by the total number of samples. The result tells us that our model achieved a 44% accuracy on this multiclass problem.
Most classifiers in scikit have an inbuilt score()
function, in which you can input your X_test and y_test and it will output the appropriate metric for that estimator. For classification estimators it is mostly 'mean accuracy'
.
Also sklearn.metrics
have many functions available which will output different metrics like accuracy
, precision
, recall
etc.
For your specific question you need accuracy_score
from sklearn.metrics import accuracy_score
score = accuracy_score(iris.target, pr)
You can use accuracy_score
, find documentation here.
Implement like this -
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(prediction, labels_test)
This will return a float value. The float value describes (number of points classified correctly) / (total number of points in your test set)
You have to import accuracy_score
from sklearn.metrics
. It should be like below,
from sklearn.metrics import accuracy_score
print accuracy_score(predictions,test set of labels)
The formula for accuracy is:
Number of points classified correctly / all the points in test set
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With