我想知道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)
答案 0 :(得分:7)
scikit中的大多数分类器都有一个内置的score()
函数,您可以在其中输入X_test和y_test,它将为该估算器输出适当的度量标准。对于分类估算器,它主要是'mean accuracy'
。
同样sklearn.metrics
有许多可用的功能,可以输出不同的指标,如accuracy
,precision
,recall
等。
针对您的具体问题,您需要accuracy_score
from sklearn.metrics import accuracy_score
score = accuracy_score(iris.target, pr)
答案 1 :(得分:1)
您可以使用accuracy_score
,找到文档here。
这样的实现-
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(prediction, labels_test)
这将返回一个浮点值。浮点值描述(正确分类的点数)/(测试集中的点总数)
答案 2 :(得分:1)
首先,您需要从sklearn导入指标,在指标中,您需要导入precision_score
然后您可以获得准确度得分
precision_score公式为
accuracy_score = correct_predictions /预测数
from sklearn.metrics import accuracy_score
accuracy_score(y_actual,y_predicted)
PS。它非常适合分类技术
答案 3 :(得分:1)
您可以直接在score()
中使用GaussianNB
功能。这样,您无需预测标签然后计算准确性。
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
gnb = gnb.fit(train_data, train_labels)
score = gnb.score(test_data, test_labels)
答案 4 :(得分:1)
您始终可以使用 sklearn 的指标来获取模型的准确度,您也可以使用 accuracy_score(test_data,predictions)
来获取模型值与实际值之间的差异,除此之外,您还可以检查模型 metrics.mean_absolute_error(y_test,predictions)
中的错误率对于平均绝对误差,metrics.mean_squared_error(y_test, predictions)
对于均方误差。等
答案 5 :(得分:0)
对于分类问题,请使用“ metrics.accuracy_score”,而回归使用“ metrics.r2_score”。
答案 6 :(得分:0)
您必须从sklearn.metrics导入precision_score。应该像下面这样 从sklearn.metrics导入precision_score 打印precision_score(预测,标签测试集)
精度公式为 正确分类的分数/测试集中的所有分数