ó
    Ñ]jö3  ã                   óF   • S SK rS SKrS SKJr  S SKJrJr   " S S\5      r	g)é    N)Ú	det_curve)Ú"_BinaryClassifierCurveDisplayMixinÚ_deprecate_y_pred_parameterc            	       ó„   • \ rS rSrSrSSS.S jr\SSSSSSS.S	 j5       r\ SSSSSSS
S.S jj5       rSSS.S jjr	Sr
g)ÚDetCurveDisplayé   aË  Detection Error Tradeoff (DET) curve visualization.

It is recommended to use :func:`~sklearn.metrics.DetCurveDisplay.from_estimator`
or :func:`~sklearn.metrics.DetCurveDisplay.from_predictions` to create a
visualizer. All parameters are stored as attributes.

For general information regarding `scikit-learn` visualization tools, see
the :ref:`Visualization Guide <visualizations>`.
For guidance on interpreting these plots, refer to the
:ref:`Model Evaluation Guide <det_curve>`.

.. versionadded:: 0.24

Parameters
----------
fpr : ndarray
    False positive rate.

fnr : ndarray
    False negative rate.

estimator_name : str, default=None
    Name of estimator. If None, the estimator name is not shown.

pos_label : int, float, bool or str, default=None
    The label of the positive class. If not `None`, this value is displayed in
    the x- and y-axes labels.

Attributes
----------
line_ : matplotlib Artist
    DET Curve.

ax_ : matplotlib Axes
    Axes with DET Curve.

figure_ : matplotlib Figure
    Figure containing the curve.

See Also
--------
det_curve : Compute error rates for different probability thresholds.
DetCurveDisplay.from_estimator : Plot DET curve given an estimator and
    some data.
DetCurveDisplay.from_predictions : Plot DET curve given the true and
    predicted labels.

Examples
--------
>>> 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()
N)Úestimator_nameÚ	pos_labelc                ó4   • Xl         X l        X0l        X@l        g ©N©ÚfprÚfnrr	   r
   )Úselfr   r   r	   r
   s        Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sklearn/metrics/_plot/det_curve.pyÚ__init__ÚDetCurveDisplay.__init__S   s   € ØŒØŒØ,ÔØ"�ó    TÚauto)Úsample_weightÚdrop_intermediateÚresponse_methodr
   ÚnameÚaxc                ód   • U R                  UUUUUUS9u  p·nU R                  " SUUUUUU	US.U
D6$ )a6
  Plot DET curve given an estimator and data.

For general information regarding `scikit-learn` visualization tools, see
the :ref:`Visualization Guide <visualizations>`.
For guidance on interpreting these plots, refer to the
:ref:`Model Evaluation Guide <det_curve>`.

.. versionadded:: 1.0

Parameters
----------
estimator : estimator instance
    Fitted classifier or a fitted :class:`~sklearn.pipeline.Pipeline`
    in which the last estimator is a classifier.

X : {array-like, sparse matrix} of shape (n_samples, n_features)
    Input values.

y : array-like of shape (n_samples,)
    Target values.

sample_weight : array-like of shape (n_samples,), default=None
    Sample weights.

drop_intermediate : bool, default=True
    Whether to drop thresholds where true positives (tp) do not change
    from the previous or subsequent threshold. All points with the same
    tp value have the same `fnr` and thus same y coordinate.

    .. versionadded:: 1.7

response_method : {'predict_proba', 'decision_function', 'auto'}                 default='auto'
    Specifies whether to use :term:`predict_proba` or
    :term:`decision_function` as the predicted target response. If set
    to 'auto', :term:`predict_proba` is tried first and if it does not
    exist :term:`decision_function` is tried next.

pos_label : int, float, bool or str, default=None
    The label of the positive class. By default, `estimators.classes_[1]`
    is considered as the positive class.

name : str, default=None
    Name of DET curve for labeling. If `None`, use the name of the
    estimator.

ax : matplotlib axes, default=None
    Axes object to plot on. If `None`, a new figure and axes is
    created.

**kwargs : dict
    Additional keywords arguments passed to matplotlib `plot` function.

Returns
-------
display : :class:`~sklearn.metrics.DetCurveDisplay`
    Object that stores computed values.

