RocCurveDisplay#
- class sklearn.metrics.RocCurveDisplay(*, fpr, tpr, roc_auc=None, name=None, pos_label=None, estimator_name='deprecated')[source]#
ROC 曲线可视化。
建议使用
from_estimator、from_predictions或from_cv_results来创建RocCurveDisplay。所有参数都存储为属性。有关
scikit-learn可视化工具的一般信息,请参阅 可视化指南。有关解释这些图表的指导,请参阅 模型评估指南。- 参数:
- fprndarray 或 ndarray 列表
假阳性率。每个 ndarray 应包含单个曲线的值。如果要绘制多条曲线,列表的长度应与
tpr相同。版本 1.7 已更改: 现在接受列表以绘制多条曲线。
- tprndarray 或 ndarray 列表
真阳性率。每个 ndarray 应包含单个曲线的值。如果要绘制多条曲线,列表的长度应与
fpr相同。版本 1.7 已更改: 现在接受列表以绘制多条曲线。
- roc_aucfloat 或 float 列表,默认值=None
ROC 曲线下的面积,用于标记图例中的每条曲线。如果要绘制多条曲线,则应为与
fpr和tpr长度相同的列表。如果为None,则 ROC AUC 分数不会显示在图例中。版本 1.7 已更改: 现在接受列表以绘制多条曲线。
- namestr 或 str 列表,默认值=None
用于标记图例条目的名称。图例条目的数量由传递给
plot的curve_kwargs决定,不受name的影响。要标记每条曲线,请提供一个字符串列表。要避免标记外观相同的单个曲线,列表不能与curve_kwargs为字典或 None 一起使用。如果提供一个字符串,它将用于标记单个图例条目,或者如果存在多个图例条目,则用于标记每个单独的曲线。如果为None,则图例中不显示名称。版本 1.7 已更改:
estimator_name已弃用,改为使用name。- pos_labelint, float, bool or str, default=None
计算 ROC AUC 指标时被视为正类的类。如果不是
None,则此值会显示在 x 轴和 y 轴标签中。0.24 版本新增。
- estimator_namestr, default=None
估计器的名称。如果为 None,则不显示估计器名称。
版本 1.7 已弃用:
estimator_name已弃用,将在 1.9 中移除。请改用name。
- 属性:
- line_matplotlib Artist 或 matplotlib Artist 列表
ROC 曲线。
版本 1.7 已更改: 当绘制多条曲线时,此属性现在可以是 Artist 列表。
- chance_level_matplotlib Artist 或 None
机会水平线。如果未绘制机会水平线,则为
None。在版本 1.3 中新增。
- ax_matplotlib Axes
包含 ROC 曲线的 Axes。
- figure_matplotlib Figure
包含曲线的图。
另请参阅
roc_curve计算接收者操作特征 (ROC) 曲线。
RocCurveDisplay.from_estimator给定一个估计器和一些数据,绘制接收者操作特征 (ROC) 曲线。
RocCurveDisplay.from_predictions给定真实值和预测值,绘制接收者操作特征 (ROC) 曲线。
from_cv_results根据交叉验证结果绘制多折 ROC 曲线。
roc_auc_score计算 ROC 曲线下的面积。
示例
>>> import matplotlib.pyplot as plt >>> import numpy as np >>> from sklearn import metrics >>> y_true = np.array([0, 0, 1, 1]) >>> y_score = np.array([0.1, 0.4, 0.35, 0.8]) >>> fpr, tpr, thresholds = metrics.roc_curve(y_true, y_score) >>> roc_auc = metrics.auc(fpr, tpr) >>> display = metrics.RocCurveDisplay(fpr=fpr, tpr=tpr, roc_auc=roc_auc, ... name='example estimator') >>> display.plot() <...> >>> plt.show()
- classmethod from_cv_results(cv_results, X, y, *, sample_weight=None, drop_intermediate=True, response_method='auto', pos_label=None, ax=None, name=None, curve_kwargs=None, plot_chance_level=False, chance_level_kwargs=None, despine=False)[source]#
根据交叉验证结果创建多折 ROC 曲线显示。
在版本 1.7 中新增。
- 参数:
- cv_resultsdict
字典,由使用
return_estimator=True和return_indices=True的cross_validate返回(即,字典应包含“estimator”和“indices”键)。- Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}
输入值。
- yarray-like of shape (n_samples,)
目标值。
- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。
- drop_intermediatebool, default=True
是否删除某些次优的阈值,这些阈值不会出现在绘制的 ROC 曲线中。这有助于创建更轻量级的 ROC 曲线。
- response_method{‘predict_proba’, ‘decision_function’, ‘auto’} 默认值='auto'
指定是使用 predict_proba 还是 decision_function 作为目标响应。如果设置为“auto”,则先尝试 predict_proba,如果不存在,则尝试 decision_function。
- pos_labelint, float, bool or str, default=None
计算 ROC AUC 指标时被视为正类的类。默认情况下,
cv_results中的estimator.classes_[1]被视为正类。- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- namestr 或 str 列表,默认值=None
用于标记图例条目的名称。图例条目的数量由
curve_kwargs决定,不受name的影响。要标记每条曲线,请提供一个字符串列表。要避免标记外观相同的单个曲线,列表不能与curve_kwargs为字典或 None 一起使用。如果提供一个字符串,它将用于标记单个图例条目,或者如果存在多个图例条目,则用于标记每个单独的曲线。如果为None,则图例中不显示名称。- curve_kwargsdict 或 dict 列表,默认值=None
传递给 matplotlib 的
plot函数以绘制单个 ROC 曲线的关键字参数。如果提供列表,则参数依次应用于每个 CV 折叠的 ROC 曲线,并为每条曲线添加一个图例条目。如果提供单个字典,则相同的参数应用于所有 ROC 曲线,并添加一个图例条目以显示所有曲线,该条目以平均 ROC AUC 分数标记。- plot_chance_levelbool,默认值=False
是否绘制机会水平线。
- chance_level_kwargsdict,默认值=None
传递给 matplotlib 的
plot函数以渲染机会水平线的关键字参数。- despinebool,默认值=False
是否从图中移除顶部和右侧的边框线。
- 返回:
- 包含 ROC 曲线的 Axes。
RocCurveDisplay。
另请参阅
roc_curve计算接收者操作特征 (ROC) 曲线。
RocCurveDisplay.from_estimator给定一个估计器和一些数据,绘制接收者操作特征 (ROC) 曲线。
RocCurveDisplay.from_predictions根据分类器的概率或分数可视化 ROC 曲线。
roc_auc_score计算 ROC 曲线下的面积。
示例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import RocCurveDisplay >>> from sklearn.model_selection import cross_validate >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> clf = SVC(random_state=0) >>> cv_results = cross_validate( ... clf, X, y, cv=3, return_estimator=True, return_indices=True) >>> RocCurveDisplay.from_cv_results(cv_results, X, y) <...> >>> plt.show()
- classmethod from_estimator(estimator, X, y, *, sample_weight=None, drop_intermediate=True, response_method='auto', pos_label=None, name=None, ax=None, curve_kwargs=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[source]#
从估计器创建 ROC 曲线显示。
有关
scikit-learn可视化工具的一般信息,请参阅 可视化指南。有关解释这些图表的指导,请参阅 模型评估指南。- 参数:
- estimatorestimator instance
已拟合的分类器或已拟合的
Pipeline,其中最后一个估计器是分类器。- Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}
输入值。
- yarray-like of shape (n_samples,)
目标值。
- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。
- drop_intermediatebool, default=True
是否删除导致 ROC 空间中点与其邻居共线的阈值。这不会影响 ROC AUC 或曲线的视觉形状,但会减少绘制的点数。
- response_method{‘predict_proba’, ‘decision_function’, ‘auto’} 默认值='auto'
指定是使用 predict_proba 还是 decision_function 作为目标响应。如果设置为“auto”,则先尝试 predict_proba,如果不存在,则尝试 decision_function。
- pos_labelint, float, bool or str, default=None
计算 ROC AUC 时被视为正类的类。默认情况下,
estimators.classes_[1]被视为正类。- namestr, default=None
用于标记的 ROC 曲线名称。如果为
None,则使用估计器的名称。- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- curve_kwargsdict,默认值=None
传递给 matplotlib 的
plot函数的关键字参数。在版本 1.7 中新增。
- plot_chance_levelbool,默认值=False
是否绘制机会水平线。
在版本 1.3 中新增。
- chance_level_kwdict,默认值=None
传递给 matplotlib 的
plot函数以渲染机会水平线的关键字参数。在版本 1.3 中新增。
- despinebool,默认值=False
是否从图中移除顶部和右侧的边框线。
版本 1.6 中新增。
- **kwargsdict
传递给 matplotlib 的
plot的关键字参数。版本 1.7 已弃用: kwargs 已弃用,将在 1.9 中移除。请将 matplotlib 参数作为字典传递给
curve_kwargs。
- 返回:
- 包含 ROC 曲线的 Axes。
ROC 曲线显示。
另请参阅
roc_curve计算接收者操作特征 (ROC) 曲线。
RocCurveDisplay.from_predictions根据分类器的概率或分数可视化 ROC 曲线。
from_cv_results根据交叉验证结果绘制多折 ROC 曲线。
roc_auc_score计算 ROC 曲线下的面积。
示例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import RocCurveDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> clf = SVC(random_state=0).fit(X_train, y_train) >>> RocCurveDisplay.from_estimator( ... clf, X_test, y_test) <...> >>> plt.show()
- classmethod from_predictions(y_true, y_score=None, *, sample_weight=None, drop_intermediate=True, pos_label=None, name=None, ax=None, curve_kwargs=None, plot_chance_level=False, chance_level_kw=None, despine=False, y_pred='deprecated', **kwargs)[source]#
根据真实值和预测值绘制 ROC 曲线。
有关
scikit-learn可视化工具的一般信息,请参阅 可视化指南。有关解释这些图表的指导,请参阅 模型评估指南。1.0 版本新增。
- 参数:
- y_true形状为 (n_samples,) 的 array-like
真实标签。
- y_score形状为 (n_samples,) 的类数组
目标分数,可以是正类的概率估计、置信度值,或非阈值化的决策度量(如某些分类器的“decision_function”返回的值)。
版本 1.7 已添加:
y_pred已重命名为y_score。- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。
- drop_intermediatebool, default=True
是否删除导致 ROC 空间中点与其邻居共线的阈值。这不会影响 ROC AUC 或曲线的视觉形状,但会减少绘制的点数。
- pos_labelint, float, bool or str, default=None
计算 ROC AUC 时的正类标签。当
pos_label=None时,如果y_true为 {-1, 1} 或 {0, 1},则pos_label设置为 1,否则将引发错误。- namestr, default=None
用于图例标记的 ROC 曲线名称。如果为
None,则名称将设置为"Classifier"。- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- curve_kwargsdict,默认值=None
传递给 matplotlib 的
plot函数的关键字参数。在版本 1.7 中新增。
- plot_chance_levelbool,默认值=False
是否绘制机会水平线。
在版本 1.3 中新增。
- chance_level_kwdict,默认值=None
传递给 matplotlib 的
plot函数以渲染机会水平线的关键字参数。在版本 1.3 中新增。
- despinebool,默认值=False
是否从图中移除顶部和右侧的边框线。
版本 1.6 中新增。
- y_pred形状为 (n_samples,) 的类数组
目标分数,可以是正类的概率估计、置信度值,或非阈值化的决策度量(如某些分类器的“decision_function”返回的值)。
版本 1.7 已弃用:
y_pred已弃用,将在 1.9 中移除。请使用y_score。- **kwargsdict
传递给 matplotlib
plot函数的附加关键字参数。版本 1.7 已弃用: kwargs 已弃用,将在 1.9 中移除。请将 matplotlib 参数作为字典传递给
curve_kwargs。
- 返回:
- 包含 ROC 曲线的 Axes。
存储计算值的对象。
另请参阅
roc_curve计算接收者操作特征 (ROC) 曲线。
RocCurveDisplay.from_estimator给定估计器和一些数据,可视化 ROC 曲线。
from_cv_results根据交叉验证结果绘制多折 ROC 曲线。
roc_auc_score计算 ROC 曲线下的面积。
示例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import RocCurveDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> clf = SVC(random_state=0).fit(X_train, y_train) >>> y_score = clf.decision_function(X_test) >>> RocCurveDisplay.from_predictions(y_test, y_score) <...> >>> plt.show()
- plot(ax=None, *, name=None, curve_kwargs=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[source]#
绘制可视化图。
- 参数:
- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- namestr 或 str 列表,默认值=None
用于标记图例条目的名称。图例条目的数量由
curve_kwargs决定,不受name的影响。要标记每条曲线,请提供一个字符串列表。要避免标记外观相同的单个曲线,列表不能与curve_kwargs为字典或 None 一起使用。如果提供一个字符串,它将用于标记单个图例条目,或者如果存在多个图例条目,则用于标记每个单独的曲线。如果为None,则设置为在RocCurveDisplay初始化时提供的name。如果仍然为None,则图例中不显示名称。在版本 1.7 中新增。
- curve_kwargsdict 或 dict 列表,默认值=None
传递给 matplotlib 的
plot函数以绘制单个 ROC 曲线的关键字参数。对于单曲线绘图,应为字典。对于多曲线绘图,如果提供列表,则参数依次应用于每个 CV 折叠的 ROC 曲线,并为每条曲线添加一个图例条目。如果提供单个字典,则相同的参数应用于所有 ROC 曲线,并添加一个图例条目以显示所有曲线,该条目以平均 ROC AUC 分数标记。在版本 1.7 中新增。
- plot_chance_levelbool,默认值=False
是否绘制机会水平线。
在版本 1.3 中新增。
- chance_level_kwdict,默认值=None
传递给 matplotlib 的
plot函数以渲染机会水平线的关键字参数。在版本 1.3 中新增。
- despinebool,默认值=False
是否从图中移除顶部和右侧的边框线。
版本 1.6 中新增。
- **kwargsdict
传递给 matplotlib 的
plot的关键字参数。版本 1.7 已弃用: kwargs 已弃用,将在 1.9 中移除。请将 matplotlib 参数作为字典传递给
curve_kwargs。
- 返回:
- 包含 ROC 曲线的 Axes。
存储计算值的对象。