§
    ¦˜ºhñž  ã            
       óp  — d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZmZmZmZmZmZ d dlmZmZmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZ d dl m!Z! d dl"m#Z#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z=m>Z>m?Z?m@Z@ d dlAmBZB dZC ejD        d¬¦  «        d„ ¦   «         ZEejF         G                    dddg¦  «        ejF         G                    dd d!g¦  «        d"„ ¦   «         ¦   «         ZHd#„ ZIejF         G                    dd d!g¦  «        d$„ ¦   «         ZJejF         G                    dddg¦  «        ejF         G                    dd d!g¦  «        d%„ ¦   «         ¦   «         ZKejF         G                    dddg¦  «        ejF         G                    dd d!g¦  «        d&„ ¦   «         ¦   «         ZLejF         G                    dddg¦  «        ejF         G                    dd d!g¦  «        ejF         G                    d' eMd(¦  «        ¦  «        d)„ ¦   «         ¦   «         ¦   «         ZNd*„ ZOd+„ ZPejF         G                    dddg¦  «        d,„ ¦   «         ZQd-„ ZRd.„ ZSejF         G                    dd d!g¦  «        d/„ ¦   «         ZTejF         G                    dd d!g¦  «        d0„ ¦   «         ZUejF         G                    dd d!g¦  «        d1„ ¦   «         ZVejF         G                    d2ejW         X                    d3¦  «         Y                    d4d5d(¦  «        ejW         X                    d3¦  «         Y                    d4d5d(d6¦  «        g¦  «        d7„ ¦   «         ZZejD        d8„ ¦   «         Z[ejD        d9„ ¦   «         Z\d:„ Z]ejF         G                    d; ej^         e7d<d=¬>¦  «        d(¦  «         ej^         e7d<d=¬>¦  «        d?¦  «        g¦  «        d@„ ¦   «         Z_dA„ Z`dB„ Za ejD        d¬¦  «        dC„ ¦   «         Zb ejD        d¬¦  «        dD„ ¦   «         ZcejF         G                    dEd5dFg¦  «        ejF         G                    dGdHdIg¦  «        dJ„ ¦   «         ¦   «         ZddK„ ZeejF         G                    dLdMdNg¦  «        dO„ ¦   «         ZfdP„ ZgejF         G                    dQdRdSg¦  «        dT„ ¦   «         ZhdU„ ZiejF         G                    dVejekg¦  «        dW„ ¦   «         ZlejF         G                    dVejekg¦  «        dX„ ¦   «         ZmejF         G                    dYg dZ¢¦  «        d[„ ¦   «         ZnejF         G                    dddg¦  «        ejF         G                    dd d!g¦  «        d\„ ¦   «         ¦   «         ZoejF         G                    d]d^d_g¦  «        d`„ ¦   «         ZpejF         G                    dadbgeCz   ejq        eC¦  «        g¦  «        dc„ ¦   «         Zrdd„ ZsejF         G                    dddg¦  «        ejF         G                    dd d!g¦  «        de„ ¦   «         ¦   «         Ztdf„ Zudg„ Zvdh„ Zwdi„ Zxdj„ ZydS )ké    N)Úassert_allclose)Úsparse)ÚBaseEstimatorÚclone)ÚCalibratedClassifierCVÚCalibrationDisplayÚ_CalibratedClassifierÚ_sigmoid_calibrationÚ_SigmoidCalibrationÚcalibration_curve)Ú	load_irisÚ
make_blobsÚmake_classification)ÚDummyClassifier)ÚRandomForestClassifierÚVotingClassifier)ÚNotFittedError)ÚDictVectorizer)ÚSimpleImputer)ÚIsotonicRegression)ÚLogisticRegressionÚSGDClassifier)Úbrier_score_loss)ÚKFoldÚLeaveOneOutÚcheck_cvÚcross_val_predictÚcross_val_scoreÚtrain_test_split)ÚMultinomialNB)ÚPipelineÚmake_pipeline)ÚLabelEncoderÚStandardScaler)Ú	LinearSVC)ÚDecisionTreeClassifier)ÚCheckingClassifier)Ú_convert_containerÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)ÚsoftmaxéÈ   Úmodule)Úscopec                  ó>   — t          t          dd¬¦  «        \  } }| |fS )Né   é*   ©Ú	n_samplesÚ
n_featuresÚrandom_state)r   Ú	N_SAMPLES)ÚXÚys     úf/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/tests/test_calibration.pyÚdatar;   7   s#   € å­¸qÈrÐRÑRÔR�D€A€qØˆaˆ4€Kó    ÚmethodÚsigmoidÚisotonicÚensembleTFc                 óê  — t           dz  }| \  }}t          j                             d¬¦  «                             |j        ¬¦  «        }||                     ¦   «         z  }|d |…         |d |…         |d |…         }	}}||d …         ||d …         }}
t          d¬¦  «                             |||	¬¦  «        }| 	                    |
¦  «        d d …df         }t          ||j        dz   |¬	¦  «        }t          j        t          ¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   ||
ft          j        |¦  «        t          j        |
¦  «        ffD �]�\  }}t          ||d
|¬¦  «        }|                     |||	¬¦  «         | 	                    |¦  «        d d …df         }t!          ||¦  «        t!          ||¦  «        k    sJ ‚|                     ||dz   |	¬¦  «         | 	                    |¦  «        d d …df         }t#          ||¦  «         |                     |d|z  dz
  |	¬¦  «         | 	                    |¦  «        d d …df         }t#          ||¦  «         |                     ||dz   dz  |	¬¦  «         | 	                    |¦  «        d d …df         }|dk    rt#          |d|z
  ¦  «         �Œct!          ||¦  «        t!          |dz   dz  |¦  «        k    sJ ‚�Œ�d S )Né   r2   ©Úseed©ÚsizeT©Úforce_alpha©Úsample_weighté   ©Úcvr@   é   ©r=   rM   r@   r>   )r7   ÚnpÚrandomÚRandomStateÚuniformrF   Úminr    ÚfitÚpredict_probar   ÚpytestÚraisesÚ
ValueErrorr   Ú
csr_matrixr   r*   )r;   r=   r@   r4   r8   r9   rJ   ÚX_trainÚy_trainÚsw_trainÚX_testÚy_testÚclfÚprob_pos_clfÚcal_clfÚthis_X_trainÚthis_X_testÚprob_pos_cal_clfÚprob_pos_cal_clf_relabeleds                      r:   Útest_calibrationrg   =   s’  € õ ˜Q‘€IØ�D€A€qÝ”I×)Ò)¨rÐ)Ñ2Ô2×:Ò:ÀÄÐ:ÑGÔG€Màˆ�Š‰Œ�L€Að "# : I :¤°°*°9°*´¸}ÈZÈiÈZÔ?X�hˆW€GØ�y�z�z”] A i j j¤MˆF€Fõ  DÐ
)Ñ
)Ô
)×
-Ò
-¨g°wÈhÐ
-Ñ
WÔ
W€CØ×$Ò$ VÑ,Ô,¨Q¨Q¨Q°¨TÔ2€Lå$ S¨Q¬V°a©ZÀ(ÐKÑKÔK€GÝ	Œ•zÑ	"Ô	"ð ð Ø�Š�A�qÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 
�&ÐÝ	Ô	˜7Ñ	#Ô	#¥VÔ%6°vÑ%>Ô%>Ð?ð&ð #ñ #Ñ!ˆ�kõ )¨°VÀÈHÐUÑUÔUˆð 	�Š�L '¸ˆÑBÔBÐBØ"×0Ò0°Ñ=Ô=¸a¸a¸aÀ¸dÔCÐõ   ¨Ñ5Ô5Õ8HØÐ$ñ9
ô 9
ò 
ð 
ð 
ð 
ð
 	�Š�L '¨A¡+¸XˆÑFÔFÐFØ%,×%:Ò%:¸;Ñ%GÔ%GÈÈÈÈ1ÈÔ%MÐ"Ý!Ð"2Ð4NÑOÔOÐOð 	�Š�L ! g¡+°¡/ÀˆÑJÔJÐJØ%,×%:Ò%:¸;Ñ%GÔ%GÈÈÈÈ1ÈÔ%MÐ"Ý!Ð"2Ð4NÑOÔOÐOð 	�Š�L 7¨Q¡;°!Ñ"3À8ˆÑLÔLÐLØ%,×%:Ò%:¸;Ñ%GÔ%GÈÈÈÈ1ÈÔ%MÐ"Ø�YÒÐÝ%Ð&6¸Ð<VÑ8VÑWÔWÐWÑWõ $ F¨LÑ9Ô9Õ<LØ˜!‘˜qÑ Ð"<ñ=ô =ò ð ð ð ñ ðC#ð #s   Ä
D-Ä-D1Ä4D1c                 ó®   — | \  }}t          d¬¦  «        }|                     ||¦  «         |j        d         j        }t	          |t
          ¦  «        sJ ‚d S )NrB   ©rM   r   )r   rU   Úcalibrated_classifiers_Ú	estimatorÚ