See Also
--------
det_curve : Compute error rates for different probability thresholds.
DetCurveDisplay.from_predictions : Plot DET curve given the true and
    predicted labels.

Examples
--------
>>> 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()
)r   r
   r   )Úy_trueÚy_scorer   r   r   r   r
   © )Ú!_validate_and_get_response_valuesÚfrom_predictions)ÚclsÚ	estimatorÚXÚyr   r   r   r
   r   r   Úkwargsr   s               r   Úfrom_estimatorÚDetCurveDisplay.from_estimatorY   sk   € ð~ $'×#HÑ#HØØØØ+ØØð $Ið $
Ñ ˆ˜Dð ×#Ò#ð 	
ØØØ'Ø/ØØØñ	
ð ñ	
ð 		
r   Ú
deprecated)r   r   r
   r   r   Úy_predc                óš   • [        X(S5      nU R                  XX5US9u  p¦[        UUUUUS9u  p¼nU " UUUU
S9nUR                  " SXvS.U	D6$ )u  Plot the DET curve given the true and predicted labels.

For general information regarding `scikit-learn` visualization tools, see
the :ref:`Visualization Guide <visualizations>`.
For guidance on interpreting these plots, refer to the
:ref:`Model Evaluation Guide <det_curve>`.

.. versionadded:: 1.0

Parameters
----------
y_true : array-like of shape (n_samples,)
    True labels.

y_score : array-like of shape (n_samples,)
    Target scores, can either be probability estimates of the positive
    class, confidence values, or non-thresholded measure of decisions
    (as returned by `decision_function` on some classifiers).

    .. versionadded:: 1.8
        `y_pred` has been renamed to `y_score`.

sample_weight : array-like of shape (n_samples,), default=None
    Sample weights.

drop_intermediate : bool, default=True
    Whether to drop thresholds where true positives (tp) do not change
    from the previous or subsequent threshold. All points with the same
    tp value have the same `fnr` and thus same y coordinate.

    .. versionadded:: 1.7

pos_label : int, float, bool or str, default=None
    The label of the positive class. When `pos_label=None`, if `y_true`
    is in {-1, 1} or {0, 1}, `pos_label` is set to 1, otherwise an
    error will be raised.

name : str, default=None
    Name of DET curve for labeling. If `None`, name will be set to
    `"Classifier"`.

ax : matplotlib axes, default=None
    Axes object to plot on. If `None`, a new figure and axes is
    created.

y_pred : array-like of shape (n_samples,)
    Target scores, can either be probability estimates of the positive
    class, confidence values, or non-thresholded measure of decisions
    (as returned by â€œdecision_functionâ€� on some classifiers).

    .. deprecated:: 1.8
        `y_pred` is deprecated and will be removed in 1.10. Use
        `y_score` instead.

**kwargs : dict
    Additional keywords arguments passed to matplotlib `plot` function.

Returns
-------
display : :class:`~sklearn.metrics.DetCurveDisplay`
    Object that stores computed values.

See Also
--------
det_curve : Compute error rates for different probability thresholds.
DetCurveDisplay.from_estimator : Plot DET curve given an estimator and
    some data.

Examples
--------
>>> 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()
z1.8)r   r
   r   )r
   r   r   r   ©r   r   r   )r   Ú!_validate_from_predictions_paramsr   Úplot)r!   r   r   r   r   r
   r   r   r)   r%   Úpos_label_validatedr   r   Ú_Úvizs                  r   r    Ú DetCurveDisplay.from_predictionsÌ   sƒ   € ôF .¨g¸uÓEˆØ$'×$IÑ$IØ¨=ÐTXð %Jð %
Ñ!Ðô  ØØØØ'Ø/ñ
‰ˆ�!ñ ØØØØ)ñ	
ˆð �xŠxÐ3˜2Ñ3¨FÑ3Ð3r   )r   c                ó~  • U R                  XS9u  U l        U l        nUc  0 OSU0nUR                  " S0 UD6  [        R
                  " U R                  R                  5      R                  nU R                  R                  USU-
  5      U l        U R                  R                  USU-
  5      U l
        U R                  R                  " [        R                  R                  R                  U R                  5      [        R                  R                  R                  U R                  5      40 UD6u  U l        U R"                  b  SU R"                   S3OSnSU-   nSU-   nU R                  R%                  XxS	9  SU;   a  U R                  R'                  S
