Andrew 76868
Andrew 76868

Reputation: 414

How to find out the accuracy?

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)

Upvotes: 17

Views: 63973

Answers (7)

Shivam Paliya
Shivam Paliya

Reputation: 168

You can always use sklearn's metrics to get your model's accuracy you can either use accuracy_score(test_data,predictions) to get the difference between model's values and actual values, apart from this you can check for error rates in model metrics.mean_absolute_error(y_test,predictions) for mean absolute errors, metrics.mean_squared_error(y_test, predictions) for mean squared errors. etc

Upvotes: 2

Majid Adibian
Majid Adibian

Reputation: 902

You can use score() function in GaussianNB directly. In this way you don't need to predict labels and then calculate accuracy.

from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
gnb = gnb.fit(train_data, train_labels)
score = gnb.score(test_data, test_labels)

Upvotes: 2

Varun Kumar
Varun Kumar

Reputation: 153

First you need to import the metrics from sklearn and in metrics you need to import the accuracy_score
Then you can get the accuracy score

The accuracy_score formula is
accuracy_score=correct_predictions/No of Predictions

from sklearn.metrics import accuracy_score
accuracy_score(y_actual,y_predicted)

PS. It works great for classification techniques

Upvotes: 3

user3318064
user3318064

Reputation: 59

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

Upvotes: 2

Vivek Kumar
Vivek Kumar

Reputation: 36599

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)

Upvotes: 21

Ananth
Ananth

Reputation: 2735

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)

Upvotes: 7

karan
karan

Reputation: 81

For Classification problems use "metrics.accuracy_score" and Regression use "metrics.r2_score".

Upvotes: 0

Related Questions