一、混淆矩阵
1.二分类
对于二分类问题,分类器在测试集上的预测或者正确或者不正确,令
- TP(True Positive):分类器将正类预测为正类的数量。
- FN(False Negative):分类器将正类预测为负类的数量。
- FP(False Positive):分类器将负类预测为正类的数量。
- TN(True Negative):分类器将负类预测为负类的数量。
真值情况 | 预测结果 | |
---|---|---|
正类 | 反类 | |
正类 | TP | FN |
反类 | FP | TN |
2.confusion_matrix
2.1原型
sklearn.metrics.confusion_matrix(y_true,y_pred,labels=None)
2.2参数
- y_true:样本集的真实标记。
- y_pred:分类器对样本集预测的预测值。
- labels:指定混淆矩阵中出现哪些类别。
2.3示例代码
from sklearn.metrics import confusion_matrix
y_true = [1,1,1,1,1,0,0,0,0,0]
y_pred = [0,0,1,1,0,0,0,0,0,0]
print("Confusion Matrix:\n",confusion_matrix(y_true,y_pred))
Confusion Matrix:
[[5 0]
[3 2]]
3.多分类
多分类仍然可以使用混淆矩阵
from sklearn.metrics import confusion_matrix
y_true = [1,2,2,1,1,0,1,1,0,2]
y_pred = [1,2,1,1,1,0,2,1,0,1]
print("Confusion Matrix:\n",confusion_matrix(y_true,y_pred))
Confusion Matrix:
[[2 0 0]
[0 4 1]
[0 2 1]]
二、查准率(precision)
1.查准率的定义:
2.含义:所有被预测为正类中真正正类的比例。
3.precision_score
3.1原型
- sklearn.metrics.precision_score(y_true,y_pred,labels=None,pos_label=1,average=’binary’,sample_weight=None)
3.2参数
- y_true:样本集的真实标记。
- y_pred:分类器对样本集预测的预测值。
- pos_label:一个字符串或整数,指定哪个标记值属于正类。
- average:一个字符串,用于多分类问题。
- sample_weight:样本权重,默认每个样本的权重为1。
3.3示例代码
from sklearn.metrics import accuracy_score,precision_score
y_true = [1,1,1,1,1,0,0,0,0,0]
y_pred = [0,0,1,1,0,0,0,0,0,0]
print("Accuracy Score:",accuracy_score(y_true,y_pred,normalize=True))
print("Precision Score",precision_score(y_true,y_pred))
Accuracy Score: 0.7
Precision Score 1.0
三、召回率(recall)
1.召回率定义:
2.含义:所有正类中,被找出的正类的比例。
3.recall_score
3.1原型
- sklearn.metrics.recall_score(y_true,y_pred,labels=None,pos_labels=1,average=’binary’,sample_weight=None)
3.2参数
- y_true:样本集的真实标记。
- y_pred:分类器对样本集预测的预测值。
- pos_label:一个字符串或整数,指定哪个标记值属于正类。
- average:一个字符串,用于多分类问题。
- sample_weight:样本权重,默认每个样本的权重为1。
3.3示例代码
from sklearn.metrics import accuracy_score,precision_score,recall_score
y_true = [1,1,1,1,1,0,0,0,0,0]
y_pred = [0,0,1,1,0,0,0,0,0,0]
print("Accuracy Score:",accuracy_score(y_true,y_pred,normalize=True))
print("Precision Score",precision_score(y_true,y_pred))
print("Recall Score",recall_score(y_true,y_pred))
Accuracy Score: 0.7
Precision Score 1.0
Recall Score 0.4