20_精确率和召回率

折月煮酒 提交于 2019-12-03 01:47:54

1.分类模型的评估:

 estimator.score():一般最常见使用的是准确率,即预测结果正确的百分比。

2.混淆矩阵:

 在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多分类)。

 

 3.精确率和召回率:

 精确率(precision):预测结果为正例,真实样例中为正例的比例。

   预测结果为真,真实结果就是为真。

 召回率(recall):真实为正例的样本中,预测结果为正例的的比例。

  真实结果中出现了假的,就需要召回。

 

 4.sklearn.metrics.classification_report:分类评估模型API

  sklearn.metrics.classification_report(y_true, y_pred, target_names=None)

  y_true:真实目标值;

  y_pred:估计器预测目标值;

  target_names:目标类别名称;

  return:每个类别精确率与召回率;

5.单词:

  metrics:衡量指标。

 

"""
klearn20类新闻分类
20个新闻组数据集包含20个主题的18000个新闻组帖子
"""


from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report

def naviebayes():
    news = fetch_20newsgroups()
    x_train, x_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.25)
    tf = TfidfVectorizer()
    x_train = tf.fit_transform(x_train)
    x_test = tf.transform(x_test)

    # 进行朴素贝叶斯的预测
    mlt = MultinomialNB(alpha=1.0)
    # print(x_train.toarray()) # toarray()作用,转为矩阵形式
    mlt.fit(x_train, y_train)
    y_predict = mlt.predict(x_test)
    print("预测文章的类别为:", y_predict)
    print("准确率:", mlt.score(x_test, y_test))
    print("每个类别的准确率和召回率\n",classification_report(y_test,y_predict))

if __name__ == '__main__':
    naviebayes()

  

print("每个类别的准确率和召回率\n",classification_report(y_test,y_predict))

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!