模型的评估标准
-
准确率
- 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)