如何计算精度和F1?

Posted

技术标签:

【中文标题】如何计算精度和F1?【英文标题】:how to calculate the precision and F1? 【发布时间】:2020-11-08 03:19:44 【问题描述】:

我正在使用 TF_IDF 进行特征选择和朴素贝叶斯分类器。我想计算总数 准确度和精确度。

accuracy = train_model(naive_bayes.MultinomialNB(), xtrain_count, train_y, xvalid_count)
  print("NB, Count Vectors: ", accuracy)

 # Naive Bayes on Word Level TF IDF Vectors
  accuracy = train_model(naive_bayes.MultinomialNB(), xtrain_tfidf, train_y, xvalid_tfidf)
    print("NB, WordLevel TF-IDF: ", accuracy)

    # Naive Bayes on Ngram Level TF IDF Vectors
   accuracy = train_model(naive_bayes.MultinomialNB(), xtrain_tfidf_ngram, train_y, 
   xvalid_tfidf_ngram)
  print("NB, N-Gram Vectors: ", accuracy)

 # Naive Bayes on Character Level TF IDF Vectors
  accuracy = train_model(naive_bayes.MultinomialNB(), xtrain_tfidf_ngram_chars, train_y, 
   xvalid_tfidf_ngram_chars)
  print("NB, CharLevel Vectors: ", accuracy)

【问题讨论】:

很高兴与您交谈,希望您的问题得到解决 【参考方案1】:

使用这个:

from sklearn.metrics import classification_report

print(classification_report(true_value,predicted_value))

这会给你所有你想要的

【讨论】:

什么是真值和预测值? 你要计算精度和 f1 的值是多少 你用自然语言处理做什么?? 我收到了三种不同的准确度,单词、字符和 N gram 级别,idk 使用哪一种,结果我想要一种准确度。 而 tfidf 不给你准确率,它给你频率,两者是不同的

以上是关于如何计算精度和F1?的主要内容,如果未能解决你的问题,请参考以下文章

计算 rpart 包结果的精度、召回率、F1 值

从精度、召回率、f1-score 计算准确率 - scikit-learn

精度、召回率、F1 分数等于 sklearn

pyspark.ml:计算精度和召回时的类型错误

使用 GridSearchCV 进行逻辑回归时的精度计算警告

JAVA 中出现double 及float计算丢失精度的问题,大家是怎么避免的