六、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))