侧边栏壁纸
博主头像
lmg博主等级

  • 累计撰写 55 篇文章
  • 累计创建 6 个标签
  • 累计收到 2 条评论
标签搜索

常用总结

lmg
lmg
2019-04-10 / 0 评论 / 0 点赞 / 719 阅读 / 849 字
温馨提示:
本文最后更新于 2022-04-16,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

ROC曲线

根据机器学习中分类器的预测得分对样例**(每个样例的阳性概率)**进行排序,按照顺序逐个把样本的概率作为阈值thresholds进行预测,计算出FPR和TPR。分别以FPR、TPR为横纵坐标作图即可得到ROC曲线。所以作ROC曲线时,需要先求出FPR和TPR。这两个变量的定义:
FPR = TP/(TP+FN)

TPR = TP/(TP+FP)

ROC示意图
将样本输入分类器,每个样本将得到一个预测得分。我们通过设置不同的截断点,即可截取不同的信息。对应此示例图中,每个阈值的识别结果对应一个点(FPR,TPR)。当阈值取最大时,所有样本都被识别成负样本,对应于坐下角的点(0,0); 当阈值取最小时,所有样本都被识别成正样本,对应于右上角的点(1,1),随着阈值从最大变化到最小,TP和FP都逐渐大;
python中调用ROC

import numpy as np
from sklearn import metrics
import matplotlib.pyplot as plt
from sklearn.metrics import auc

# 真实标签
y_true = np.array([0,0,1,1])
print('y_true: ', y_true)
# y_score为预测为阳性的得分(说概率不大准确,因为这个score可以大于1)
y_score = np.array([0.1, 0.35, 0.3, 0.8])
print('y_score:', y_score)
fpr, tpr, thresholds = metrics.roc_curve(y_true, y_score, pos_label=1)
print('fpr', fpr)
print('tpr', tpr)
print('thresholds', thresholds)
plt.plot(fpr,tpr,marker = 'o')
plt.show()
AUC = auc(fpr, tpr)
print('AUC', AUC)

输出:

阈值[0]表示没有被预测的实例,并且被任意设置为max(y_score) + 1

极大似然估计

0

评论区