【问题标题】:How to find out the accuracy?如何判断准确率?
【发布时间】:2017-07-17 04:48:46
【问题描述】:

我想知道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)

【问题讨论】:

  • 在您的情况下,y 和 pr 是相同的,即从分类器对相同数据进行预测。要找到准确性,您不应该在训练和预测中使用相同的数据

标签: python scikit-learn naivebayes


【解决方案1】:

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)

【讨论】:

    【解决方案2】:

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

    这样实现 -

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

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

    【讨论】:

      【解决方案3】:

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

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

      准确度公式为:

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

      【讨论】:

        【解决方案4】:

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

        accuracy_score 公式是
        accuracy_score=correct_predictions/No of Predictions

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

        附言。它非常适合分类技术

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

              • (这篇文章似乎没有为问题提供quality answer。请编辑您的答案,或者将其作为对问题的评论发布)。
              猜你喜欢
              • 2016-12-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-03-22
              • 1970-01-01
              • 1970-01-01
              • 2021-11-12
              • 2020-02-29
              相关资源
              最近更新 更多