使用Python的sklearn包来统计模型的结果,首先要知道常用来模型的指标有哪些
⛳️ sklearn统计结果 - 图1
首先了解最基本的四个指标:TP, TN, FP, FN

  • True positives: 简称为TP,即正样本被正确识别为正样本。
  • True negatives: 简称为TN,即负样本被正确识别为负样本。
  • False Positives: 简称为FP,即负样本被错误识别为正样本。
  • False negatives: 简称为FN,即正样本被错误识别为负样本。

image.png

通过上述几个最基本的概念得到了一下的一些指标

一、准确率accuracy

预测的标签正确数量占总数量的比例
⛳️ sklearn统计结果 - 图3

二、灵敏度sensitivity/recall

灵敏度:表示的是正例中被分对的比例,衡量了分类器对正例的识别能力
⛳️ sklearn统计结果 - 图4

三、特异性specifity

特异性:表示的是负例中被分对的比例,衡量了分类器对负例的识别能力
⛳️ sklearn统计结果 - 图5

四、精确度precision

精确度:表示被分类为正例中的实际为正例的比例
⛳️ sklearn统计结果 - 图6

五、综合指标F-score

F-score:是精确度和灵敏度的一个综合
⛳️ sklearn统计结果 - 图7

六、sklearn实现

  1. from sklearn.metrics import accuracy_score
  2. from sklearn.metrics import recall_score
  3. from sklearn.metrics import confusion_matrix
  4. from sklearn.metrics import precision_score
  5. from sklearn.metrics import roc_auc_score
  6. y_true = [0, 0, 0, 1, 1, 1, 1, 1]
  7. y_pred = [0, 1, 0, 1, 0, 1, 0, 1]
  8. tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
  9. acc = accuracy_score(y_true, y_pred) # 1.准确率
  10. recall = recall_score(y_true, y_pred) # 2.灵敏度/召回率
  11. specificity = tn / (tn+fp) # 3.特异性
  12. precision = precision_score(y_true, y_pred) # 4.精确度
  13. fmeasure = (2 * precision * recall / (precision + recall)) # 5.F-score
  14. roc = roc_auc_score(y_true, y_pred)

补充一个指标:roc,这个roc是曲线,上述的roc_auc_score(y_true, y_pred)是使用roc曲线计算出来的准确率