isinstancer%   )r;   r8   r9   Ú	calib_clfÚbase_ests        r:   Ú"test_calibration_default_estimatorro   z   s[   € à�D€A€qÝ&¨!Ð,Ñ,Ô,€IØ‡M‚M�!�QÑÔÐàÔ0°Ô3Ô=€HÝ�h¥	Ñ*Ô*Ð*Ð*Ð*Ð*Ð*r<   c                 ó  — | \  }}d}t          |¬¦  «        }t          ||¬¦  «        }t          |j        t           ¦  «        sJ ‚|j        j        |k    sJ ‚|                     ||¦  «         |r|nd}t          |j        ¦  «        |k    sJ ‚d S )NrN   )Ún_splitsrL   rK   )r   r   rl   rM   rq   rU   Úlenrj   )r;   r@   r8   r9   ÚsplitsÚkfoldrm   Úexpected_n_clfs           r:   Útest_calibration_cv_splitterrv   „   s¦   € ð �D€A€qà€FÝ˜6Ð"Ñ"Ô"€EÝ&¨%¸(ÐCÑCÔC€IÝ�i”l¥EÑ*Ô*Ð*Ð*Ð*ØŒ<Ô  FÒ*Ð*Ð*Ð*à‡M‚M�!�QÑÔÐØ'Ð.�V�V¨Q€NÝˆyÔ0Ñ1Ô1°^ÒCÐCÐCÐCÐCÐCr<   c                 ó@  — t           dz  }| \  }}t          j                             d¬¦  «                             t          |¦  «        ¬¦  «        }|d |…         |d |…         |d |…         }	}}||d …         }
t          dd¬¦  «        }t          |||¬¦  «        }|                     |||	¬¦  «         | 	                    |
¦  «        }|                     ||¦  «         | 	                    |
¦  «        }t          j
                             ||z
  ¦  «        }|d	k    sJ ‚d S )
NrB   r2   rC   rE   Úauto©Údualr6   )r=   r@   rI   çš™™™™™¹?)r7   rP   rQ   rR   rS   rr   r%   r   rU   rV   ÚlinalgÚnorm)r;   r=   r@   r4   r8   r9   rJ   r[   r\   r]   r^   rk   Úcalibrated_clfÚprobs_with_swÚprobs_without_swÚdiffs                   r:   Útest_sample_weightr‚   ”   s"  € õ ˜Q‘€IØ�D€A€qå”I×)Ò)¨rÐ)Ñ2Ô2×:Ò:ÅÀAÁÄÐ:ÑGÔG€MØ!" : I :¤°°*°9°*´¸}ÈZÈiÈZÔ?X�hˆW€GØˆyˆzˆzŒ]€Få˜v°BÐ7Ñ7Ô7€IÝ+¨I¸fÈxÐXÑXÔX€NØ×Ò�w °xÐÑ@Ô@Ð@Ø"×0Ò0°Ñ8Ô8€Mð ×Ò�w Ñ(Ô(Ð(Ø%×3Ò3°FÑ;Ô;ÐåŒ9�>Š>˜-Ð*:Ñ:Ñ;Ô;€DØ�#Š:ˆ:ˆ:ˆ:ˆ:ˆ:r<   c                 ó¬  — | \  }}t          ||d¬¦  «        \  }}}}t          t          ¦   «         t          dd¬¦  «        ¦  «        }	t	          |	|d|¬¦  «        }
|
                     ||¦  «         |
                     |¦  «        }t	          |	|d|¬¦  «        }|                     ||¦  «         |                     |¦  «        }t          ||¦  «         dS )	zTest parallel calibrationr2   )r6   rx   ry   rB   )r=   Ún_jobsr@   rK   N)r   r"   r$   r%   r   rU   rV   r   )r;   r=   r@   r8   r9   r[   r^   r\   r_   rk   Úcal_clf_parallelÚprobs_parallelÚcal_clf_sequentialÚprobs_sequentials                 r:   Útest_parallel_executionr‰   ¬   s÷   € ð �D€A€qÝ'7¸¸1È2Ð'NÑ'NÔ'NÑ$€GˆV�W˜få�nÑ.Ô.µ	¸vÐTVÐ0WÑ0WÔ0WÑXÔX€Iå-Ø˜&¨°Xðñ ô Ðð ×Ò˜ 'Ñ*Ô*Ð*Ø%×3Ò3°FÑ;Ô;€Nå/Ø˜&¨°Xðñ ô Ðð ×Ò˜7 GÑ,Ô,Ð,Ø)×7Ò7¸Ñ?Ô?Ðå�NÐ$4Ñ5Ô5Ð5Ð5Ð5r<   rD   rB   c                 ó²  — d„ }t          dd¬¦  «        }t          dd|dd¬	¦  «        \  }}d
||d
k    <   t          j        |¦  «        j        d         }|d d d
…         |d d d
…         }	}|dd d
…         |dd d
…         }}
|                     ||	¦  «         t          || d|¬¦  «        }|                     ||	¦  «         |                     |
¦  «        }t          t          j	        |d¬¦  «        t          j
        t          |
¦  «        ¦  «        ¦  «         d|                     |
|¦  «        cxk     rdk     sn J ‚|                     |
|¦  «        d|                     |
|¦  «        z  k    sJ ‚ ||t          |                     |
¦  «        ¦  «        |¬¦  «        } ||||¬¦  «        }|d|z  k     sJ ‚t          dd¬¦  «        }|                     ||	¦  «         |                     |
¦  «        } ||||¬¦  «        }t          || d|¬¦  «        }|                     ||	¦  «         |                     |
¦  «        } ||||¬¦  «        }|d|z  k     sJ ‚d S )Nc                 ó†   — t          j        |¦  «        |          }t          j        ||z
  dz  ¦  «        |j        d         z  S )NrB   r   )rP   ÚeyeÚsumÚshape)Úy_trueÚ