S9  / SQn	[        R                  R                  R                  U	5      n
U	 Vs/ s H=  nSU-  R)                  5       (       a  SR+                  U5      OSR+                  U5      PM?     nnU R                  R-                  U
5        U R                  R/                  U5        U R                  R1                  SS5        U R                  R3                  U
5        U R                  R5                  U5        U R                  R7                  SS5        U $ s  snf )aø  Plot visualization.

Parameters
----------
ax : matplotlib axes, default=None
    Axes object to plot on. If `None`, a new figure and axes is
    created.

name : str, default=None
    Name of DET curve for labeling. If `None`, use `estimator_name` if
    it is not `None`, otherwise no labeling is shown.

**kwargs : dict
    Additional keywords arguments passed to matplotlib `plot` function.

Returns
-------
display : :class:`~sklearn.metrics.DetCurveDisplay`
    Object that stores computed values.
r+   Úlabelé   z (Positive label: Ú)Ú zFalse Positive RatezFalse Negative Rate)ÚxlabelÚylabelzlower right)Úloc)	gü©ñÒMbP?g{®Gáz„?gš™™™™™©?gš™™™™™É?g      à?gš™™™™™é?gffffffî?g®Gáz®ï?g+‡ÙÎ÷ï?éd   z{:.0%}z{:.1%}éýÿÿÿé   r   )Ú_validate_plot_paramsÚax_Úfigure_ÚupdateÚnpÚfinfor   ÚdtypeÚepsÚclipr   r-   ÚspÚstatsÚnormÚppfÚline_r
   ÚsetÚlegendÚ
is_integerÚformatÚ
set_xticksÚset_xticklabelsÚset_xlimÚ
set_yticksÚset_yticklabelsÚset_ylim)r   r   r   r%   Úline_kwargsrD   Úinfo_pos_labelr7   r8   ÚticksÚtick_locationsÚsÚtick_labelss                r   r-   ÚDetCurveDisplay.plotE  s3  € ð* (,×'AÑ'AÀRÐ'AÐ'SÑ$ˆŒ�$”, à ™L‘b¨w¸¨oˆØ×ÒÑ$˜VÒ$ô �hŠh�t—x‘x—~‘~Ó&×*Ñ*ˆØ—8‘8—=‘=  a¨#¡gÓ.ˆŒØ—8‘8—=‘=  a¨#¡gÓ.ˆŒàŸ™ŸšÜ�H‰H�M‰M×Ñ˜dŸh™hÓ'Ü�H‰H�M‰M×Ñ˜dŸh™hÓ'ñ
ð ñ
‰ˆŒð 7;·n±nÑ6PÐ  §¡Ð 0°Ñ2ÐVXð 	ð '¨Ñ7ˆØ&¨Ñ7ˆØ�‰�‰˜FˆÑ2à�kÓ!Ø�H‰H�O‰O ˆOÑ.âGˆÜŸ™Ÿ™×*Ñ*¨5Ó1ˆñ ó
â�ð $'¨¡7×"6Ñ"6×"8Ñ"8ˆH�O‰O˜AÔ¸h¿o¹oÈaÓ>PÒPÙð 	ð 
ð 	�‰×Ñ˜NÔ+Ø�‰× Ñ  Ô-Ø�‰×Ñ˜"˜aÔ Ø�‰×Ñ˜NÔ+Ø�‰× Ñ  Ô-Ø�‰×Ñ˜"˜aÔ àˆùò
s   ÇAJ:)r>   r	   r?   r   r   rJ   r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úclassmethodr&   r    r-   Ú__static_attributes__r   r   r   r   r      s‡   † ñBðH 48À4õ #ð ð ØØØØØôp
ó ðp
ðd ð ðv4ð
 ØØØØØõv4ó ðv4ðp? D÷ ?ñ ?r   r   )
ÚnumpyrA   ÚscipyrF   Úsklearn.metrics._rankingr   Úsklearn.utils._plottingr   r   r   r   r   r   Ú<module>rg      s$   ðó Û å .÷ôvÐ8õ vr   