《机器学习(周志华)》笔记--模型的评估与选择(7)--sklearn中的分类性能指标
六、sklearn中的分类性能指标
机器学习中常使用 sklearn 完成对模型分类性能的评估,我们需要掌握使用 sklearn 提供的以下接口:
- accuracy_score 准确度
- precision_score 精准率
- recall_score 召回率
- f1_score F1 Score
- roc_auc_score AUC
- confusion_matrix 混淆矩阵
(1)accu\fracy_score
sklearn 提供了计算准确度的接口 accuracy_score。其中参数如下:
- y_true:为样本真实标签,类型为一维的 ndarray 或者 list;
- y_predict:为模型预测标签,类型为一维的 ndarray 或者 list。
示例代码如下:
import numpy as np
from sklearn.metrics import accuracy_score
#y_true为真实标签,y_predict为预测标签
y_true = [1, 0, 0, 1]
y_predict = [1, 0, 1, 0]
print(accuracy_score(y_true, y_predict))
(2)precision_score
sklearn 提供了计算精准率的接口 precision_score 。其中参数如下:
- y_true:为样本真实标签,类型为一维的 ndarray 或者 list;
- y_predict:为模型预测标签,类型为一维的 ndarray 或者 list;
- pos_label:用什么值表示 Positive,默认为 1。
示例代码如下:
import numpy as np
from sklearn.metrics import precision_score
#y_true为真实标签,y_predict为预测标签
y_true = [1, 0, 0, 1]
y_predict = [1, 0, 1, 0]
print(precision_score(y_true, y_predict))
(3)recall_score
sklearn 提供了计算召回率的接口 recall_score 。其中参数如下:
- y_true:为样本真实标签,类型为一维的 ndarray 或者 list;
- y_predict:为模型预测标签,类型为一维的 ndarray 或者 list;
- pos_label:用什么值表示 Positive ,默认为 1。
示例代码如下:
import numpy as np
from sklearn.metrics import recall_score
#y_true为真实标签,y_predict为预测标签
y_true = [1, 0, 0, 1]
y_predict = [1, 0, 1, 0]
print(recall_score(y_true, y_predict))
(4)f1_score
sklearn 提供了计算 F1 Score 的接口 f1_score 。其中参数如下:
- y_true:为样本真实标签,类型为一维的 ndarray 或者 list;
- y_predict:为模型预测标签,类型为一维的 ndarray 或者 list;
- pos_label:用什么值表示 Positive ,默认为 1。
示例代码如下:
import numpy as np
from sklearn.metrics import f1_score
#y_true为真实标签,y_predict为预测标签
y_true = [1, 0, 0, 1]
y_predict = [1, 0, 1, 0]
print(f1_score(y_true, y_predict))
(5)roc_auc_score
sklearn 提供了计算 AUC 的接口 roc_auc_score 。其中参数如下:
- y_true:为样本真实标签,类型为一维的 ndarray 或者 list;
- y_score:为模型预测样本为 Positive 的概率,类型为一维的 ndarray 或者 list。
示例代码如下:
import numpy as np
from sklearn.metrics import roc_auc_score
#y_true为真实标签,y_score为预测为Positive的概率
y_true = np.array([0, 0, 1, 1])
y_score = np.array([0.1, 0.4, 0.35, 0.8])
print(roc_auc_score(y_true, y_score))
(6)confusion_matrix
sklearn 提供了计算混淆矩阵的接口 confusion_matrix 。其中参数如下:
- y_true:为样本真实标签,类型为一维的 ndarray 或者 list;
- y_predict:为模型预测标签,类型为一维的 ndarray 或者 list。
示例代码如下:
import numpy as np
from sklearn.metrics import confusion_matrix
#y_true为真实标签,y_predict为预测标签
y_true = [1, 0, 0, 1]
y_predict = [1, 0, 1, 0]
print(confusion_matrix(y_true, y_predict))