DetCurveDisplay#
- class sklearn.metrics.DetCurveDisplay(*, fpr, fnr, estimator_name=None, pos_label=None)[source]#
检测错误权衡 (DET) 曲线可视化。
建议使用
from_estimator或from_predictions来创建可视化器。所有参数都存储为属性。有关
scikit-learn可视化工具的通用信息,请参阅 可视化指南。有关解释这些图表的指南,请参阅 模型评估指南。0.24 版本新增。
- 参数:
- fprndarray
假阳性率。
- fnrndarray
假阴性率。
- estimator_namestr, default=None
估计器的名称。如果为 None,则不显示估计器名称。
- pos_labelint, float, bool or str, default=None
正类的标签。如果不是
None,则此值将显示在 x 轴和 y 轴标签中。
- 属性:
- line_matplotlib Artist
DET 曲线。
- ax_matplotlib Axes
带有 DET 曲线的轴。
- figure_matplotlib Figure
包含曲线的图。
另请参阅
det_curve计算不同概率阈值的错误率。
DetCurveDisplay.from_estimator根据估计器和一些数据绘制 DET 曲线。
DetCurveDisplay.from_predictions根据真实标签和预测标签绘制 DET 曲线。
示例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import det_curve, DetCurveDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(n_samples=1000, random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, test_size=0.4, random_state=0) >>> clf = SVC(random_state=0).fit(X_train, y_train) >>> y_score = clf.decision_function(X_test) >>> fpr, fnr, _ = det_curve(y_test, y_score) >>> display = DetCurveDisplay( ... fpr=fpr, fnr=fnr, estimator_name="SVC" ... ) >>> display.plot() <...> >>> plt.show()
- classmethod from_estimator(estimator, X, y, *, sample_weight=None, drop_intermediate=True, response_method='auto', pos_label=None, name=None, ax=None, **kwargs)[source]#
根据估计器和数据绘制 DET 曲线。
有关
scikit-learn可视化工具的通用信息,请参阅 可视化指南。有关解释这些图表的指南,请参阅 模型评估指南。1.0 版本新增。
- 参数:
- 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
是否删除真实阳性(tp)与前一个或下一个阈值不变的阈值。所有具有相同 tp 值的点都具有相同的
fnr,因此具有相同的 y 坐标。在版本 1.7 中新增。
- response_method{‘predict_proba’, ‘decision_function’, ‘auto’} default=’auto’
指定是使用 predict_proba 还是 decision_function 作为预测的目标响应。如果设置为“auto”,则首先尝试 predict_proba,如果不存在,则尝试 decision_function。
- pos_labelint, float, bool or str, default=None
正类的标签。默认情况下,
estimators.classes_[1]被视为正类。- namestr, default=None
用于标记的 DET 曲线名称。如果为
None,则使用估计器的名称。- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- **kwargsdict
传递给 matplotlib
plot函数的附加关键字参数。
- 返回:
- display
DetCurveDisplay 存储计算值的对象。
- display
另请参阅
det_curve计算不同概率阈值的错误率。
DetCurveDisplay.from_predictions根据真实标签和预测标签绘制 DET 曲线。
示例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import DetCurveDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(n_samples=1000, random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, test_size=0.4, random_state=0) >>> clf = SVC(random_state=0).fit(X_train, y_train) >>> DetCurveDisplay.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, y_pred='deprecated', **kwargs)[source]#
根据真实标签和预测标签绘制 DET 曲线。
有关
scikit-learn可视化工具的通用信息,请参阅 可视化指南。有关解释这些图表的指南,请参阅 模型评估指南。1.0 版本新增。
- 参数:
- y_true形状为 (n_samples,) 的 array-like
真实标签。
- y_score形状为 (n_samples,) 的类数组
目标分数,可以是正类的概率估计、置信度值,或决策的非阈值度量(如某些分类器的“decision_function”返回值)。
版本 1.8 中添加:
y_pred已重命名为y_score。- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。
- drop_intermediatebool, default=True
是否删除真实阳性(tp)与前一个或下一个阈值不变的阈值。所有具有相同 tp 值的点都具有相同的
fnr,因此具有相同的 y 坐标。在版本 1.7 中新增。
- pos_labelint, float, bool or str, default=None
正类的标签。当
pos_label=None时,如果y_true在{-1, 1}或{0, 1}中,则pos_label设置为1,否则将引发错误。- namestr, default=None
用于标记的 DET 曲线名称。如果为
None,则名称将设置为"Classifier"。- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- y_pred形状为 (n_samples,) 的类数组
目标分数,可以是正类的概率估计、置信度值,或决策的非阈值度量(如某些分类器的“decision_function”返回值)。
版本 1.8 中已弃用:
y_pred已弃用,将在 1.10 版本中删除。请使用y_score。- **kwargsdict
传递给 matplotlib
plot函数的附加关键字参数。
- 返回:
- display
DetCurveDisplay 存储计算值的对象。
- display
另请参阅
det_curve计算不同概率阈值的错误率。
DetCurveDisplay.from_estimator根据估计器和一些数据绘制 DET 曲线。
示例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import DetCurveDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(n_samples=1000, random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, test_size=0.4, random_state=0) >>> clf = SVC(random_state=0).fit(X_train, y_train) >>> y_score = clf.decision_function(X_test) >>> DetCurveDisplay.from_predictions( ... y_test, y_score) <...> >>> plt.show()
- plot(ax=None, *, name=None, **kwargs)[source]#
绘制可视化图。
- 参数:
- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- namestr, default=None
用于标记的 DET 曲线名称。如果为
None,则使用estimator_name(如果它不是None),否则不显示任何标签。- **kwargsdict
传递给 matplotlib
plot函数的附加关键字参数。
- 返回:
- display
DetCurveDisplay 存储计算值的对象。
- display