proba_predÚ	n_classesÚY_onehots       r:   Úmulticlass_brierz5test_calibration_multiclass.<locals>.multiclass_brierÊ   s<   € Ý”6˜)Ñ$Ô$ VÔ,ˆÝŒv�x *Ñ,°Ñ2Ñ3Ô3°h´nÀQÔ6GÑGÐGr<   rx   é   ry   iô  éd   é
   ç      .@©r4   r5   r6   ÚcentersÚcluster_stdrB   r   rK   rN   rO   ©ÚaxisçÍÌÌÌÌÌä?gffffffî?)r‘   gš™™™™™ñ?é   r2   )Ún_estimatorsr6   )r%   r   rP   ÚuniquerŽ   rU   r   rV   r   r�   Úonesrr   Úscorer,   Údecision_functionr   )r=   r@   rD   r“   r`   r8   r9   r‘   r[   r\   r^   r_   rb   ÚprobasÚuncalibrated_brierÚcalibrated_brierÚ	clf_probsÚcal_clf_probss                     r:   Útest_calibration_multiclassr©   Ä   sÀ  € ðHð Hð Hõ ˜¨aÐ
0Ñ
0Ô
0€CÝØ #°DÀ"ÐRVðñ ô �D€A€qð €A€aˆ!‚e�HÝ”	˜!‘”Ô" 1Ô%€IØ˜˜˜1˜”v˜q   1 œvˆW€GØ�q�t˜!�t”W˜a   1 œgˆF€Fà‡G‚GˆG�WÑÔÐå$ S°¸AÈÐQÑQÔQ€GØ‡K‚K�˜Ñ!Ô!Ð!Ø×"Ò" 6Ñ*Ô*€Få•B”F˜6¨Ð*Ñ*Ô*­B¬GµC¸±K´KÑ,@Ô,@ÑAÔAÐAð
 �#—)’)˜F FÑ+Ô+Ð2Ð2Ò2Ð2¨dÒ2Ð2Ð2Ð2Ð2Ð2ð �=Š=˜ Ñ(Ô(¨4°#·)²)¸FÀFÑ2KÔ2KÑ+KÒKÐKÐKÐKð
 *Ð)Ø•˜×-Ò-¨fÑ5Ô5Ñ6Ô6À)ðñ ô Ðð (Ð'¨°À)ÐLÑLÔLÐà˜cÐ$6Ñ6Ò6Ð6Ð6Ð6õ !¨b¸rÐ
BÑ
BÔ
B€CØ‡G‚GˆG�WÑÔÐØ×!Ò! &Ñ)Ô)€IØ)Ð)¨&°)ÀyÐQÑQÔQÐå$ S°¸AÈÐQÑQÔQ€GØ‡K‚K�˜Ñ!Ô!Ð!Ø×)Ò)¨&Ñ1Ô1€MØ'Ð'¨°ÈÐSÑSÔSÐØ˜cÐ$6Ñ6Ò6Ð6Ð6Ð6Ð6Ð6r<   c                  ó0  —  G d„ d¦  «        } t          ddddd¬¦  «        \  }}t          ¦   «                              ||¦  «        } | ¦   «         }t          ||g|j        ¬¦  «        }|                     |¦  «        }t          |d	|j        z  ¦  «         d S )
Nc                   ó   — e Zd Zd„ ZdS )ú9test_calibration_zero_probability.<locals>.ZeroCalibratorc                 ó@   — t          j        |j        d         ¦  «        S )Nr   )rP   ÚzerosrŽ   ©Úselfr8   s     r:   ÚpredictzAtest_calibration_zero_probability.<locals>.ZeroCalibrator.predict  s   € Ý”8˜AœG AœJÑ'Ô'Ð'r<   N)Ú__name__Ú
__module__Ú__qualname__r±   © r<   r:   ÚZeroCalibratorr¬     s#   € € € € € ð	(ð 	(ð 	(ð 	(ð 	(r<   r¶   é2   r–   r”   r—   r˜   )rk   ÚcalibratorsÚclassesç      ð?)r   r   rU   r	   Úclasses_rV   r   Ú
n_classes_)r¶   r8   r9   r`   Ú
calibratorrb   r¤   s          r:   Ú!test_calibration_zero_probabilityr¾     sÌ   € ð
(ð (ð (ð (ð (ñ (ô (ð (õ
 Ø °!¸RÈTðñ ô �D€A€qõ Ñ
Ô
×
Ò
  1Ñ
%Ô
%€CØ�Ñ!Ô!€JÝ#Ø J <¸¼ðñ ô €Gð ×"Ò" 1Ñ%Ô%€Fõ �F˜C #¤.Ñ0Ñ1Ô1Ð1Ð1Ð1r<   c                  óÔ  — d} t          d| z  dd¬¦  «        \  }}t          j                             d¬¦  «                             |j        ¬¦  «        }||                     ¦   «         z  }|d| …         |d| …         |d| …         }}}|| d	| z  …         || d	| z  …         || d	| z  …         }	}}|d	| z  d…         |d	| z  d…         }}
t          d
¬¦  «        }t          |d¬¦  «        }t          j
        t          ¦  «        5  |                     ||¦  «         ddd¦  «         n# 1 swxY w Y   |                     |||¦  «         |                     |
¦  «        dd…df         }||
ft          j        |¦  «        t          j        |
¦  «        ffD ]Ó\  }}dD ]Ë}t          ||d¬¦  «        }|	dfD ]²}|                     |||¬¦  «         |                     |¦  «        }|                     |¦  «        }|dd…df         }t#          |t          j        ddg¦  «        t          j        |d¬¦  «                 ¦  «         t)          ||¦  «        t)          ||¦  «        k    sJ ‚Œ³ŒÌŒÔdS )z*Test calibration for prefitted classifiersr·   é   r1   r2   r3   rC   rE   NrB   TrG   Úprefitri   rK   )r?   r>   )r=   rM   rI   r   r›   )r   rP   rQ   rR   rS   rF   rT   r    r   rW   rX   r   rU   rV   r   rZ   r±   r+   ÚarrayÚargmaxr   )r4   r8   r9   rJ   r[   r\   r]   ÚX_calibÚy_calibÚsw_calibr^   r_   r`   Ú	unfit_clfra   Úthis_X_calibrd   r=   rb   ÚswÚy_probÚy_predre   s                          r:   Útest_calibration_prefitrÌ     s  € à€IÝ¨¨Y©À1ÐSUÐVÑVÔV�D€A€qÝ”I×)Ò)¨rÐ)Ñ2Ô2×:Ò:ÀÄÐ:ÑGÔG€Màˆ�Š‰Œ�L€Að "# : I :¤°°*°9°*´¸}ÈZÈiÈZÔ?X�hˆW€Gà	ˆ)�a˜)‘mÐ
#Ô$Ø	ˆ)�a˜)‘mÐ
#Ô$Ø�i ! i¡-Ð/Ô0ð ˆW€Gð
 �q˜9‘}��Ô'¨¨1¨y©=¨?¨?Ô);ˆF€Fõ  DÐ
)Ñ
)Ô
)€Cå& s¨xÐ8Ñ8Ô8€IÝ	Œ•~Ñ	&Ô	&ð (ð (Ø�Š�g˜wÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð ‡G‚GˆG�W˜hÑ'Ô'Ð'Ø×$Ò$ VÑ,Ô,¨Q¨Q¨Q°¨TÔ2€Lð 
�&ÐÝ	Ô	˜7Ñ	#Ô	#¥VÔ%6°vÑ%>Ô%>Ð?ð&ð ð Ñ!ˆ�kð .ð 	ð 	ˆFÝ,¨S¸ÀHÐMÑMÔMˆGà Ð&ð 	ð 	�Ø—’˜L¨'À�ÑDÔDÐDØ ×.Ò.¨{Ñ;Ô;�Ø Ÿš¨Ñ5Ô5�Ø#)¨!¨!¨!¨Q¨$¤<Ð Ý" 6­2¬8°Q¸°FÑ+;Ô+;½B¼IÀfÐSTÐ<UÑ<UÔ<UÔ+VÑWÔWÐWå'¨°Ñ=Ô=Õ@PØÐ,ñAô Aò ð ð ð ð ð	ð	ð	ð s   ÄD'Ä'D+Ä.D+c                 ó   — | \  }}t          dd¬¦  «        }t          ||dd¬¦  «        }|                     ||¦  «         |                     |¦  «        }t	          |||dd¬¦  «        }|d	k    rt          d
¬¦  «        }nt          ¦   «         }|                     ||¦  «         |                     ||¦  «         |                     |¦  «        }	|                     |	¦  «        }
t          |d d …df         |
¦  «         d S )Nrx   r”   ry   rÀ   FrO   r£   )rM   r=   r?   Úclip)Úout_of_boundsrK   )
r%   r   rU   rV   r   r   r   r£   r±   r   )r;   r=   r8   r9   r`   rb   Ú
cal_probasÚunbiased_predsr½   Úclf_dfÚmanual_probass              r:   Útest_calibration_ensemble_falserÔ   N  s  € ð �D€A€qÝ
˜¨aÐ
0Ñ
0Ô
0€Cå$ S°¸AÈÐNÑNÔN€GØ‡K‚K��1ÑÔÐØ×&Ò& qÑ)Ô)€Jõ ' s¨A¨q°QÐ?RÐSÑSÔS€NØ�ÒÐÝ'°fÐ=Ñ=Ô=ˆ
ˆ
å(Ñ*Ô*ˆ
Ø‡N‚N�> 1Ñ%Ô%Ð%à‡G‚GˆAˆq�M„M€MØ×"Ò" 1Ñ%Ô%€FØ×&Ò& vÑ.Ô.€MÝ�J˜q˜q˜q !˜tÔ$ mÑ4Ô4Ð4Ð4Ð4r<   c                  ó|  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          j        ddg¦  «        }t          |t          | |¦  «        d¦  «         ddt          j        |d         | z  |d         z   ¦  «        z   z  }t          ¦   «                              | |¦  «                             | ¦  «        }t          ||d	¦  «         t          j	        t          ¦  «        5  t          ¦   «                              t          j        | | f¦  «        |¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z0Test calibration values with Platt sigmoid model)rN   éüÿÿÿrº   )rK   éÿÿÿÿr×   g¿j˜=ïÉ¿gY90¯(àä?rÀ   rº   r   rK   r1   N)rP   rÂ   r*   r
   Úexpr   rU   r±   rW   rX   rY   Úvstack)ÚexFÚexYÚAB_lin_libsvmÚlin_probÚsk_probs        r:   Útest_sigmoid_calibrationrß   g  sc  € å
Œ(�<�<�<Ñ
 Ô
 €CÝ
Œ(�;�;�;Ñ
Ô
€Cå”HÐ2Ð4GÐHÑIÔI€MÝ˜mÕ-AÀ#ÀsÑ-KÔ-KÈQÑOÔOÐOØ�c�BœF =°Ô#3°cÑ#9¸MÈ!Ô<LÑ#LÑMÔMÑMÑN€HÝ!Ñ#Ô#×'Ò'¨¨SÑ1Ô1×9Ò9¸#Ñ>Ô>€GÝ˜h¨°Ñ3Ô3Ð3õ 
Œ•zÑ	"Ô	"ð >ð >ÝÑÔ×!Ò!¥"¤)¨S°#¨JÑ"7Ô"7¸Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s   Ã-7D1Ä1D5Ä8D5c                  ó†  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          | |d¬¦  «        \  }}t          |¦  «        t          |¦  «        k    sJ ‚t          |¦  «        dk    sJ ‚t	          |ddg¦  «         t	          |ddg¦  «         t          j        t          ¦  «        5  t          dgd	g¦  «         d
d
d
¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          ||dd¬¦  «        \  }}t          |¦  «        t          |¦  «        k    sJ ‚t          |¦  «        dk    sJ ‚t	          |ddg¦  «         t	          |ddg¦  «         t          j        t          ¦  «        5  t          ||d¬¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z Check calibration_curve function)r   r   r   rK   rK   rK   )ç        r{   çš™™™™™É?çš™™™™™é?çÍÌÌÌÌÌì?rº   rB   ©Ún_binsr   rK   r{   rä   gš™™™™™¹¿N)r   r   r   r   rK   rK   )rá   r{   râ   ç      à?rä   rº   Úquantile©ræ   ÚstrategygUUUUUUå?rã   Ú
percentile)rê   )rP   rÂ   r   rr   r)   rW   rX   rY   )r�   rË   Ú	prob_trueÚ	prob_predÚy_true2Úy_pred2Úprob_true_quantileÚprob_pred_quantiles           r:   Útest_calibration_curverò   x  sx  € åŒXÐ(Ð(Ð(Ñ)Ô)€FÝŒXÐ4Ð4Ð4Ñ5Ô5€FÝ,¨V°VÀAÐFÑFÔFÑ€IˆyÝˆy‰>Œ>�S ™^œ^Ò+Ð+Ð+Ð+Ýˆy‰>Œ>˜QÒÐÐÐÝ˜	 A q 6Ñ*Ô*Ð*Ý˜	 C¨ :Ñ.Ô.Ð.õ 
Œ•zÑ	"Ô	"ð 'ð 'Ý˜1˜# ˜vÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'õ ŒhÐ)Ð)Ð)Ñ*Ô*€GÝŒhÐ5Ð5Ð5Ñ6Ô6€GÝ->Ø� ¨Zð.ñ .ô .Ñ*ÐÐ*õ Ð!Ñ"Ô"¥cÐ*<Ñ&=Ô&=Ò=Ð=Ð=Ð=ÝÐ!Ñ"Ô" aÒ'Ð'Ð'Ð'ÝÐ*¨Q°¨JÑ7Ô7Ð7ÝÐ*¨S°#¨JÑ7Ô7Ð7õ 
Œ•zÑ	"Ô	"ð Cð CÝ˜' 7°\ÐBÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs$   Â6CÃCÃCÆF6Æ6F:Æ=F:c                 ó,  — t          ddddd¬¦  «        \  }}t          j        |d<   t          dt	          ¦   «         fdt          d	¬
¦  «        fg¦  «        }t          |dd| ¬¦  «        }|                     ||¦  «         |                     |¦  «         dS )z$Test that calibration can accept nanr–   rB   r   r2   )r4   r5   Ún_informativeÚn_redundantr6   ©r   r   ÚimputerÚrfrK   )rŸ   r?   )rM   r=   r@   N)	r   rP   Únanr!   r   r   r   rU   r±   )r@   r8   r9   r`   Úclf_cs        r:   Útest_calibration_nan_imputerrû   —  s¨   € õ Ø °!ÀÐQSðñ ô �D€A€qõ Œf€A€d�GÝ
Ø
•]‘_”_Ð	%¨Õ.DÐRSÐ.TÑ.TÔ.TÐ'UÐVñô €Cõ # 3¨1°ZÈ(ÐSÑSÔS€EØ	‡I‚Iˆa��O„O€OØ	‡M‚M�!ÑÔÐÐÐr<   c                 ón  — d}t          dd|¬¦  «        \  }}t          ddd¬¦  «        }t          |d	t          ¦   «         | ¬
¦  «        }|                     ||¦  «         |                     |¦  «        }t          |                     d¬¦  «        t          j	        |j
        d         ¦  «        ¦  «         d S )NrB   r–   rN   )r4   r5   r‘   rx   rº   r”   ©rz   ÚCr6   r>   rO   rK   r›   r   )r   r%   r   r   rU   rV   r*   r�   rP   r¡   rŽ   )r@   Únum_classesr8   r9   r`   Úclf_probÚprobss          r:   Útest_calibration_prob_sumr  ¦  s³   € ð €KÝ¨¸À[ÐQÑQÔQ�D€A€qÝ
˜ 3°QÐ
7Ñ
7Ô
7€CÝ%Ø�I¥+¡-¤-¸(ðñ ô €Hð ‡L‚L��AÑÔÐà×"Ò" 1Ñ%Ô%€EÝ˜eŸiši¨Q˜iÑ/Ô/µ´¸¼ÀQ¼Ñ1HÔ1HÑIÔIÐIÐIÐIr<   c           	      óº  — t           j                             dd¦  «        }t          j        d¦  «        }t	          ddd¬¦  «        }t          |dt          ¦   «         | ¬¦  «        }|                     ||¦  «         t          |j	        ¦  «        D ]Ê\  }}| 
                    |¦  «        }| r‰t          |d d …|f         t          j        t          |¦  «        ¦  «        ¦  «         t          j        |d d …d |…f         d	k    ¦  «        sJ ‚t          j        |d d …|d
z   d …f         d	k    ¦  «        sJ ‚Œ¥t          j        |d
|j        d	         z  ¦  «        sJ ‚ŒËd S )Nr–   rN   rx   rº   r”   rý   r>   rO   r   rK   )rP   rQ   ÚrandnÚaranger%   r   r   rU   Ú	enumeraterj   rV   r+   r®   rr   ÚallÚallcloserŽ   )r@   r8   r9   r`   rb   ÚiÚcalibrated_classifierÚprobas           r:   Útest_calibration_less_classesr  ¶  sh  € õ 	Œ	�Š˜˜AÑÔ€AÝ
Œ	�"‰Œ€AÝ
˜ 3°QÐ
7Ñ
7Ô
7€CÝ$Ø�I¥+¡-¤-¸(ðñ ô €Gð ‡K‚K��1ÑÔÐå$-¨gÔ.MÑ$NÔ$Nð 
:ð 
:Ñ ˆÐ Ø%×3Ò3°AÑ6Ô6ˆØð 	:å˜u Q Q Q¨ Tœ{­B¬HµS¸±V´VÑ,<Ô,<Ñ=Ô=Ð=å”6˜%    2 A 2 œ,¨Ò*Ñ+Ô+Ð+Ð+Ð+Ý”6˜%    1 q¡5 7 7 
Ô+¨aÒ/Ñ0Ô0Ð0Ð0Ð0Ð0õ ”;˜u a¨%¬+°a¬.Ñ&8Ñ9Ô9Ð9Ð9Ð9Ð9ð
:ð 
:r<   r8   r2   é   rN   r1   c                 óŽ   — g d¢} G d„ dt           ¦  «        }t           |¦   «         ¦  «        }|                     | |¦  «         dS )z;Test that calibration accepts n-dimensional arrays as input)rK   r   r   rK   rK   r   rK   rK   r   r   rK   r   r   rK   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ú>test_calibration_accepts_ndarray.<locals>.MockTensorClassifierz*A toy estimator that accepts tensor inputsc                 ó8   — t          j        |¦  «        | _        | S )N)rP   r    r»   )r°   r8   r9   s      r:   rU   zBtest_calibration_accepts_ndarray.<locals>.MockTensorClassifier.fitß  s   € ÝœI a™LœLˆDŒMØˆKr<   c                 ól   — |                      |j        d         d¦  «                             d¬¦  «        S )Nr   r×   rK   r›   )ÚreshaperŽ   r�   r¯   s     r:   r£   zPtest_calibration_accepts_ndarray.<locals>.MockTensorClassifier.decision_functionã  s-   € à—9’9˜QœW QœZ¨Ñ,Ô,×0Ò0°aÐ0Ñ8Ô8Ð8r<   N)r²   r³   r´   Ú__doc__rU   r£   rµ   r<   r:   ÚMockTensorClassifierr  Ü  s8   € € € € € Ø8Ð8ð	ð 	ð 	ð	9ð 	9ð 	9ð 	9ð 	9r<   r  N)r   r   rU   )r8   r9   r  r~   s       r:   Ú test_calibration_accepts_ndarrayr  Ñ  sn   € ð 	6Ð5Ð5€Að	9ð 	9ð 	9ð 	9ð 	9�}ñ 	9ô 	9ð 	9õ ,Ð,@Ð,@Ñ,BÔ,BÑCÔC€Nà×Ò�q˜!ÑÔÐÐÐr<   c                  ó.   — dddœdddœdddœg} g d¢}| |fS )NÚNYÚadult)ÚstateÚageÚTXÚVTÚchild)rK   r   rK   rµ   )Ú	dict_dataÚtext_labelss     r:   r  r  ì  sB   € ð ˜wÐ'Ð'Ø˜wÐ'Ð'Ø˜wÐ'Ð'ð€Ið
 �)�)€KØ�kÐ!Ð!r<   c                 ó’   — | \  }}t          dt          ¦   «         fdt          ¦   «         fg¦  «        }|                     ||¦  «        S )NÚ
