ROC 曲线#
- sklearn.metrics.roc_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=True)[source]#
- 计算受试者工作特征曲线 (ROC)。 - 注意:此实现仅限于二元分类任务。 - 在 用户指南 中了解更多信息。 - 参数:
- y_true形状为 (n_samples,) 的类数组
- 真实的二元标签。如果标签不是 {-1, 1} 或 {0, 1},则应明确给出 pos_label。 
- y_score形状为 (n_samples,) 的类数组
- 目标分数,可以是正类的概率估计、置信值或未设定阈值的决策度量(某些分类器上的“decision_function”返回的值)。 
- pos_label整数、浮点数、布尔值或字符串,默认为 None
- 正类的标签。当 - pos_label=None时,如果- y_true在 {-1, 1} 或 {0, 1} 中,则- pos_label设置为 1,否则会引发错误。
- sample_weight形状为 (n_samples,) 的类数组,默认为 None
- 样本权重。 
- drop_intermediate布尔值,默认为 True
- 是否丢弃一些在绘制的 ROC 曲线上不会出现的次优阈值。这对于创建更轻量级的 ROC 曲线很有用。 - 0.17 版新增:参数 drop_intermediate。 
 
- 返回:
- fpr形状为 (>2,) 的 ndarray
- 递增的假阳性率,使得元素 i 是分数 >= - thresholds[i]的预测的假阳性率。
- tpr形状为 (>2,) 的 ndarray
- 递增的真阳性率,使得元素 - i是分数 >=- thresholds[i]的预测的真阳性率。
- thresholds形状为 (n_thresholds,) 的 ndarray
- 用于计算 fpr 和 tpr 的决策函数上的递减阈值。 - thresholds[0]表示没有实例被预测,并任意设置为- np.inf。
 
 - 参见 - RocCurveDisplay.from_estimator
- 给定估计器和一些数据,绘制受试者工作特征 (ROC) 曲线。 
- RocCurveDisplay.from_predictions
- 给定真值和预测值,绘制受试者工作特征 (ROC) 曲线。 
- DET 曲线 (检测误差贸易曲线)
- 计算不同概率阈值的错误率。 
- ROC AUC 评分
- 计算 ROC 曲线下的面积。 
 - 备注 - 由于阈值从低到高排序,因此在返回它们时会反转它们,以确保它们与 - fpr和- tpr对应,在计算过程中- fpr和- tpr是反向排序的。- 对于 - tpr=0和- fpr=0的情况,添加一个任意阈值以确保曲线从- (0, 0)开始。此阈值对应于- np.inf。- 参考文献 [1][2]- Fawcett T. An introduction to ROC analysis[J]. Pattern Recognition Letters, 2006, 27(8):861-874. - 示例 - >>> import numpy as np >>> from sklearn import metrics >>> y = np.array([1, 1, 2, 2]) >>> scores = np.array([0.1, 0.4, 0.35, 0.8]) >>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2) >>> fpr array([0. , 0. , 0.5, 0.5, 1. ]) >>> tpr array([0. , 0.5, 0.5, 1. , 1. ]) >>> thresholds array([ inf, 0.8 , 0.4 , 0.35, 0.1 ]) 
 
     
 
 
