文章目录
sklearn模型评估主要包括三种方法
- 使用scoring进行模型的性能评估
- 使用各个模型的提供的score方法来进行评估
- 使用metrics进行模型评估
一、sklearn.metrics中的分类模型评估方法介绍
(1)confusion_matrix混淆矩阵
#sklearn代码实例
sklearn.metrics.confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)
所以11为TP,10为FP,01为FN,00为TN。
第一个字符代表预测表现,第二个字符对于实际表现来说是预测对或错。
TP:预测为1,预测正确,即实际1
FP:预测为1,预测错误,即实际0
FN:预测为0,预测错确,即实际1
TN:预测为0,预测正确即,实际0
(2)recall_score召回率
(召回率针对原样本,含义是预测正确的样本数占实际为正样本的百分比),分母为实际为正的样本数。
利用混淆矩阵表示就是recall_score=TP/(TP+FN)
#sklearn代码实例
recall_score=recall_score(y_true, y_pred,labels=None,pos_label=1,average='binary', sample_weight=None)
多分类时候指定参数average : string, [None, ‘micro’, ‘macro’(default), ‘samples’, ‘weighted’]
(3)accuracy_score准确率
(准确率是指预测正确的样本数占总样本百分比)
利用混淆矩阵表示就是accuracy_score=(TP+TN)/(TP+TN+FP+FN)
#sklearn代码实例
accuracy_score=accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)
准确率是分类问题中最简单也是最直观的评价指标, 但存在明显的缺陷。 比
如, 当负样本占99%时, 分类器把所有样本都预测为负样本也可以获得99%的准确
率。 所以, 当不同类别的样本比例非常不均衡时, 占比大的类别往往成为影响准
确率的最主要因素。
(4)精确率
它是针对预测结果而言的,它的含义是预测正确的样本数占预测为正样本的百分比,意思就是在预测为正样本的结果中,我们有多少把握可以预测正确,即预测的有多少个为正样本。分母为预测为正的样本数
精确率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本,和样本比例有很大关系。
#sklearn代码实例
precision_score=precision_score(y_true, y_pred[, labels, …])
(5)F1分数
F1-score是精准率和召回率二者的评估,F1分数同时考虑了精准率和召回率,让二者同时达到最高,取一个平衡。F1分数的公式为 = 2精准率召回率 / (精准率 +召回率)。
#sklearn代码实例
f1_score=f1_score(y_true, y_pred)
(6)classification_report函数
classification_report函数会输出包含召回率,精确率,F1值的表
from sklearn.metrics import classification_report
y_true = [0, 1, 2, 2, 2]
y_pred