vectorizerr`   )r!   r   r   rU   )r  r8   r9   Úpipeline_prefits       r:   Údict_data_pipeliner$  ÷  sQ   € à�D€A€qÝØ
�Ñ(Ô(Ð	)¨EÕ3IÑ3KÔ3KÐ+LÐMñô €Oð ×Ò˜q !Ñ$Ô$Ð$r<   c                 ó2  — | \  }}|}t          |d¬¦  «        }|                     ||¦  «         t          |j        |j        ¦  «         t	          |d¦  «        rJ ‚t	          |d¦  «        rJ ‚|                     |¦  «         |                     |¦  «         dS )aR  Test that calibration works in prefit pipeline with transformer

    `X` is not array-like, sparse matrix or dataframe at the start.
    See https://github.com/scikit-learn/scikit-learn/issues/8710

    Also test it can predict without running into validation errors.
    See https://github.com/scikit-learn/scikit-learn/issues/19637
    rÁ   ri   Ún_features_in_N)r   rU   r+   r»   Úhasattrr±   rV   )r  r$  r8   r9   r`   rm   s         r:   Útest_calibration_dict_pipeliner(     s­   € ð �D€A€qØ
€CÝ& s¨xÐ8Ñ8Ô8€IØ‡M‚M�!�QÑÔÐå�yÔ)¨3¬<Ñ8Ô8Ð8õ �sÐ,Ñ-Ô-Ð-Ð-Ð-Ý�yÐ"2Ñ3Ô3Ð3Ð3Ð3ð ×Ò�aÑÔÐØ×Ò˜AÑÔÐÐÐr<   zclf, cvrx   rK   ©rz   rþ   rÁ   c                 óÆ  — t          dddd¬¦  «        \  }}|dk    r|                      ||¦  «        } t          | |¬¦  «        }|                     ||¦  «         |dk    r.t          |j        | j        ¦  «         |j        | j        k    sJ ‚d S t          ¦   «                              |¦  «        j        }t          |j        |¦  «         |j        |j        d         k    sJ ‚d S )	Nr–   rN   rB   r”   ©r4   r5   r‘   r6   rÁ   ri   rK   )r   rU   r   r+   r»   r&  r#   rŽ   )r`   rM   r8   r9   rm   r¹   s         r:   Útest_calibration_attributesr,    sç   € õ ¨¸ÀQÐUVÐWÑWÔW�D€A€qØ	ˆX‚~€~Ø�gŠg�a˜‰mŒmˆÝ& s¨rÐ2Ñ2Ô2€IØ‡M‚M�!�QÑÔÐà	ˆX‚~€~Ý˜9Ô-¨s¬|Ñ<Ô<Ð<ØÔ'¨3Ô+=Ò=Ð=Ð=Ð=Ð=Ð=å‘.”.×$Ò$ QÑ'Ô'Ô0ˆÝ˜9Ô-¨wÑ7Ô7Ð7ØÔ'¨1¬7°1¬:Ò5Ð5Ð5Ð5Ð5Ð5r<   c                  óN  — t          dddd¬¦  «        \  } }t          dd¬¦  «                             | |¦  «        }t          |d	¬
¦  «        }d}t	          j        t          |¬¦  «        5  |                     | d d …d d…f         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr–   rN   rB   r”   r+  rx   rK   r)  rÁ   ri   zAX has 3 features, but LinearSVC is expecting 5 features as input.©ÚmatchrÀ   )r   r%   rU   r   rW   rX   rY   )r8   r9   r`   rm   Úmsgs        r:   Ú2test_calibration_inconsistent_prefit_n_features_inr1  2  sõ   € õ ¨¸ÀQÐUVÐWÑWÔW�D€A€qÝ
˜ 1Ð
%Ñ
%Ô
%×
)Ò
)¨!¨QÑ
/Ô
/€CÝ& s¨xÐ8Ñ8Ô8€Ià
M€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð #ð #Ø�Š�a˜˜˜˜2˜A˜2˜”h Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   Á*#BÂBÂ!Bc                  óü   — t          dddd¬¦  «        \  } }t          d„ t          d¦  «        D ¦   «         d¬	¦  «        }|                     | |¦  «         t	          |d
¬¦  «        }|                     | |¦  «         d S )Nr–   rN   rB   r”   r+  c                 óN   — g | ]"}d t          |¦  «        z   t          ¦   «         f‘Œ#S )Úlr)Ústrr   )Ú.0r	  s     r:   ú
<listcomp>z5test_calibration_votingclassifier.<locals>.<listcomp>D  s.   € ÐLÐLÐL¸a�T�C ™FœF‘]Õ$6Ñ$8Ô$8Ð9ÐLÐLÐLr<   rÀ   Úsoft)Ú
estimatorsÚvotingrÁ   )rk   rM   )r   r   ÚrangerU   r   )r8   r9   Úvoterm   s       r:   Ú!test_calibration_votingclassifierr=  >  sŒ   € õ ¨¸ÀQÐUVÐWÑWÔW�D€A€qÝØLÐLÅ5ÈÁ8Ä8ÐLÑLÔLØðñ ô €Dð 	‡H‚HˆQ��N„N€Nå&°¸(ÐCÑCÔC€Ià‡M‚M�!�QÑÔÐÐÐr<   c                  ó"   — t          d¬¦  «        S )NT©Ú
return_X_y)r   rµ   r<   r:   Ú	iris_datarA  N  s   € å Ð%Ñ%Ô%Ð%r<   c                 ó<   — | \  }}||dk              ||dk              fS )NrB   rµ   )rA  r8   r9   s      r:   Úiris_data_binaryrC  S  s&   € à�D€A€qØˆQ�ŠUŒ8�Q�q˜1’u”XÐÐr<   ræ   r–   rê   rS   rè   c                 óî  — |\  }}t          ¦   «                              ||¦  «        }t          j        |||||d¬¦  «        }|                     |¦  «        d d …df         }t          ||||¬¦  «        \  }	}
t          |j        |	¦  «         t          |j        |
¦  «         t          |j	        |¦  «         |j
        dk    sJ ‚dd l}t          |j        |j        j        ¦  «        sJ ‚|j                             ¦   «         dk    sJ ‚t          |j        |j        j        ¦  «        sJ ‚t          |j        |j        j        ¦  «        sJ ‚|j                             ¦   «         dk    sJ ‚|j                             ¦   «         dk    sJ ‚dd	g}|j                             ¦   «                              ¦   «         }t7          |¦  «        t7          |¦  «        k    sJ ‚|D ]}|                     ¦   «         |v sJ ‚Œd S )
Nrã   )ræ   rê   ÚalpharK   ré   r   r   z.Mean predicted probability (Positive class: 1)z)Fraction of positives (Positive class: 1)úPerfectly calibrated)r   rU   r   Úfrom_estimatorrV   r   r   rì   rí   rÊ   Úestimator_nameÚ
matplotlibrl   Úline_ÚlinesÚLine2DÚ	get_alphaÚax_ÚaxesÚAxesÚfigure_ÚfigureÚFigureÚ
get_xlabelÚ
get_ylabelÚ
get_legendÚ	get_textsrr   Úget_text)ÚpyplotrC  ræ   rê   r8   r9   r4  ÚvizrÊ   rì   rí   ÚmplÚexpected_legend_labelsÚlegend_labelsÚlabelss                  r:   Ú test_calibration_display_computer_  Y  s%  € ð �D€A€qå	Ñ	Ô	×	!Ò	! ! QÑ	'Ô	'€Bå
Ô
+Ø
ˆAˆq˜¨(¸#ðñ ô €Cð ×Ò˜aÑ Ô     A Ô&€FÝ,Ø	ˆ6˜&¨8ðñ ô Ñ€Iˆyõ �C”M 9Ñ-Ô-Ð-Ý�C”M 9Ñ-Ô-Ð-Ý�C”J Ñ'Ô'Ð'àÔÐ!5Ò5Ð5Ð5Ð5ð ÐÐÐå�c”i ¤Ô!1Ñ2Ô2Ð2Ð2Ð2ØŒ9×ÒÑ Ô  CÒ'Ð'Ð'Ð'Ý�c”g˜sœxœ}Ñ-Ô-Ð-Ð-Ð-Ý�c”k 3¤:Ô#4Ñ5Ô5Ð5Ð5Ð5àŒ7×ÒÑÔÐ#SÒSÐSÐSÐSØŒ7×ÒÑÔÐ#NÒNÐNÐNÐNà2Ð4JÐKÐØ”G×&Ò&Ñ(Ô(×2Ò2Ñ4Ô4€MÝˆ}ÑÔ¥Ð%;Ñ!<Ô!<Ò<Ð<Ð<Ð<Øð ;ð ;ˆØ�ŠÑ Ô Ð$:Ð:Ð:Ð:Ð:Ð:ð;ð ;r<   c                 óž  — |\  }}t          t          ¦   «         t          ¦   «         ¦  «        }|                     ||¦  «         t	          j        |||¦  «        }|j        dg}|j                             ¦   «          	                    ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚|D ]}|                     ¦   «         |v sJ ‚Œd S )NrF  )r"   r$   r   rU   r   rG  rH  rN  rV  rW  rr   rX  )	rY  rC  r8   r9   r`   rZ  r\  r]  r^  s	            r:   Ú$test_plot_calibration_curve_pipelinera  „  sÔ   € à�D€A€qÝ
�Ñ(Ô(Õ*<Ñ*>Ô*>Ñ
?Ô
?€CØ‡G‚GˆAˆq�M„M€MÝ
Ô
+¨C°°AÑ
6Ô
6€Cà!Ô0Ð2HÐIÐØ”G×&Ò&Ñ(Ô(×2Ò2Ñ4Ô4€MÝˆ}ÑÔ¥Ð%;Ñ!<Ô!<Ò<Ð<Ð<Ð<Øð ;ð ;ˆØ�ŠÑ Ô Ð$:Ð:Ð:Ð:Ð:Ð:ð;ð ;r<   zname, expected_label)NÚ_line1)Úmy_estrc  c                 óà  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g ¦  «        }t          ||||¬¦  «        }|                     ¦   «          |€g n|g}|                     d¦  «         |j                             ¦   «                              ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚|D ]}	|	 	                    ¦   «         |v sJ ‚Œd S )N©r   rK   rK   r   ©râ   rã   rã   çš™™™™™Ù?©rH  rF  )
rP   rÂ   r   ÚplotÚappendrN  rV  rW  rr   rX  )
rY  ÚnameÚexpected_labelrì   rí   rÊ   rZ  r\  r]  r^  s
             r:   Ú'test_calibration_display_default_labelsrm  ’  sû   € õ ”˜˜˜Ñ&Ô&€IÝ”Ð-Ð-Ð-Ñ.Ô.€IÝŒX�b‰\Œ\€Få
˜Y¨	°6È$Ð
OÑ
OÔ
O€CØ‡H‚H�J„J€Jà#' <˜R˜R°d°VÐØ×!Ò!Ð"8Ñ9Ô9Ð9Ø”G×&Ò&Ñ(Ô(×2Ò2Ñ4Ô4€MÝˆ}ÑÔ¥Ð%;Ñ!<Ô!<Ò<Ð<Ð<Ð<Øð ;ð ;ˆØ�ŠÑ Ô Ð$:Ð:Ð:Ð:Ð:Ð:ð;ð ;r<   c                 óÖ  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g ¦  «        }d}t          ||||¬¦  «        }|j        |k    sJ ‚d}|                     |¬¦  «         |dg}|j                             ¦   «                              ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚|D ]}| 	                    ¦   «         |v sJ ‚Œd S )Nre  rf  zname onerh  zname two©rk  rF  )
rP   rÂ   r   rH  ri  rN  rV  rW  rr   rX  )	rY  rì   rí   rÊ   rk  rZ  r\  r]  r^  s	            r:   Ú)test_calibration_display_label_class_plotrp  ¥  s  € õ ”˜˜˜Ñ&Ô&€IÝ”Ð-Ð-Ð-Ñ.Ô.€IÝŒX�b‰\Œ\€Fà€DÝ
˜Y¨	°6È$Ð
OÑ
OÔ
O€CØÔ Ò%Ð%Ð%Ð%Ø€DØ‡H‚H�$€HÑÔÐà"Ð$:Ð;ÐØ”G×&Ò&Ñ(Ô(×2Ò2Ñ4Ô4€MÝˆ}ÑÔ¥Ð%;Ñ!<Ô!<Ò<Ð<Ð<Ð<Øð ;ð ;ˆØ�ŠÑ Ô Ð$:Ð:Ð:Ð:Ð:Ð:ð;ð ;r<   Úconstructor_namerG  Úfrom_predictionsc                 ó  — |\  }}d}t          ¦   «                              ||¦  «        }|                     |¦  «        d d …df         }t          t          | ¦  «        }| dk    r|||fn||f}	 ||	d|iŽ}
|
j        |k    sJ ‚|                     d¦  «         |
                     ¦   «          |dg}|
j         	                    ¦   «          
                    ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚|D ]}|                     ¦   «         |v sJ ‚Œ|                     d¦  «         d}|
                     |¬¦  «         t          |¦  «        t          |¦  «        k    sJ ‚|D ]}|                     ¦   «         |v sJ ‚Œd S )	Nzmy hand-crafted namerK   rG  rk  r  rF  Úanother_namero  )r   rU   rV   Úgetattrr   rH  Úcloseri  rN  rV  rW  rr   rX  )rq  rY  rC  r8   r9   Úclf_namer`   rÊ   ÚconstructorÚparamsrZ  r\  r]  r^  s                 r:   Ú,test_calibration_display_name_multiple_callsrz  ¹  sÃ  € ð �D€A€qØ%€HÝ
Ñ
Ô
×
"Ò
" 1 aÑ
(Ô
(€CØ×Ò˜qÑ!Ô! ! ! ! Q $Ô'€FåÕ,Ð.>Ñ?Ô?€KØ,Ð0@Ò@Ð@ˆc�1�aˆ[ˆ[ÀqÈ&Àk€Fà
ˆ+�vÐ
- HÐ
-Ð
-€CØÔ Ò)Ð)Ð)Ð)Ø
‡L‚L�ÑÔÐØ‡H‚H�J„J€Jà&Ð(>Ð?ÐØ”G×&Ò&Ñ(Ô(×2Ò2Ñ4Ô4€MÝˆ}ÑÔ¥Ð%;Ñ!<Ô!<Ò<Ð<Ð<Ð<Øð ;ð ;ˆØ�ŠÑ Ô Ð$:Ð:Ð:Ð:Ð:Ð:à
‡L‚L�ÑÔÐØ€HØ‡H‚H�(€HÑÔÐÝˆ}ÑÔ¥Ð%;Ñ!<Ô!<Ò<Ð<Ð<Ð<Øð ;ð ;ˆØ�ŠÑ Ô Ð$:Ð:Ð:Ð:Ð:Ð:ð;ð ;r<   c                 ór  — |\  }}t          ¦   «                              ||¦  «        }t          ¦   «                              ||¦  «        }t          j        |||¦  «        }t          j        ||||j        ¬¦  «        }|j                             ¦   «         d         }|                     d¦  «        dk    sJ ‚d S )N)ÚaxrK   rF  )r   rU   r&   r   rG  rN  Úget_legend_handles_labelsÚcount)	rY  rC  r8   r9   r4  ÚdtrZ  Úviz2r^  s	            r:   Ú!test_calibration_display_ref_liner�  Ü  s¬   € à�D€A€qÝ	Ñ	Ô	×	!Ò	! ! QÑ	'Ô	'€BÝ	Ñ	!Ô	!×	%Ò	% a¨Ñ	+Ô	+€Bå
Ô
+¨B°°1Ñ
5Ô
5€CÝÔ,¨R°°A¸#¼'ÐBÑBÔB€DàŒX×/Ò/Ñ1Ô1°!Ô4€FØ�<Š<Ð.Ñ/Ô/°1Ò4Ð4Ð4Ð4Ð4Ð4r<   Údtype_y_strc                 óL  — t           j                             d¦  «        }t          j        dgdz  dgdz  z   | ¬¦  «        }|                     dd|j        ¬¦  «        }d	}t          j        t          |¬
¦  «        5  t          ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zKCheck error message when a `pos_label` is not specified with `str` targets.r2   ÚspamrÀ   ÚeggsrB   ©Údtyper   rE   z–y_true takes value in {'eggs', 'spam'} and pos_label is not specified: either make y_true take value in {0, 1} or {-1, 1} or pass pos_label explicitlyr.  N)
rP   rQ   rR   rÂ   ÚrandintrF   rW   rX   rY   r   )r‚  ÚrngÚy1Úy2Úerr_msgs        r:   Ú*test_calibration_curve_pos_label_error_strr�  é  sì   € õ Œ)×
Ò
 Ñ
#Ô
#€CÝ	Œ�6�(˜Q‘, & ¨A¡Ñ-°[Ð	AÑ	AÔ	A€BØ	�Š�Q˜ ¤ˆÑ	(Ô	(€Bð	$ð õ
 
Œ•z¨Ð	1Ñ	1Ô	1ð "ð "Ý˜"˜bÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s   Á;BÂBÂ Bc                 óè  — t          j        g d¢¦  «        }t          j        ddg| ¬¦  «        }||         }t          j        g d¢¦  «        }t          ||d¬¦  «        \  }}t          |g d¢¦  «         t          ||dd¬	¦  «        \  }}t          |g d¢¦  «         t          |d
|z
  dd¬	¦  «        \  }}t          |g d¢¦  «         t          |d
|z
  dd¬	¦  «        \  }}t          |g d¢¦  «         dS )z8Check the behaviour when passing explicitly `pos_label`.)	r   r   r   rK   rK   rK   rK   rK   rK   r„  Úeggr†  )	r{   râ   g333333Ó?rg  r�   gffffffæ?rã   rä   rº   é   rå   )r   rç   rK   rK   )ræ   Ú	pos_labelrK   r   )r   r   rç   rK   N)rP   rÂ   r   r   )r‚  r�   r¹   Ú
y_true_strrË   rì   Ú_s          r:   Ú test_calibration_curve_pos_labelr”  ù  s  € õ ŒXÐ1Ð1Ð1Ñ2Ô2€FÝŒh˜ �¨kÐ:Ñ:Ô:€GØ˜”€JÝŒXÐDÐDÐDÑEÔE€Fõ % V¨V¸AÐ>Ñ>Ô>�L€IˆqÝ�I˜~˜~˜~Ñ.Ô.Ð.å$ Z°ÀÈUÐSÑSÔS�L€IˆqÝ�I˜~˜~˜~Ñ.Ô.Ð.å$ V¨Q°©ZÀÈQÐOÑOÔO�L€IˆqÝ�I˜~˜~˜~Ñ.Ô.Ð.Ý$ Z°°V±ÀAÐQWÐXÑXÔX�L€IˆqÝ�I˜~˜~˜~Ñ.Ô.Ð.Ð.Ð.r<   zpos_label, expected_pos_label))NrK   rö   )rK   rK   c                 óæ  — |\  }}t          ¦   «                              ||¦  «        }t          j        ||||¬¦  «        }|                     |¦  «        dd…|f         }t          |||¬¦  «        \  }	}
t          |j        |	¦  «         t          |j        |
¦  «         t          |j	        |¦  «         |j
                             ¦   «         d|› d�k    sJ ‚|j
                             ¦   «         d|› d�k    sJ ‚|j        j        dg}|j
                             ¦   «                              ¦   «         }t#          |¦  «        t#          |¦  «        k    sJ ‚|D ]}|                     ¦   «         |v sJ ‚ŒdS )z?Check the behaviour of `pos_label` in the `CalibrationDisplay`.)r‘  Nz,Mean predicted probability (Positive class: ú)z'Fraction of positives (Positive class: rF  )r   rU   r   rG  rV   r   r   rì   rí   rÊ   rN  rT  rU  Ú	__class__r²   rV  rW  rr   rX  )rY  rC  r‘  Úexpected_pos_labelr8   r9   r4  rZ  rÊ   rì   rí   r\  r]  r^  s                 r:   Ú"test_calibration_display_pos_labelr™    s²  € ð
 �D€A€qå	Ñ	Ô	×	!Ò	! ! QÑ	'Ô	'€BÝ
Ô
+¨B°°1À	Ð
JÑ
JÔ
J€Cà×Ò˜aÑ Ô    Ð$6Ð!6Ô7€FÝ,¨Q°À)ÐLÑLÔLÑ€Iˆyå�C”M 9Ñ-Ô-Ð-Ý�C”M 9Ñ-Ô-Ð-Ý�C”J Ñ'Ô'Ð'ð 	Œ×ÒÑÔØOÐ:LÐOÐOÐOò	Pð 	Pð 	Pð 	Pð 	Œ×ÒÑÔØJÐ5GÐJÐJÐJò	Kð 	Kð 	Kð 	Kð !œlÔ3Ð5KÐLÐØ”G×&Ò&Ñ(Ô(×2Ò2Ñ4Ô4€MÝˆ}ÑÔ¥Ð%;Ñ!<Ô!<Ò<Ð<Ð<Ð<Øð ;ð ;ˆØ�ŠÑ Ô Ð$:Ð:Ð:Ð:Ð:Ð:ð;ð ;r<   c                 óŠ  — t          d¬¦  «        \  }}t          ¦   «                              |¦  «        }|dd…         |dd…         }}t          j        |¦  «        dz  }t          j        |j        d         dz  |j        d         f|j        ¬¦  «        }||ddd…dd…f<   ||ddd…dd…f<   t          j        |j        d         dz  |j        ¬¦  «        }||ddd…<   ||ddd…<   t          ¦   «         }t          || |d¬	¦  «        }t          |¦  «        }	|	                     |||¬
¦  «         |                     ||¦  «         t          |	j        |j        ¦  «        D ])\  }
}t          |
j        j        |j        j        ¦  «         Œ*|	                     |¦  «        }|                     |¦  «        }t          ||¦  «         dS )zrCheck that passing repeating twice the dataset `X` is equivalent to
    passing a `sample_weight` with a factor 2.Tr?  Nr•   rB   r   rK   r†  ©r=   r@   rM   rI   )r   r$   Úfit_transformrP   Ú	ones_liker®   rŽ   r‡  r   r   r   rU   Úziprj   r   rk   Úcoef_rV   )r=   r@   r8   r9   rJ   ÚX_twiceÚy_twicerk   Úcalibrated_clf_without_weightsÚcalibrated_clf_with_weightsÚest_with_weightsÚest_without_weightsÚy_pred_with_weightsÚy_pred_without_weightss                 r:   Ú?test_calibrated_classifier_cv_double_sample_weights_equivalencer¨  /  sÿ  € õ
  Ð%Ñ%Ô%�D€A€qåÑÔ×&Ò& qÑ)Ô)€AàˆTˆcˆTŒ7�A�d�s�d”G€q€AÝ”L ‘O”O aÑ'€Mõ Œh˜œ œ
 Q™¨¬°¬
Ð3¸1¼7ÐCÑCÔC€GØ€GˆCˆCˆaˆC���ˆF�OØ€GˆAˆDˆqˆD�!�!�!ˆGÑÝŒh�q”w˜q”z A‘~¨Q¬WÐ5Ñ5Ô5€GØ€GˆCˆCˆaˆC�LØ€GˆAˆDˆqˆD�Må"Ñ$Ô$€IÝ%;ØØØØð	&ñ &ô &Ð"õ #(Ð(FÑ"GÔ"GÐà×#Ò# A q¸Ð#ÑFÔFÐFØ"×&Ò& w°Ñ8Ô8Ð8õ 25Ø#Ô;Ø&Ô>ñ2ô 2ð 
ð 
Ñ-ÐÐ-õ 	ØÔ&Ô,ØÔ)Ô/ñ	
ô 	
ð 	
ð 	
ð 6×CÒCÀAÑFÔFÐØ;×IÒIÈ!ÑLÔLÐåÐ'Ð)?Ñ@Ô@Ð@Ð@Ð@r<   Úfit_params_typeÚlistrÂ   c                 ó²   — |\  }}t          || ¦  «        t          || ¦  «        dœ}t          ddg¬¦  «        }t          |¦  «        } |j        ||fi |¤Ž dS )z£Tests that fit_params are passed to the underlying base estimator.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/12384
    )ÚaÚbr¬  r­  )Úexpected_fit_paramsN)r(   r'   r   rU   )r©  r;   r8   r9   Ú
fit_paramsr`   Úpc_clfs          r:   Ú test_calibration_with_fit_paramsr±  a  sx   € ð �D€A€qå  ?Ñ3Ô3Ý  ?Ñ3Ô3ðð €Jõ
 °#°s°Ð
<Ñ
<Ô
<€CÝ# CÑ(Ô(€Fà€F„Jˆq�!Ð"Ð"�zÐ"Ð"Ð"Ð"Ð"r<   rJ   rº   c                 ó~   — |\  }}t          d¬¦  «        }t          |¦  «        }|                     ||| ¬¦  «         dS )zMTests that sample_weight is passed to the underlying base
    estimator.
    T)Úexpected_sample_weightrI   N)r'   r   rU   )rJ   r;   r8   r9   r`   r°  s         r:   Ú2test_calibration_with_sample_weight_base_estimatorr´  t  sH   € ð �D€A€qÝ
°DÐ
9Ñ
9Ô
9€CÝ# CÑ(Ô(€Fà
‡J‚Jˆq�! =€JÑ1Ô1Ð1Ð1Ð1r<   c                 ó$  — | \  }}t          j        |¦  «        } G d„ dt          ¦  «        } |¦   «         }t          |¦  «        }t	          j        t          ¦  «        5  |                     |||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zÏCheck that even if the estimator doesn't support
    sample_weight, fitting with sample_weight still works.

    There should be a warning, since the sample_weight is not passed
    on to the estimator.
    c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )úUtest_calibration_without_sample_weight_base_estimator.<locals>.ClfWithoutSampleWeightc                 óF   •— d|vsJ ‚ t          ¦   «         j        ||fi |¤ŽS )NrJ   ©ÚsuperrU   )r°   r8   r9   r¯  r—  s       €r:   rU   zYtest_calibration_without_sample_weight_base_estimator.<locals>.ClfWithoutSampleWeight.fit‘  s4   ø€ Ø"¨*Ð4Ð4Ð4Ð4Ø•5‘7”7”;˜q !Ð2Ð2 zÐ2Ð2Ð2r<   ©r²   r³   r´   rU   Ú__classcell__©r—  s   @r:   ÚClfWithoutSampleWeightr·  �  s8   ø€ € € € € ð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3r<   r¾  rI   N)rP   r�  r'   r   rW   ÚwarnsÚUserWarningrU   )r;   r8   r9   rJ   r¾  r`   r°  s          r:   Ú5test_calibration_without_sample_weight_base_estimatorrÁ  †  sî   € ð �D€A€qÝ”L ‘O”O€Mð3ð 3ð 3ð 3ð 3Õ!3ñ 3ô 3ð 3ð
 !Ð
 Ñ
"Ô
"€CÝ# CÑ(Ô(€Få	Œ•kÑ	"Ô	"ð 6ð 6Ø�
Š
�1�a }ˆ
Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6s   ÁBÂB	ÂB	c                 ó  — t          d¬¦  «        \  }}t          ¦   «                              |¦  «        }t          j        |dd…         |dd…         f¦  «        }t          j        |dd…         |dd…         f¦  «        }t          j        |¦  «        }d|ddd…<   t          ¦   «         }t          || |d¬	¦  «        }t          |¦  «        }| 
                    |||¬
¦  «         | 
                    |ddd…         |ddd…         ¦  «         t          |j        |j        ¦  «        D ])\  }}	t          |j        j        |	j        j        ¦  «         Œ*|                     |¦  «        }
|                     |¦  «        }t          |
|¦  «         dS )z|Check that passing removing some sample from the dataset `X` is
    equivalent to passing a `sample_weight` with a factor 0.Tr?  Né(   r·   éZ   rK   rB   r›  rI   )r   r$   rœ  rP   rÙ   ÚhstackÚ
zeros_liker   r   r   rU   rž  rj   r   rk   rŸ  rV   )r=   r@   r8   r9   rJ   rk   r¢  r£  r¤  r¥  r¦  r§  s               r:   Ú>test_calibrated_classifier_cv_zeros_sample_weights_equivalencerÇ  œ  s·  € õ
  Ð%Ñ%Ô%�D€A€qåÑÔ×&Ò& qÑ)Ô)€Aõ 	Œ	�1�S�b�S”6˜1˜R ˜Uœ8Ð$Ñ%Ô%€AÝ
Œ	�1�S�b�S”6˜1˜R ˜Uœ8Ð$Ñ%Ô%€AÝ”M !Ñ$Ô$€MØ€M�#�#�A�#Ñå"Ñ$Ô$€IÝ%;ØØØØð	&ñ &ô &Ð"õ #(Ð(FÑ"GÔ"GÐà×#Ò# A q¸Ð#ÑFÔFÐFØ"×&Ò& q¨¨¨1¨¤v¨q°°°1°¬vÑ6Ô6Ð6õ 25Ø#Ô;Ø&Ô>ñ2ô 2ð 
ð 
Ñ-ÐÐ-õ 	ØÔ&Ô,ØÔ)Ô/ñ	
ô 	
ð 	
ð 	
ð 6×CÒCÀAÑFÔFÐØ;×IÒIÈ!ÑLÔLÐåÐ'Ð)?Ñ@Ô@Ð@Ð@Ð@r<   c                 óÔ   — t          t          ¦   «         t          ¦   «         ¬¦  «        }t          j        t          d¬¦  «        5   |j        | Ž  ddd¦  «         dS # 1 swxY w Y   dS )zUCheck that we raise an error is a user set both `base_estimator` and
    `estimator`.)Úbase_estimatorrk   z%Both `base_estimator` and `estimator`r.  N)r   r   rW   rX   rY   rU   )r;   r
  s     r:   Ú/test_calibrated_classifier_error_base_estimatorrÊ  É  s¸   € õ 3Ý)Ñ+Ô+Õ7IÑ7KÔ7Kðñ ô Ðõ 
Œ•zÐ)PÐ	QÑ	QÔ	Qð )ð )Ø!ÐÔ! 4Ð(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   ÁAÁA!Á$A!c                 ó¾   — t          t          ¦   «         ¬¦  «        }d}t          j        t          |¬¦  «        5   |j        | Ž  ddd¦  «         dS # 1 swxY w Y   dS )zPCheck that we raise a warning regarding the deprecation of
    `base_estimator`.)rÉ  z+`base_estimator` was renamed to `estimator`r.  N)r   r   rW   r¿  ÚFutureWarningrU   )r;   r
  Úwarn_msgs      r:   Ú5test_calibrated_classifier_deprecation_base_estimatorrÎ  Ô  s«   € õ 3ÕBTÑBVÔBVÐWÑWÔWÐØ<€HÝ	Œ•m¨8Ð	4Ñ	4Ô	4ð )ð )Ø!ÐÔ! 4Ð(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   ºAÁAÁAc           
      óÂ   —  G d„ dt           ¦  «        } t           |¦   «         ¬¦  «        j        | dt          j        t          | d         ¦  «        dz   ¦  «        iŽ dS )z[Check that CalibratedClassifierCV does not enforce sample alignment
    for fit parameters.c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )úJtest_calibration_with_non_sample_aligned_fit_param.<locals>.TestClassifierNc                 óT   •— |€J ‚t          ¦   «                              |||¬¦  «        S )NrI   r¹  )r°   r8   r9   rJ   Ú	fit_paramr—  s        €r:   rU   zNtest_calibration_with_non_sample_aligned_fit_param.<locals>.TestClassifier.fitâ  s+   ø€ ØÐ(Ð(Ð(Ý‘7”7—;’;˜q !°=�;ÑAÔAÐAr<   )NNr»  r½  s   @r:   ÚTestClassifierrÑ  á  sG   ø€ € € € € ð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Br<   rÔ  )rk   rÓ  rK   N)r   r   rU   rP   r¡   rr   )r;   rÔ  s     r:   Ú2test_calibration_with_non_sample_aligned_fit_paramrÕ  Ý  s�   € ðBð Bð Bð Bð BÕ+ñ Bô Bð Bð
 ;Õ ^ ^Ñ%5Ô%5Ð6Ñ6Ô6Ô:Ø	ðÝœ¥ T¨!¤W¡¤°Ñ!1Ñ2Ô2ðð ð ð ð r<   c           	      óV  — d}d}t           j                             | ¦  «                             |¬¦  «        }t          j        dgt          ||z  ¦  «        z  dg|t          ||z  ¦  «        z
  z  z   ¦  «        }d|                     d¦  «        z  |z   }t          d|d	¬
¦  «        }|                     ||¦  «        }|D ]s\  }}	||         ||         }}
||	         }t          d| ¬¦  «        }| 
                    |
