模型评估标准

  • 准确率
    • estimator.score() 最常见,预测结果的正确百分比
  • 混淆矩阵
    • 在分类任务下,预测结果与正确标记之间存在四种不同的组合,构成了混淆矩阵(适用于多分类)分类模型的评估和模型选择与调优
  • 精确率
    • 预测结果为正例样本中真实为正例的比例,也就是查得准
    • 分类模型的评估和模型选择与调优
  • 召回率
    • 真实为正例的样本中预测结果为正例的比例,查的全,对正样本的区分能力
    • 分类模型的评估和模型选择与调优

       

       

  • 其他分类标准
    • F1-score , 反映了模型的稳健性。具体会在代码运行结果中会显示。
    • 分类模型的评估和模型选择与调优

       

       

以上都是对模型评估的一个标准。一些基础。


分类模型评估API

sklearn.metrics.classfication_report(y_true,y_pred,target_names=None)
  y_true:真实目标值
  y_pred:估计器预测目标值
  target_names:目标类别名称
  return:每个类别精确率与召回率

 案例演示:

# 以新闻分类这个案例为例

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  # 贝叶斯

# 1.获取数据
news = fetch_20newsgroups(subset='all')
# 2. 进行数据分割
x_train, x_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.25)
# 3.对数据集进特征抽取
tf = TfidfVectorizer()
# 以训练集当中的词进行重要性统计
x_train = tf.fit_transform(x_train)
# 对测试集也要进行词重要性统计
x_test = tf.transform(x_test)
# 4. 进行朴素贝叶斯算法
bys = MultinomialNB(alpha=0.1)
bys.fit(x_train, y_train)
# 5. 进行预测
predict = bys.predict(x_test)
print("预测文章类别为:",predict)
print("准确率:", bys.score(x_test, y_test))
# 6. 模型评估
from sklearn.metrics import classification_report
classification_report(y_test, predict, target_names=news.target_names)
代码

相关文章: