§
    ¨éUgé4  ã                   ó>   — d dl mZ ddlmZmZ  G d„ de¦  «        ZdS )é   )Ú"_BinaryClassifierCurveDisplayMixiné   )ÚaucÚ	roc_curvec            
       óˆ   — e Zd ZdZddddœd„Z	 dddddœd„Zeddd	dddddd
œd„¦   «         Zeddddddddœd„¦   «         ZdS )ÚRocCurveDisplayaÊ  ROC Curve visualization.

    It is recommend to use
    :func:`~sklearn.metrics.RocCurveDisplay.from_estimator` or
    :func:`~sklearn.metrics.RocCurveDisplay.from_predictions` to create
    a :class:`~sklearn.metrics.RocCurveDisplay`. All parameters are
    stored as attributes.

    Read more in the :ref:`User Guide <visualizations>`.

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

    tpr : ndarray
        True positive rate.

    roc_auc : float, default=None
        Area under ROC curve. If None, the roc_auc score is not shown.

    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 class considered as the positive class when computing the roc auc
        metrics. By default, `estimators.classes_[1]` is considered
        as the positive class.

        .. versionadded:: 0.24

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

    chance_level_ : matplotlib Artist or None
        The chance level line. It is `None` if the chance level is not plotted.

        .. versionadded:: 1.3

    ax_ : matplotlib Axes
        Axes with ROC Curve.

    figure_ : matplotlib Figure
        Figure containing the curve.

    See Also
    --------
    roc_curve : Compute Receiver operating characteristic (ROC) curve.
    RocCurveDisplay.from_estimator : Plot Receiver Operating Characteristic
        (ROC) curve given an estimator and some data.
    RocCurveDisplay.from_predictions : Plot Receiver Operating Characteristic
        (ROC) curve given the true and predicted values.
    roc_auc_score : Compute the area under the ROC curve.

    Examples
    --------
    >>> import matplotlib.pyplot as plt
    >>> import numpy as np
    >>> from sklearn import metrics
    >>> y = np.array([0, 0, 1, 1])
    >>> pred = np.array([0.1, 0.4, 0.35, 0.8])
    >>> fpr, tpr, thresholds = metrics.roc_curve(y, pred)
    >>> roc_auc = metrics.auc(fpr, tpr)
    >>> display = metrics.RocCurveDisplay(fpr=fpr, tpr=tpr, roc_auc=roc_auc,
    ...                                   estimator_name='example estimator')
    >>> display.plot()
    <...>
    >>> plt.show()
    N)Úroc_aucÚestimator_nameÚ	pos_labelc                óL   — || _         || _        || _        || _        || _        d S ©N)r
   ÚfprÚtprr	   r   )Úselfr   r   r	   r
   r   s         ú^/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/metrics/_plot/roc_curve.pyÚ__init__zRocCurveDisplay.__init__N   s*   € Ø,ˆÔØˆŒØˆŒØˆŒØ"ˆŒˆˆó    F)ÚnameÚplot_chance_levelÚchance_level_kwc                óZ  — |                       ||¬¦  «        \  | _        | _        }i }| j        �|�|› d| j        d›d�|d<   n| j        �d| j        d›�|d<   n|�||d<    |j        di |¤Ž dd	d
dœ}|� |j        di |¤Ž  | j        j        | j        | j        fi |¤Ž\  | _        | j	        �d| j	        › d�nd}d|z   }	d|z   }
| j         
                    |	d|
dd¬¦  «         |r | j        j        	 di |¤Ž\  | _        nd| _        d|v sd|v r| j                             d¬¦  «         | S )aí  Plot visualization.

        Extra keyword arguments will be passed to matplotlib's ``plot``.

        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 ROC Curve for labeling. If `None`, use `estimator_name` if
            not `None`, otherwise no labeling is shown.

        plot_chance_level : bool, default=False
            Whether to plot the chance level.

            .. versionadded:: 1.3

        chance_level_kw : dict, default=None
            Keyword arguments to be passed to matplotlib's `plot` for rendering
            the chance level line.

            .. versionadded:: 1.3

        **kwargs : dict
            Keyword arguments to be passed to matplotlib's `plot`.

        Returns
        -------
        display : :class:`~sklearn.metrics.RocCurveDisplay`
            Object that stores computed values.
        )Úaxr   Nz (AUC = z0.2fú)ÚlabelzAUC = zChance level (AUC = 0.5)Úkz--)r   ÚcolorÚ	linestylez (Positive label: Ú zFalse Positive RatezTrue Positive Rate)g{®Gáz„¿g)\�Âõ(ð?Úequal)ÚxlabelÚxlimÚylabelÚylimÚaspect©é    é   zlower right)Úloc© )r%   r%   )Ú_validate_plot_paramsÚax_Úfigure_r	   ÚupdateÚplotr   r   Úline_r   ÚsetÚchance_level_Úlegend)r   r   r   r   r   ÚkwargsÚline_kwargsÚchance_level_line_kwÚinfo_pos_labelr    r"   s              r   r.   zRocCurveDisplay.plotU   sß  € ðT (,×'AÒ'AÀRÈdÐ'AÑ'SÔ'SÑ$ˆŒ�$”, àˆØŒ<Ð#¨Ð(8Ø&*Ð#HÐ#H°D´LÐ#HÐ#HÐ#HÐ#HˆK˜Ñ Ð ØŒ\Ð%Ø#?¨D¬LÐ#?Ð#?Ð#?ˆK˜Ñ Ð ØÐØ#'ˆK˜Ñ àˆÔÐ$Ð$˜VÐ$Ð$Ð$ð 0ØØð 
ð  
Ðð Ð&Ø'Ð Ô'Ð:Ð:¨/Ð:Ð:Ð:à%˜œœ d¤h°´ÐHÐH¸KÐHÐH‰ˆŒà6:´nÐ6PÐ2 ¤Ð2Ð2Ð2Ð2ÐVXð 	ð '¨Ñ7ˆØ%¨Ñ6ˆØŒ�ŠØØØØØð 	ñ 	
ô 	
ð 	
ð ð 	&Ø$1 D¤H¤MØð%ð %Ø"6ð%ð %Ñ!ˆTÔÐð "&ˆDÔà�kÐ!Ð! WÐ0DÐ%DÐ%DØŒH�OŠO ˆOÑ.Ô.Ð.àˆr   TÚauto)Úsample_weightÚdrop_intermediateÚresponse_methodr   r   r   r   r   c                ón   — |                       ||||||¬¦  «        \  }}} | j        d||||||	||
|dœ	|¤ŽS )a;  Create a ROC Curve display from an estimator.

        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 some suboptimal thresholds which would not appear
            on a plotted ROC curve. This is useful in order to create lighter
            ROC curves.

        response_method : {'predict_proba', 'decision_function', 'auto'}                 default='auto'
            Specifies whether to use :term:`predict_proba` or
            :term:`decision_function` as the 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 class considered as the positive class when computing the roc auc
            metrics. By default, `estimators.classes_[1]` is considered
            as the positive class.

        name : str, default=None
            Name of ROC 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.

        plot_chance_level : bool, default=False
            Whether to plot the chance level.

            .. versionadded:: 1.3

        chance_level_kw : dict, default=None
            Keyword arguments to be passed to matplotlib's `plot` for rendering
            the chance level line.

            .. versionadded:: 1.3

        **kwargs : dict
            Keyword arguments to be passed to matplotlib's `plot`.

        Returns
        -------
        display : :class:`~sklearn.metrics.RocCurveDisplay`
            The ROC Curve display.

        See Also
        --------
        roc_curve : Compute Receiver operating characteristic (ROC) curve.
        RocCurveDisplay.from_predictions : ROC Curve visualization given the
            probabilities of scores of a classifier.
        roc_auc_score : Compute the area under the ROC curve.

        Examples
        --------
        >>> 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()
        )r:   r   r   )	Úy_trueÚy_predr8   r9   r   r   r   r   r   r)   )Ú!_validate_and_get_response_valuesÚfrom_predictions)ÚclsÚ	estimatorÚXÚyr8   r9   r:   r   r   r   r   r   r3   r=   s                 r   Úfrom_estimatorzRocCurveDisplay.from_estimator¯   s�   € ðH #&×"GÒ"GØØØØ+ØØð #Hñ #
ô #
Ñˆ�	˜4ð $ˆsÔ#ð 
ØØØ'Ø/ØØØØ/Ø+ð
ð 
ð ð
ð 
ð 	
r   )r8   r9   r   r   r   r   r   c                óÐ   — |                       |||||¬¦  «        \  }}t          |||||¬¦  «        \  }}}t          ||¦  «        } | |||||¬¦  «        } |j        d||||	dœ|
¤ŽS )uz  Plot ROC curve given the true and predicted values.

        Read more in the :ref:`User Guide <visualizations>`.

        .. versionadded:: 1.0

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

        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).

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

        drop_intermediate : bool, default=True
            Whether to drop some suboptimal thresholds which would not appear
            on a plotted ROC curve. This is useful in order to create lighter
            ROC curves.

        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 ROC 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.

        plot_chance_level : bool, default=False
            Whether to plot the chance level.

            .. versionadded:: 1.3

        chance_level_kw : dict, default=None
            Keyword arguments to be passed to matplotlib's `plot` for rendering
            the chance level line.

            .. versionadded:: 1.3

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

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

        See Also
        --------
        roc_curve : Compute Receiver operating characteristic (ROC) curve.
        RocCurveDisplay.from_estimator : ROC Curve visualization given an
            estimator and some data.
        roc_auc_score : Compute the area under the ROC curve.

        Examples
        --------
        >>> 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_pred = clf.decision_function(X_test)
        >>> RocCurveDisplay.from_predictions(
        ...    y_test, y_pred)
        <...>
        >>> plt.show()
        )r8   r   r   )r   r8   r9   )r   r   r	   r
   r   )r   r   r   r   r)   )Ú!_validate_from_predictions_paramsr   r   r.   )r@   r<   r=   r8   r9   r   r   r   r   r   r3   Úpos_label_validatedr   r   Ú_r	   Úvizs                    r   r?   z RocCurveDisplay.from_predictions)  sÉ   € ð~ %(×$IÒ$IØ�F¨-À9ÐSWð %Jñ %
ô %
Ñ!Ð˜Tõ  ØØØØ'Ø/ð
ñ 
ô 
‰ˆˆS�!õ �c˜3‘-”-ˆàˆcØØØØØ)ð
ñ 
ô 
ˆð ˆsŒxð 
ØØØ/Ø+ð	
ð 
ð
 ð
ð 
ð 	
r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r.   ÚclassmethodrD   r?   r)   r   r   r   r      s  € € € € € ðFð FðP -1ÀÐQUð #ð #ð #ð #ð #ð ðXð ØØðXð Xð Xð Xð Xðt ð ØØØØØØØðw
ð w
ð w
ð w
ñ „[ðw
ðr ð ØØØØØØðy
ð y
ð y
ð y
ñ „[ðy
ð y
ð y
r   r   N)Úutils._plottingr   Ú_rankingr   r   r   r)   r   r   ú<module>rQ      sn   ðØ AÐ AÐ AÐ AÐ AÐ AØ %Ð %Ð %Ð %Ð %Ð %Ð %Ð %ð^
ð ^
ð ^
ð ^
ð ^
Ð8ñ ^
ô ^
ð ^
ð ^
ð ^
r   