|¦  «         |                     |¦  «        }|dk                         ¦   «         sJ ‚Œtt          t          d| ¬¦  «        d¬¦  «        }t          |||d¬¦  «        }t          t          d| ¬¦  «        d¬¦  «        }t          |||d¬¦  «        }t          ||¦  «         dS )zÓTest that :class:`CalibratedClassifierCV` works with large confidence
    scores when using the `sigmoid` method, particularly with the
    :class:`SGDClassifier`.

    Non-regression test for issue #26766.
    gq=
×£på?iè  rE   rK   r   g     jø@)r×   rK   NT)rM   r9   Ú
classifierÚsquared_hinge)Úlossr6   g     ˆÃ@r>   )r=   Úroc_auc)Úscoringr?   )rP   rQ   Údefault_rngÚnormalrÂ   Úintr  r   Úsplitr   rU   r£   Úanyr   r   r   )Úglobal_random_seedÚprobÚnÚrandom_noiser9   r8   rM   ÚindicesÚtrainÚtestr[   r\   r^   Úsgd_clfÚpredictionsÚclf_sigmoidÚscore_sigmoidÚclf_isotonicÚscore_isotonics                      r:   Ú@test_calibrated_classifier_cv_works_with_large_confidence_scoresrî  ë  sÕ  € ð €DØ€AÝ”9×(Ò(Ð);Ñ<Ô<×CÒCÈÐCÑKÔK€Lå
Œ�!�•s˜1˜t™8‘}”}Ñ$¨ s¨aµ#°a¸$±h±-´-Ñ.?Ñ'@Ñ@ÑAÔA€AØˆa�iŠi˜Ñ Ô Ñ  <Ñ/€Aõ 
�T˜Q¨4Ð	0Ñ	0Ô	0€BØ�hŠh�q˜!‰nŒn€GØð )ð )‰ˆˆtØ˜Uœ8 Q u¤X�ˆØ�4”ˆÝ _ÐCUÐVÑVÔVˆØ�Š�G˜WÑ%Ô%Ð%Ø×/Ò/°Ñ7Ô7ˆØ˜cÒ!×&Ò&Ñ(Ô(Ð(Ð(Ð(Ð(õ
 )Ý˜?Ð9KÐLÑLÔLØðñ ô €Kõ $ K°°A¸yÐIÑIÔI€Mõ *Ý˜?Ð9KÐLÑLÔLØðñ ô €Lõ % \°1°aÀÐKÑKÔK€Nõ �M >Ñ2Ô2Ð2Ð2Ð2r<   c                 óÂ  — t           j                             | ¬¦  «        }d}|                     dd|¬¦  «        }|                     ddd¬¦  «        }d}t          |||¬	¦  «        \  }}d
}t          |||¬	¦  «        \  }	}
t          ||¬¦  «        \  }}d}t          ||	|¬¦  «         t          |	||¬¦  «         t          ||
|¬¦  «         t          |
||¬¦  «         d S )NrC   r•   r   rB   rE   éþÿÿÿ)ÚlowÚhighrF   r{   )ré  r9   Úmax_abs_prediction_thresholdr–   )ré  r9   g�íµ ÷Æ°>)Úatol)rP   rQ   rR   rˆ  rS   r
   r   )rá  r6   rã  r9   Úpredictions_smallÚthreshold_1Úa1Úb1Úthreshold_2Úa2Úb2Úa3Úb3rô  s                 r:   Ú5test_sigmoid_calibration_max_abs_prediction_thresholdrþ    s(  € Ý”9×(Ò(Ð.@Ð(ÑAÔA€LØ€AØ×Ò˜Q ¨ÐÑ*Ô*€Að %×,Ò,°¸!À#Ð,ÑFÔFÐð €KÝ!Ø%Ø
Ø%0ðñ ô �F€Bˆð €KÝ!Ø%Ø
Ø%0ðñ ô �F€Bˆõ "Ø%Ø
ðñ ô �F€Bˆð €DÝ�B˜ Ð&Ñ&Ô&Ð&Ý�B˜ Ð&Ñ&Ô&Ð&Ý�B˜ Ð&Ñ&Ô&Ð&Ý�B˜ Ð&Ñ&Ô&Ð&Ð&Ð&r<   )zÚnumpyrP   rW   Únumpy.testingr   Úscipyr   Úsklearn.baser   r   Úsklearn.calibrationr   r   r	   r
   r   r   Úsklearn.datasetsr   r   r   Úsklearn.dummyr   Úsklearn.ensembler   r   Úsklearn.exceptionsr   Úsklearn.feature_extractionr   Úsklearn.imputer   Úsklearn.isotonicr   Úsklearn.linear_modelr   r   Úsklearn.metricsr   Úsklearn.model_selectionr   r   r   r   r   r   Úsklearn.naive_bayesr    Úsklearn.pipeliner!   r"   Úsklearn.preprocessingr#   r$   Úsklearn.svmr%   Úsklearn.treer&   Úsklearn.utils._mockingr'   Úsklearn.utils._testingr(   r)   r*   r+   Úsklearn.utils.extmathr,   r7   Úfixturer;   ÚmarkÚparametrizerg   ro   rv   r‚   r‰   r;  r©   r¾   rÌ   rÔ   rß   rò   rû   r  r  rQ   rR   r  r  r  r$  r(  Úparamr,  r1  r=  rA  rC  r_  ra  rm  rp  rz  r�  r5  Úobjectr�  r”  r™  r¨  r±  r¡   r´  rÁ  rÇ  rÊ  rÎ  rÕ  rî  rþ  rµ   r<   r:   ú<module>r     so
  ðð Ð Ð Ð Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð HÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø (Ð (Ð (Ð (Ð (Ð (Ø /Ð /Ð /Ð /Ð /Ð /Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø !Ð !Ð !Ð !Ð !Ð !Ø /Ð /Ð /Ð /Ð /Ð /Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )à€	ð €„�hÐÑÔðð ñ  Ôðð
 „×Ò˜ I¨zÐ#:Ñ;Ô;Ø„×Ò˜ d¨E ]Ñ3Ô3ð8ð 8ñ 4Ô3ñ <Ô;ð8ðv+ð +ð +ð „×Ò˜ d¨E ]Ñ3Ô3ðDð Dñ 4Ô3ðDð „×Ò˜ I¨zÐ#:Ñ;Ô;Ø„×Ò˜ d¨E ]Ñ3Ô3ðð ñ 4Ô3ñ <Ô;ðð, „×Ò˜ I¨zÐ#:Ñ;Ô;Ø„×Ò˜ d¨E ]Ñ3Ô3ð6ð 6ñ 4Ô3ñ <Ô;ð6ð, „×Ò˜ I¨zÐ#:Ñ;Ô;Ø„×Ò˜ d¨E ]Ñ3Ô3ð „×Ò˜   q¡¤Ñ*Ô*ð:7ð :7ñ +Ô*ñ 4Ô3ñ <Ô;ð
:7ðz2ð 2ð 2ð2,ð ,ð ,ð^ „×Ò˜ I¨zÐ#:Ñ;Ô;ð5ð 5ñ <Ô;ð5ð0>ð >ð >ð"Cð Cð Cð> „×Ò˜ d¨E ]Ñ3Ô3ðð ñ 4Ô3ðð „×Ò˜ d¨E ]Ñ3Ô3ðJð Jñ 4Ô3ðJð „×Ò˜ d¨E ]Ñ3Ô3ð:ð :ñ 4Ô3ð:ð4 „×ÒØà
Œ	×Ò˜bÑ!Ô!×'Ò'¨¨A¨qÑ1Ô1Ø
Œ	×Ò˜bÑ!Ô!×'Ò'¨¨A¨q°!Ñ4Ô4ðñô ðð ñô ðð( „ð"ð "ñ „ð"ð „ð%ð %ñ „ð%ðð ð ð4 „×ÒØàˆŒ�Y�Y F¨aÐ0Ñ0Ô0°!Ñ4Ô4ØˆŒ�Y�Y F¨aÐ0Ñ0Ô0°(Ñ;Ô;ðñô ð6ð 6ñô ð6ð"	#ð 	#ð 	#ðð ð ð  €„�hÐÑÔð&ð &ñ  Ôð&ð €„�hÐÑÔðð ñ  Ôðð
 „×Ò˜ A r 7Ñ+Ô+Ø„×Ò˜ i°Ð%<Ñ=Ô=ð&;ð &;ñ >Ô=ñ ,Ô+ð&;ðR;ð ;ð ;ð „×ÒØÐ-Ð/CÐDñô ð;ð ;ñô ð;ð ;ð ;ð ;ð( „×ÒÐ+Ð.>Ð@RÐ-SÑTÔTð;ð ;ñ UÔTð;ðD
5ð 
5ð 
5ð „×Ò˜¨¨f¨Ñ6Ô6ð"ð "ñ 7Ô6ð"ð „×Ò˜¨¨f¨Ñ6Ô6ð/ð /ñ 7Ô6ð/ð( „×ÒÐ8Ð:UÐ:UÐ:UÑVÔVð;ð ;ñ WÔVð;ð@ „×Ò˜ I¨zÐ#:Ñ;Ô;Ø„×Ò˜ d¨E ]Ñ3Ô3ð-Að -Añ 4Ô3ñ <Ô;ð-Að` „×ÒÐ*¨V°WÐ,=Ñ>Ô>ð#ð #ñ ?Ô>ð#ð$ „×ÒØà	ˆ�	ÑØˆŒ�	ÑÔðñô ð2ð 2ñô ð2ð6ð 6ð 6ð, „×Ò˜ I¨zÐ#:Ñ;Ô;Ø„×Ò˜ d¨E ]Ñ3Ô3ð'Að 'Añ 4Ô3ñ <Ô;ð'AðV)ð )ð )ð)ð )ð )ðð ð ð/3ð /3ð /3ðd&'ð &'ð &'ð &'ð &'r<   