如何查出准确率?

How to find out the accuracy?

我想知道sklearn中是否有对应准确率(实际数据和预测数据之间的差异)的函数以及如何打印出来?

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)

scikit 中的大多数分类器都有一个内置的 score() 函数,您可以在其中输入 X_test 和 y_test,它将为该估计器输出适当的指标。对于分类估计器,它主要是 'mean accuracy'.

另外 sklearn.metrics 有许多可用的函数,它们将输出不同的指标,如 accuracyprecisionrecall

对于您的具体问题,您需要 accuracy_score

from sklearn.metrics import accuracy_score
score = accuracy_score(iris.target, pr)

分类问题使用 "metrics.accuracy_score",回归问题使用 "metrics.r2_score"。

您必须从 sklearn.metrics 导入 accuracy_score。应该是这样的,

from sklearn.metrics import accuracy_score
print accuracy_score(predictions,test set of labels)

准确度公式为:

正确分类的点数/测试集中的所有点

您可以使用 accuracy_score,查找文档 here

像这样实现 -

from sklearn.metrics import accuracy_score
accuracy = accuracy_score(prediction, labels_test)

这将 return 一个浮点值。浮点值描述(正确分类的点数)/(测试集中的总点数)

首先您需要从 sklearn 导入指标,在指标中您需要导入 accuracy_score
然后就可以得到准确率分数

accuracy_score公式为
accuracy_score=correct_predictions/No 的预测

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

PS。它非常适合分类技术

您可以直接使用GaussianNB中的score()功能。这样就不需要先预测标签再计算准确率了。

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

您始终可以使用 sklearn 的指标来获取模型的准确性,您可以使用 accuracy_score(test_data,predictions) 来获取模型值与实际值之间的差异,除此之外,您还可以检查模型中的错误率 metrics.mean_absolute_error(y_test,predictions) 表示平均绝对误差,metrics.mean_squared_error(y_test, predictions) 表示均方误差。等等