§
    rŠtj¢ ã                   ó0  — d Z ddlZddlZddlZddlZddlmZ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ZddlZddlmZmZmZmZ dd	lmZ dd
lmZmZmZmZ ddl m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@ ddlAmBZBmCZCmDZDmEZEmFZFmGZGmHZH ddlImJZJ ddlKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY ddlZm[Z[m\Z\ ddl]m^Z^ ddl_m`Z` ddlambZbmcZcmdZd ddlemfZfmgZg ddlhmiZimjZjmkZkmlZl dd lmmnZnmoZo dd!lpmqZqmrZrmsZs dd"ltmuZumvZv dd#lwmxZx dd$lymzZzm{Z{ dd%l|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z† dd&l‡mˆZˆ dd'l‰mŠZŠ dd(l‹mŒZŒ  G d)„ d*ee¦  «        Z� G d+„ d,eo¦  «        ZŽ ej�        d-d-gd.d-gd/d/gd0d/gg¦  «        Z� ej�        g d1¢¦  «        Z‘d2„ Z’ej“         ”                    d3eT e	eUd4¬5¦  «        g¦  «        ej“         ”                    d6de•d7fd8dgidge•d9fd8die•d:fg¦  «        d;„ ¦   «         ¦   «         Z–d<„ Z—d=„ Z˜d>„ Z™ej“         ”                    d?eLeVg¦  «        d@„ ¦   «         ZšdA„ Z›dB„ ZœdC„ Z�dD„ ZždE„ ZŸdF„ Z dG„ Z¡dH„ Z¢dI„ Z£dJ„ Z¤ej“         ”                    dKeŠ¦  «        dL„ ¦   «         Z¥ej“         ”                    dKeŠ¦  «        dM„ ¦   «         Z¦dN„ Z§dO„ Z¨ G dP„ dQe¦  «        Z©ej“         ª                    dR¦  «        dS„ ¦   «         Z«dT„ Z¬dU„ Z­ej“         ”                    dVd-d0g¦  «        ej“         ”                    dWeVeLg¦  «        dX„ ¦   «         ¦   «         Z®dY„ Z¯dZ„ Z°d[„ Z±d\„ Z²d]„ Z³d^„ Z´d_„ Zµd`„ Z¶da„ Z·dÝdc„Z¸dd„ Z¹de„ Zºej“         ”                    dfeLdgdhd/d4giifeVdhd/d4gid0diœfg¦  «        dj„ ¦   «         Z»dk„ Z¼dl„ Z½dm„ Z¾dn„ Z¿ej“         ”                    dW eV eu¦   «         dodpd4gi¬q¦  «         eL eu¦   «         dodpd4gi¬r¦  «        g¦  «        ds„ ¦   «         ZÀdt„ ZÁej“         ”                    du eL e>¦   «         dhg dv¢i¬r¦  «         eV e?¦   «         dwg dx¢i¬q¦  «        g¦  «        dy„ ¦   «         ZÂej“         ”                    dW eV eddz¬{¦  «        d|dpd4gid}¬~¦  «         eL eddz¬{¦  «        d|dpd4gid}¬¦  «        g¦  «        d€„ ¦   «         ZÃd�„ ZÄd‚„ ZÅej“         ª                    dƒ¦  «        d„„ ¦   «         ZÆd…„ ZÇd†„ ZÈd‡„ ZÉdˆ„ ZÊd‰„ ZË G dŠ„ d‹e¦  «        ZÌdŒ„ ZÍd�„ ZÎdŽ„ ZÏd�„ ZÐd�„ ZÑd‘„ ZÒd’„ ZÓd“„ ZÔd”„ ZÕd•„ ZÖej“        j×        d–„ ¦   «         ZØd—„ ZÙej“         ”                    d˜d™dzg¦  «        ej“         ”                    dfeLdgdog dš¢iifeVdog dš¢id›diœfg¦  «        dœ„ ¦   «         ¦   «         ZÚd�„ ZÛdž„ ZÜdŸ„ ZÝd „ ZÞd¡„ Zßd¢„ Zàd£„ Záej“         ”                    d¤dzd™g¦  «        d¥„ ¦   «         Zâd¦„ Zãd§„ Zäej“         ”                    d¨eLd©dªd«gifeVd© ed/d¬¦  «        ifg¦  «        d­„ ¦   «         Zåej“         ”                    d¨eLdwdªd«gifeVdw ed«dª¦  «        ifg¦  «        d®„ ¦   «         Zæej“         ª                    d¯¦  «        ej“         ”                    d?eLeVg¦  «        ej“         ”                    d°e~e}g¦  «        d±„ ¦   «         ¦   «         ¦   «         Zçej“         ”                    d˜dzd™g¦  «        d²„ ¦   «         Zèej“         ”                    d¨eLdgfeVd³feOdgfg¦  «        d´„ ¦   «         Zéej“        j×        dµ„ ¦   «         Zêd¶„ Zëej“         ”                    d¨eLdgfeVd³fg¦  «         edz¬·¦  «        d¸„ ¦   «         ¦   «         Zìej“         ”                    d¨eLdgfeVd³feOdgfg¦  «        d¹„ ¦   «         Zídº„ Zîd»„ Zïd¼„ Zðej“         ”                    d½ ex¦   «         ¦  «        ej“         ”                    d?eLeVg¦  «        d¾„ ¦   «         ¦   «         Zñ ei¦   «         Zò ej¦   «         Zóejô         õ                     ejö        d0¦  «        dze÷¬¿¦  «        ZødÀeød<   dÁeød/<   ej“         ”                    dÂ ejù        d8d/id8d0igdÃejô         õ                     ej�        d/d0g¦  «        ¦  «        fgdÄ¬Å¦  «         ejù        d/d¬dÆœd0d›dÆœd8d¬igdÃejô         õ                     ej�        g dÇ¢¦  «        ¦  «        fdÈejô         õ                     ej�        g dÉ¢¦  «        g dÊ¢¬Ë¦  «        fgdÌ¬Å¦  «         ejù        d8d/gd0gd¬ggid8d/gd0ggigdÃejô         õ                    d/gd0gd¬ggd/gd0ggge÷¬Í¦  «        fgdÎ¬Å¦  «         ejù        d8dÀid8dÁigdÃeøfgdÏ¬Å¦  «         ejù        d8eóid8eòigdÃejô         õ                    eóeòge÷¬Í¦  «        fgdÐ¬Å¦  «        g¦  «        dÑ„ ¦   «         ZúdÒ„ ZûdÓ„ Züej“         ”                    dÔdzd™g¦  «        ej“         ”                    dÕ eüe"dÖ¦  «        ¦  «        e%d×„ ¦   «         ¦   «         ¦   «         Zýej“         ”                    dÔdzd™g¦  «        ej“         ”                    dÕ eüe!dØ¦  «        ¦  «        e%dÙ„ ¦   «         ¦   «         ¦   «         Zþe%dÚ„ ¦   «         Zÿej“         ”                    dÕ eüe!dØ¦  «        ¦  «        e%dÛ„ ¦   «         ¦   «         �Z e%dÜ„ ¦   «         �ZdS )ÞzTest the search moduleé    N)ÚIterableÚSized)Úpartial)ÚStringIO)ÚchainÚproduct)ÚGeneratorType)Ú	bernoulliÚexponÚrandintÚuniform)Úconfig_context)ÚBaseEstimatorÚClassifierMixinÚcloneÚis_classifier)ÚMaxIterEstimatorÚNoCallbackEstimatorÚRecordingAutoPropagatedCallbackÚRecordingCallbackÚskip_callback_test_if_wasm)ÚKMeans)ÚColumnTransformer)Ú
make_blobsÚmake_classificationÚmake_multilabel_classification)ÚLinearDiscriminantAnalysis)ÚDummyClassifier)ÚHistGradientBoostingClassifier)ÚFitFailedWarning)Úenable_halving_search_cv)ÚTfidfVectorizer)ÚSimpleImputer)ÚLinearRegressionÚLogisticRegressionÚRidgeÚSGDClassifier)Úaccuracy_scoreÚconfusion_matrixÚf1_scoreÚmake_scorerÚr2_scoreÚrecall_scoreÚroc_auc_score)Úeuclidean_distances)ÚGridSearchCVÚ
GroupKFoldÚGroupShuffleSplitÚHalvingGridSearchCVÚHalvingRandomSearchCVÚKFoldÚLeaveOneGroupOutÚLeavePGroupsOutÚParameterGridÚParameterSamplerÚRandomizedSearchCVÚStratifiedKFoldÚStratifiedShuffleSplitÚtrain_test_split)ÚBaseSearchCVÚ"_yield_masked_array_for_each_param)ÚOneTimeSplitter)ÚComplementNB)ÚKernelDensityÚKNeighborsClassifierÚLocalOutlierFactor)ÚPipelineÚmake_pipeline)ÚOneHotEncoderÚOrdinalEncoderÚSplineTransformerÚStandardScaler)ÚSVCÚ	LinearSVC)ÚConsumingScorerÚ	_RegistryÚcheck_recorded_metadata)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Ú)yield_namespace_device_dtype_combinations)ÚCheckingClassifierÚMockDataFrame)
ÚMinimalClassifierÚMinimalRegressorÚMinimalTransformerÚ_array_api_for_testsÚassert_allcloseÚassert_allclose_dense_sparseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚset_random_state)Ú_enforce_estimator_tags_y)ÚCSR_CONTAINERS)Ú_num_samplesc                   óT   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ ZeZ	eZ
eZdd	„Zdd„Zd„ ZdS )ÚMockClassifierz8Dummy classifier to test the parameter search algorithmsr   c                 ó   — || _         d S ©N©Ú	foo_param)Úselfrg   s     úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/model_selection/tests/test_search.pyÚ__init__zMockClassifier.__init__w   ó   € Ø"ˆŒˆˆó    c                 ó|   — t          |¦  «        t          |¦  «        k    sJ ‚t          j        |¦  «        | _        | S re   )ÚlenÚnpÚuniqueÚclasses_©rh   ÚXÚYs      ri   ÚfitzMockClassifier.fitz   s3   € Ý�1‰vŒv�˜Q™œÒÐÐÐÝœ	 !™œˆŒØˆrl   c                 ó   — |j         d         S ©Nr   ©Úshape)rh   ÚTs     ri   ÚpredictzMockClassifier.predict   s   € ØŒw�qŒzÐrl   c                 ó   — || j         z   S re   rf   ©rh   rs   s     ri   Ú	transformzMockClassifier.transform‚   ó   € Ø�4”>Ñ!Ð!rl   c                 ó   — || j         z
  S re   rf   r}   s     ri   Úinverse_transformz MockClassifier.inverse_transform…   r   rl   Nc                 ó&   — | j         dk    rd}nd}|S )Né   ç      ð?ç        rf   )rh   rs   rt   Úscores       ri   r†   zMockClassifier.scoreŒ   s    € ØŒ>˜AÒÐØˆEˆEàˆEØˆrl   Fc                 ó   — d| j         iS ©Nrg   rf   )rh   Údeeps     ri   Ú
get_paramszMockClassifier.get_params“   s   € Ø˜Tœ^Ð,Ð,rl   c                 ó    — |d         | _         | S rˆ   rf   )rh   Úparamss     ri   Ú
set_paramszMockClassifier.set_params–   s   € Ø Ô,ˆŒØˆrl   )r   ©NN©F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rj   ru   r{   r~   r�   Úpredict_probaÚpredict_log_probaÚdecision_functionr†   rŠ   r�   © rl   ri   rc   rc   t   s´   € € € € € ØBÐBð#ð #ð #ð #ðð ð ð
ð ð ð"ð "ð "ð"ð "ð "ð €MØÐØÐðð ð ð ð-ð -ð -ð -ðð ð ð ð rl   rc   c                   ó(   — e Zd ZdZed„ ¦   «         ZdS )ÚLinearSVCNoScorez0A LinearSVC classifier that has no score method.c                 ó   — t           ‚re   )ÚAttributeError©rh   s    ri   r†   zLinearSVCNoScore.scorež   s   € åÐrl   N)r�   r‘   r’   r“   Úpropertyr†   r—   rl   ri   r™   r™   ›   s3   € € € € € Ø:Ð:àðð ñ „Xðð ð rl   r™   éÿÿÿÿéþÿÿÿrƒ   é   )rƒ   rƒ   r    r    c                 ó~   ‡ — t          ‰ ¦  «        ˆ fd„t          t          ‰ ¦  «        ¦  «        D ¦   «         k    sJ ‚d S )Nc                 ó    •— g | ]
}‰|         ‘ŒS r—   r—   )Ú.0ÚiÚgrids     €ri   ú
<listcomp>z3assert_grid_iter_equals_getitem.<locals>.<listcomp>¨   s   ø€ Ð<Ð<Ð< a˜$˜qœ'Ð<Ð<Ð<rl   )ÚlistÚrangern   )r¥   s   `ri   Úassert_grid_iter_equals_getitemr©   §   sC   ø€ Ý�‰:Œ:Ð<Ð<Ð<Ð<­5µ°T±´Ñ+;Ô+;Ð<Ñ<Ô<Ò<Ð<Ð<Ð<Ð<Ð<rl   Úklassé
   ©Ún_iterz input, error_type, error_messagez1Parameter .* a dict or a list, got: 0 of type intÚfooz Parameter .* is not a dict \(0\)z}Parameter (grid|distribution) for parameter 'foo' (is not|needs to be) (a list or a numpy array|iterable or a distribution).*c                 óz   — t          j        ||¬¦  «        5   | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©Úmatch)ÚpytestÚraises)rª   ÚinputÚ
error_typeÚerror_messages       ri   Útest_validate_parameter_inputr·   «   sŠ   € õ 
Œ�z¨Ð	7Ñ	7Ô	7ð ð Øˆˆe‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   —0°4·4c            
      óÐ  — dg d¢i} t          | ¦  «        }t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t	          |¦  «        dk    sJ ‚t          |¦  «         ddgg d¢dœ}t          |¦  «        }t	          |¦  «        dk    sJ ‚t          d¦  «        D ]T}t          d	„ |D ¦   «         ¦  «        }|t          d
„ t          |d         |d         ¦  «        D ¦   «         ¦  «        k    sJ ‚ŒUt          |¦  «         t          i ¦  «        }t	          |¦  «        dk    sJ ‚t          |¦  «        i gk    sJ ‚t          |¦  «         t          j        t          ¦  «        5  |d          d d d ¦  «         n# 1 swxY w Y   t          dddgii ddgig¦  «        }t	          |¦  «        dk    sJ ‚t          |¦  «        ddiddii ddigk    sJ ‚t          |¦  «         d S )Nr®   ©rƒ   r    é   rº   é   r    )ÚhamÚspamÚeggs©r®   Úbaré   c           	   3   ó€   K  — | ]9}t          t          t          |                     ¦   «         ¦  «        Ž ¦  «        V — Œ:d S re   )Útupler   ÚsortedÚitems©r£   Úps     ri   ú	<genexpr>z&test_parameter_grid.<locals>.<genexpr>Î   s?   è è € ÐGÐG¸A•U�5¥6¨!¯'ª'©)¬)Ñ#4Ô#4Ð6Ñ7Ô7ÐGÐGÐGÐGÐGÐGrl   c              3   ó(   K  — | ]\  }}d |d|fV — ŒdS )rÀ   r®   Nr—   )r£   ÚxÚys      ri   rÈ   z&test_parameter_grid.<locals>.<genexpr>Ï   s@   è è € ð 
ð 
Ù%) Q¨ˆU�A�u˜aÐ ð
ð 
ð 
ð 
ð 
ð 
rl   rÀ   rƒ   ÚCr«   ç      à?)r8   Ú
isinstancer   r   rn   r©   r¨   Úsetr   r§   r²   r³   Ú
IndexError)Úparams1Úgrid1Úparams2Úgrid2r¤   ÚpointsÚemptyÚ	has_emptys           ri   Útest_parameter_gridrØ   ¾   sm  € à�i�i�iÐ €GÝ˜'Ñ"Ô"€EÝ�e�XÑ&Ô&Ð&Ð&Ð&Ý�e�UÑ#Ô#Ð#Ð#Ð#Ýˆu‰:Œ:˜Š?ˆ?ˆ?ˆ?Ý# EÑ*Ô*Ð*à˜!�fÐ%<Ð%<Ð%<Ð=Ð=€GÝ˜'Ñ"Ô"€EÝˆu‰:Œ:˜Š?ˆ?ˆ?ˆ?õ �1‰XŒXð 
ð 
ˆåÐGÐGÀÐGÑGÔGÑGÔGˆØ�ð 
ð 
Ý-4°W¸U´^ÀWÈUÄ^Ñ-TÔ-Tð
ñ 
ô 
ñ 
ô 
ò 
ð 
ð 
ð 
ð 
õ $ EÑ*Ô*Ð*õ ˜"ÑÔ€EÝˆu‰:Œ:˜Š?ˆ?ˆ?ˆ?Ý�‰;Œ;˜2˜$ÒÐÐÐÝ# EÑ*Ô*Ð*Ý	Œ•zÑ	"Ô	"ð ð ØˆaŒˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ   a¨ W˜~¨r°C¸#¸°<Ð@ÑAÔA€IÝˆy‰>Œ>˜QÒÐÐÐÝ�	‰?Œ?  Q˜x¨#¨r¨°B¸¸c¸
ÐCÒCÐCÐCÐCÝ# IÑ.Ô.Ð.Ð.Ð.s   Å*	E?Å?FÆFc                  óæ  — t          ¦   «         } t          | dg d¢idd¬¦  «        }t          j        }t	          ¦   «         t          _        |                     t          t          ¦  «         |t          _        |j        j	        dk    sJ ‚t          |j        d         j        g d¢¦  «         |                     t          t          ¦  «         |                     t          ¦  «         |                     t          ¦  «         |                     t          ¦  «         d|_        t%          j        t(          ¦  «        5  |                     t          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrg   r¹   r    rº   ©ÚcvÚverboseÚparam_foo_paramÚsklearn)rc   r0   ÚsysÚstdoutr   ru   rs   rË   Úbest_estimator_rg   r]   Úcv_results_Údatar†   r”   r–   r~   Úscoringr²   r³   Ú
ValueError)ÚclfÚgrid_searchÚ
old_stdouts      ri   Útest_grid_searchré   â   sv  € å
Ñ
Ô
€CÝ˜s [°)°)°)Ð$<ÀÈAÐNÑNÔN€Kå”€JÝ‘”…C„JØ‡O‚O•A•qÑÔÐØ…C„JØÔ&Ô0°AÒ5Ð5Ð5Ð5å�{Ô.Ð/@ÔAÔFÈ	È	È	ÑRÔRÐRð ×Ò•a�ÑÔÐØ×Ò�aÑ Ô Ð Ø×!Ò!¥!Ñ$Ô$Ð$Ø×Ò�!ÑÔÐð $€KÔÝ	Œ•zÑ	"Ô	"ð ð Ø�Š��1ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ä8!E&Å&E*Å-E*c                  óŒ  — t          dt          ¦   «         fg¦  «        } dt          ¦   «         t          ¦   «         gi}t          | |d¬¦  «        }|                     t
          t          ¦  «         |j        d         }t          |d         t          ¦  «        sJ ‚t          |d         t          ¦  «        sJ ‚t          |d         d¦  «        rJ ‚t          |d         d¦  «        rJ ‚|d         |j
        usJ ‚|d         |j
        usJ ‚t          |d         d         d¦  «        rJ ‚t          |d         d         d¦  «        rJ ‚d S )NÚ	regressorr    ©rÛ   Úparam_regressorr   rƒ   Úcoef_)rE   r$   r&   r0   ru   rs   rË   râ   rÎ   Úhasattrrá   )ÚpipeÚ
param_gridrç   Úregressor_resultss       ri   Útest_grid_search_pipeline_stepsró   û   sX  € å�kÕ#3Ñ#5Ô#5Ð6Ð7Ñ8Ô8€DØÕ 0Ñ 2Ô 2µE±G´GÐ<Ð=€JÝ˜t Z°AÐ6Ñ6Ô6€KØ‡O‚O•A•qÑÔÐØ#Ô/Ð0AÔBÐÝÐ'¨Ô*Õ,<Ñ=Ô=Ð=Ð=Ð=ÝÐ'¨Ô*­EÑ2Ô2Ð2Ð2Ð2ÝÐ(¨Ô+¨WÑ5Ô5Ð5Ð5Ð5ÝÐ(¨Ô+¨WÑ5Ô5Ð5Ð5Ð5Ø˜QÔ {Ô'BÐBÐBÐBÐBØ˜QÔ {Ô'BÐBÐBÐBÐBå�z +Ô.¨qÔ1°7Ñ;Ô;Ð;Ð;Ð;Ý�z +Ô.¨qÔ1°7Ñ;Ô;Ð;Ð;Ð;Ð;Ð;rl   ÚSearchCVc           	      óú  — t          j        d¦  «                             dd¦  «        }t          j        dgdz  dgdz  z   ¦  «        }t	          ddg¬¦  «        } | |d	g d
¢idd¬¦  «        }d}t          j        t          |¬¦  «        5  |                     ||t          j	        d¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  |                     ||t          j	        d¦  «        t          j
        d¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ||t          j	        d¦  «        t          j
        d¦  «        ¬¦  «         d S )Néd   r«   r   é   rƒ   r½   r¾   )Úexpected_fit_paramsrg   r¹   r    Úraise©rÛ   Úerror_scorez0Expected fit parameter\(s\) \['eggs'\] not seen.r°   )r½   z)Fit parameter spam has length 1; expected)r½   r¾   )ro   ÚarangeÚreshapeÚarrayrS   r²   r³   ÚAssertionErrorru   ÚonesÚzeros)rô   rs   rË   ræ   ÚsearcherÚerr_msgs         ri   Útest_SearchCV_with_fit_paramsr    sÒ  € å
Œ	�#‰Œ×Ò˜r 2Ñ&Ô&€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€AÝ
°&¸&Ð1AÐ
BÑ
BÔ
B€CØˆx˜˜k¨9¨9¨9Ð5¸!ÈÐQÑQÔQ€Hð B€GÝ	Œ•~¨WÐ	5Ñ	5Ô	5ð -ð -Ø�Š�Q˜¥¤¨¡¤ˆÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð :€GÝ	Œ•~¨WÐ	5Ñ	5Ô	5ð ?ð ?Ø�Š�Q˜¥¤¨¡
¤
µ´¸"±´ˆÑ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?à‡L‚L��A�BœG B™KœK­b¬h°r©l¬l€LÑ;Ô;Ð;Ð;Ð;s$   Â
+CÃCÃCÃ)>D3Ä3D7Ä:D7c                  ó\  — t          d¬¦  «        } t          dd¬¦  «        \  }}g d¢}t          d¬¦  «        }t          | d|id¬¦  «        }|                     ||¦  «         t          |d|id¬¦  «        }|                     ||¦  «         |j        |j        k    sJ ‚|                     ||¦  «        |                     ||¦  «        k    sJ ‚t          |d|i¦  «        }t          j        t          d	¬
¦  «        5  |                     dgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©Úrandom_stater    ©r  Úcenters©çš™™™™™¹?rƒ   r«   rÌ   Úaccuracy©rä   z
no scoringr°   rƒ   )
rL   r   r™   r0   ru   Úbest_params_r†   r²   r³   Ú	TypeError)ræ   rs   rË   ÚCsÚclf_no_scorerç   Úgrid_search_no_scores          ri   Útest_grid_search_no_scorer     sŽ  € å
 Ð
#Ñ
#Ô
#€CÝ 1¨aÐ0Ñ0Ô0�D€A€qØ	ˆˆ€BÝ#°Ð3Ñ3Ô3€LÝ˜s S¨" I°zÐBÑBÔB€KØ‡O‚O�A�qÑÔÐå'¨°s¸B°iÈÐTÑTÔTÐà×Ò˜Q Ñ"Ô"Ð"ð  Ô,°Ô0HÒHÐHÐHÐHà×Ò˜Q Ñ"Ô"Ð&:×&@Ò&@ÀÀAÑ&FÔ&FÒFÐFÐFÐFõ (¨°s¸B°iÑ@Ô@ÐÝ	Œ•y¨Ð	5Ñ	5Ô	5ð (ð (Ø× Ò  1 # Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   Ã<D!Ä!D%Ä(D%c                  óÄ  — t          dddd¬¦  «        \  } }t          d¬¦  «        }ddgi}t          ||d ¬	¦  «                             | |¦  «        }t          ||d
¬	¦  «                             | |¦  «        }t          t	          ¦   «         |d¬	¦  «                             | |¦  «        }t          ||d¬	¦  «                             | |¦  «        }|                     | |¦  «        }|                     | |¦  «        }	|                     | |¦  «        }
|                     | |¦  «        }|dk     sJ ‚|	dk     sJ ‚||	k    sJ ‚t          |	|¦  «         t          ||
¦  «         d S )Nrö   r    çš™™™™™É?r   ©Ú	n_samplesÚ	n_classesÚflip_yr  r  rÌ   r  r  r  Úroc_aucr„   )r   rL   r0   ru   r™   r†   r[   )rs   rË   ræ   r¥   Úsearch_no_scoringÚsearch_accuracyÚsearch_no_score_method_aucÚ
search_aucÚscore_no_scoringÚscore_accuracyÚscore_no_score_aucÚ	score_aucs               ri   Útest_grid_search_score_methodr#  8  s‰  € Ý¨¸À#ÐTUÐVÑVÔV�D€A€qÝ
 Ð
#Ñ
#Ô
#€CØ�#�ˆ<€Då$ S¨$¸Ð=Ñ=Ô=×AÒAÀ!ÀQÑGÔGÐÝ" 3¨°jÐAÑAÔA×EÒEÀaÈÑKÔK€OÝ!-ÝÑÔ˜D¨)ð"ñ "ô "ç	‚cˆ!ˆQ�i„ið õ ˜c 4°Ð;Ñ;Ô;×?Ò?ÀÀ1ÑEÔE€Jð )×.Ò.¨q°!Ñ4Ô4ÐØ$×*Ò*¨1¨aÑ0Ô0€NØ3×9Ò9¸!¸QÑ?Ô?ÐØ× Ò   AÑ&Ô&€Ið �sŠ?ˆ?ˆ?ˆ?Ø˜CÒÐÐÐØ˜Ò&Ð&Ð&Ð&å˜Ð(8Ñ9Ô9Ð9Ý˜	Ð#5Ñ6Ô6Ð6Ð6Ð6rl   c                  ó¾  — t           j                             d¦  «        } t          ddd¬¦  «        \  }}|                      ddd¦  «        }t          d¬¦  «        }ddgi}t          ¦   «         t          d¦  «        t          d¬	¦  «        t          ¦   «         g}d
}|D ]u}t          |||¬¦  «        }	t          j        t          |¬¦  «        5  |	                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   |	                     |||¬¦  «         Œvt          ¦   «         t!          ¦   «         g}
|
D ]*}t          |||¬¦  «        }	|	                     ||¦  «         Œ+d S )Nr   é   r    )r  r  r  rº   r  rÌ   rƒ   ©Ún_splitsz*The 'groups' parameter should not be None.rì   r°   ©Úgroups)ro   ÚrandomÚRandomStater   r   rL   r6   r7   r1   r2   r0   r²   r³   rå   ru   r;   r<   )Úrngrs   rË   r)  ræ   r¥   Ú	group_cvsÚ	error_msgrÛ   ÚgsÚnon_group_cvss              ri   Útest_grid_search_groupsr1  T  s¬  € õ Œ)×
Ò
 Ñ
"Ô
"€Cå¨°qÀqÐIÑIÔI�D€A€qØ�[Š[˜˜A˜rÑ"Ô"€Få
 Ð
#Ñ
#Ô
#€CØ�!�ˆ:€Dõ 	ÑÔÝ˜ÑÔÝ˜AÐÑÔÝÑÔð	€Ið =€IØð $ð $ˆÝ˜#˜t¨Ð+Ñ+Ô+ˆÝŒ]�:¨YÐ7Ñ7Ô7ð 	ð 	Ø�FŠF�1�a‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à
�Šˆq�!˜FˆÑ#Ô#Ð#Ð#å$Ñ&Ô&Õ(>Ñ(@Ô(@ÐA€MØð ð ˆÝ˜#˜t¨Ð+Ñ+Ô+ˆà
�Šˆq�!‰Œˆˆðð s   ÃC0Ã0C4	Ã7C4	c                  óÎ  — t          j        d¦  «                             dd¦  «        } t          j        dgdz  dgdz  z   ¦  «        }g d¢}t	          t          d¬¦  «        d|i¦  «        }|                     | |¦  «         t          |j        j	        |j	        ¦  «         t	          t          ¦   «         d	d
dgi¦  «        }|                     | |¦  «         t          |d¦  «        rJ ‚t	          t          d¬¦  «        d|i¦  «        }t          |d¦  «        rJ ‚t	          t          d¬¦  «        d|id¬¦  «        }|                     | |¦  «         t          |d¦  «        rJ ‚d S )Nrö   r«   r   r÷   rƒ   r
  r  rÌ   Úalphar„   ç       @rq   F©Úrefit)ro   rü   rý   rþ   r0   rL   ru   r]   rá   rq   r&   rï   )rs   rË   r  rç   s       ri   Útest_classes__propertyr7  s  sf  € å
Œ	�#‰Œ×Ò˜r 2Ñ&Ô&€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€AØ	ˆˆ€Bå�y°aÐ8Ñ8Ô8¸3À¸)ÑDÔD€KØ‡O‚O�A�qÑÔÐÝ�{Ô2Ô;¸[Ô=QÑRÔRÐRõ �u™wœw¨°3¸°*Ð(=Ñ>Ô>€KØ‡O‚O�A�qÑÔÐÝ�{ JÑ/Ô/Ð/Ð/Ð/õ �y°aÐ8Ñ8Ô8¸3À¸)ÑDÔD€KÝ�{ JÑ/Ô/Ð/Ð/Ð/õ �y°aÐ8Ñ8Ô8¸3À¸)È5ÐQÑQÔQ€KØ‡O‚O�A�qÑÔÐÝ�{ JÑ/Ô/Ð/Ð/Ð/Ð/Ð/rl   c                  ó@  — t          ¦   «         } t          | ddgid¬¦  «        }|                     t          t          ¦  «         t          |d¦  «        sJ ‚t          | ddgidd¬¦  «        }|                     t          t          ¦  «         t          |d¦  «        sJ ‚d S )Nrg   rƒ   r    rì   râ   r   )r­   rÛ   )rc   r0   ru   rs   rË   rï   r:   )ræ   rç   Úrandom_searchs      ri   Útest_trivial_cv_results_attrr:  Œ  s¡   € å
Ñ
Ô
€CÝ˜s [°1°#Ð$6¸1Ð=Ñ=Ô=€KØ‡O‚O•A•qÑÔÐÝ�; Ñ.Ô.Ð.Ð.Ð.å& s¨[¸1¸#Ð,>ÀqÈQÐOÑOÔO€MØ×Ò•a�ÑÔÐÝ�= -Ñ0Ô0Ð0Ð0Ð0Ð0Ð0rl   c            
      ó&  — t          ¦   «         } d ddgfD �]}t          | dg d¢idd¬¦  «        }|                     t          t          ¦  «         t          |d¦  «        s t          |d	¦  «        rt          |d
¦  «        sJ ‚dD ]�}d|› d�}d|› d�}t          j        t          |¬¦  «        5 } t          ||¦  «        t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j        t          ¦  «        sJ ‚|t          |j        j        ¦  «        v sJ ‚Œž�Œd}dD ]i}t          j        t          |¬¦  «        5  t          | i |dddœ¬¦  «                             t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   Œjd S )Nr  Ú	precisionrg   r¹   Fr    ©r6  rÛ   rá   Úbest_index_r  )r{   r”   r•   r~   r�   zhas no attribute 'ú'z`refit=False`. z9 is available only after refitting on the best parametersr°   zIFor multi-metric scoring, the parameter refit must be set to a scorer key)TÚrecallr  )ÚaccÚprec)r6  rä   )rc   r0   ru   rs   rË   rï   r²   r³   r›   ÚgetattrrÎ   ÚvalueÚ	__cause__Ústrrå   )	ræ   rä   rç   Úfn_nameÚ	outer_msgÚ	inner_msgÚ	exec_infor.  r6  s	            ri   Útest_no_refitrK  ˜  sd  € å
Ñ
Ô
€CØ˜: {Ð3Ð4ð ?ñ ?ˆÝ" 3¨°i°i°iÐ(@ÈÐRSÐTÑTÔTˆØ�Š��1ÑÔÐå˜Ð%6Ñ7Ô7ð	
å˜ ]Ñ3Ô3ð	
õ ˜ ^Ñ4Ô4ð	
ð 	
ð5ð
ð 	?ð 	?ˆGð 8¨WÐ7Ð7Ð7ˆIð3 'ð 3ð 3ð 3ð õ ”�~°YÐ?Ñ?Ô?ð 1À9Ø-•˜ WÑ-Ô-­aÑ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ ˜iœoÔ7½ÑHÔHÐHÐHÐHØ¥ I¤OÔ$=Ñ >Ô >Ð>Ð>Ð>Ð>Ð>ñ!	?ð( 	Tð ð .ð ð ˆÝŒ]�:¨YÐ7Ñ7Ô7ð 	ð 	ÝØ�R˜u°jÈ+Ð.VÐ.Vðñ ô çŠc•!•Q‰iŒiˆið	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s$   Â,CÃCÃCÅ5FÆF		ÆF		c                  ó  — t          ddd¬¦  «        \  } }t          ¦   «         }t          |dddgi¦  «        }t          j        t
          ¦  «        5  |                     | d d…         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NéÈ   rö   r   ©r  Ú
n_featuresr  rÌ   r  r„   é´   )r   rL   r0   r²   r³   rå   ru   )ÚX_Úy_ræ   rÛ   s       ri   Útest_grid_search_errorrS  Ã  sË   € å ¨3¸3ÈQÐOÑOÔO�F€Bˆå
‰+Œ+€CÝ	�c˜C # s Ð,Ñ	-Ô	-€BÝ	Œ•zÑ	"Ô	"ð ð Ø
�Šˆr�$�3�$Œx˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA=Á=BÂBc                  ó<  — t          ddd¬¦  «        \  } }dgdgdgdœ}t          d	¬
¦  «        }t          ||¦  «        }|                     | |¦  «         t          ddd¬¦  «        }|                     | |¦  «         t	          |j        |j        j        ¦  «         d S )NrM  rö   r   rN  r„   Úrbfr  )rÌ   ÚkernelÚgammaÚauto©rW  )r   rK   r0   ru   r]   Ú
dual_coef_rá   )rQ  rR  Ú
param_dictræ   rÛ   s        ri   Útest_grid_search_one_grid_pointr\  Í  s¢   € Ý ¨3¸3ÈQÐOÑOÔO�F€BˆØ�u¨¨¸3¸%Ð@Ð@€Jå
�FÐ
Ñ
Ô
€CÝ	�c˜:Ñ	&Ô	&€BØ‡F‚Fˆ2ˆr�N„N€Nå
�˜E¨Ð
-Ñ
-Ô
-€CØ‡G‚GˆB��O„O€Oå�s”~ rÔ'9Ô'DÑEÔEÐEÐEÐErl   c                  óÎ   — t          ¦   «         } d }t          | dt          dd¦  «        id¬¦  «        }|                     t          t
          ¦  «         |j        j        dk    sJ ‚d S )Nrg   rƒ   r»   r    rì   )rc   r0   r¨   ru   rs   rË   rá   rg   )ræ   rç   s     ri   Ú/test_grid_search_when_param_grid_includes_ranger^  Û  sd   € å
Ñ
Ô
€CØ€KÝ˜s [µ%¸¸1±+´+Ð$>À1ÐEÑEÔE€KØ‡O‚O•A•qÑÔÐØÔ&Ô0°AÒ5Ð5Ð5Ð5Ð5Ð5rl   c                  ó*  — t          ddd¬¦  «        \  } }ddi}t          d¬¦  «        }t          j        d	¦  «        }t	          ||¦  «        }t          j        t          |¬
¦  «        5  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   dg i}t          ¦   «         }t          j        d¦  «        }t	          ||¦  «        }t          j        t          |¬
¦  «        5  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   ddi}t          d¬¦  «        }t          j        d¦  «        }t	          ||¦  «        }t          j        t          |¬
¦  «        5  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   dt          j        d¦  «        i}t          ¦   «         }t	          ||¦  «        }t          j        t          ¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr«   r÷   r   rN  rÌ   rƒ   rX  rY  z£Parameter grid for parameter 'C' needs to be a list or a numpy array, but got 1 (of type int) instead. Single values need to be wrapped in a list with one element.r°   zIParameter grid for parameter 'C' need to be a non-empty sequence, got: []z1,2,3z©Parameter grid for parameter 'C' needs to be a list or a numpy array, but got '1,2,3' (of type str) instead. Single values need to be wrapped in a list with one element.)rº   r    )r   rK   ÚreÚescaper0   r²   r³   r  ru   rå   ro   r   )rs   rË   r[  ræ   r.  Úsearchs         ri   Útest_grid_search_bad_param_gridrc  ä  s  € Ý¨¸ÈÐJÑJÔJ�D€A€qØ�q�€JÝ
�FÐ
Ñ
Ô
€CÝ”	ð	@ñô €Iõ
 ˜#˜zÑ*Ô*€FÝ	Œ•y¨	Ð	2Ñ	2Ô	2ð ð Ø�
Š
�1�aÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �r�€JÝ
‰%Œ%€CÝ”	ØSñô €Iõ ˜#˜zÑ*Ô*€FÝ	Œ•z¨Ð	3Ñ	3Ô	3ð ð Ø�
Š
�1�aÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �w�€JÝ
�FÐ
Ñ
Ô
€CÝ”	ð	.ñô €Iõ
 ˜#˜zÑ*Ô*€FÝ	Œ•y¨	Ð	2Ñ	2Ô	2ð ð Ø�
Š
�1�aÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð •r”w˜v‘”Ð'€JÝ
‰%Œ%€CÝ˜#˜zÑ*Ô*€FÝ	Œ•zÑ	"Ô	"ð ð Ø�
Š
�1�aÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sH   Á)BÂBÂBÃ(DÄDÄDÅ)FÆFÆFÇ$HÈHÈHÚcsr_containerc                 óz  — t          ddd¬¦  «        \  }}t          ¦   «         }t          |dddgi¦  «        }|                     |d d…         |d d…         ¦  «         |                     |dd …         ¦  «        }|j        j        } | |¦  «        }t          ¦   «         }t          |dddgi¦  «        }|                     |d d…                              ¦   «         |d d…         ¦  «         |                     |dd …         ¦  «        }|j        j        }t          j	        ||k    ¦  «        d	k    sJ ‚||k    sJ ‚d S )
NrM  rö   r   rN  rÌ   r  r„   rP  gÍÌÌÌÌÌì?)
r   rL   r0   ru   r{   rá   rÌ   Útocooro   Úmean)	rd  rQ  rR  ræ   rÛ   Úy_predrÌ   Úy_pred2ÚC2s	            ri   Útest_grid_search_sparserk    s8  € õ !¨3¸3ÈQÐOÑOÔO�F€Bˆå
‰+Œ+€CÝ	�c˜C # s Ð,Ñ	-Ô	-€BØ‡F‚Fˆ2ˆdˆsˆdŒ8�R˜˜˜”XÑÔÐØ�ZŠZ˜˜3˜4˜4œÑ!Ô!€FØ
ÔÔ€Aà	ˆ�rÑ	Ô	€BÝ
‰+Œ+€CÝ	�c˜C # s Ð,Ñ	-Ô	-€BØ‡F‚Fˆ2ˆdˆsˆdŒ8�>Š>ÑÔ˜R   œXÑ&Ô&Ð&Ø�jŠj˜˜C˜D˜DœÑ"Ô"€GØ	Ô	Ô	€BåŒ7�6˜WÒ$Ñ%Ô%¨Ò,Ð,Ð,Ð,Ø�Š7ˆ7ˆ7ˆ7ˆ7ˆ7rl   c                 ód  — t          ddd¬¦  «        \  }}t          ¦   «         }t          |dddgid¬	¦  «        }|                     |d d
…         |d d
…         ¦  «         |                     |d
d …         ¦  «        }|j        j        } | |¦  «        }t          ¦   «         }t          |dddgid¬	¦  «        }|                     |d d
…         |d d
…         ¦  «         |                     |d
d …         ¦  «        }|j        j        }t          ||¦  «         ||k    sJ ‚d„ }	t          |	d¬¦  «        }
t          |dddgi|
¬	¦  «        }|                     |d d
…         |d d
…         ¦  «         |                     |d
d …         ¦  «        }|j        j        }||k    sJ ‚t          ||¦  «         d S )NrM  rö   r   rN  rÌ   r  r„   Úf1r  rP  c                 ó$   — t          | |¦  «         S re   )r*   )Úy_true_Úy_pred_s     ri   Úf1_lossz0test_grid_search_sparse_scoring.<locals>.f1_loss:  s   € Ý˜ 'Ñ*Ô*Ð*Ð*rl   F)Úgreater_is_better)	r   rL   r0   ru   r{   rá   rÌ   r]   r+   )rd  rQ  rR  ræ   rÛ   rh  rÌ   ri  rj  rq  ÚF1LossÚy_pred3ÚC3s                ri   Útest_grid_search_sparse_scoringrv  "  sÍ  € å ¨3¸3ÈQÐOÑOÔO�F€Bˆå
‰+Œ+€CÝ	�c˜C # s Ð,°dÐ	;Ñ	;Ô	;€BØ‡F‚Fˆ2ˆdˆsˆdŒ8�R˜˜˜”XÑÔÐØ�ZŠZ˜˜3˜4˜4œÑ!Ô!€FØ
ÔÔ€Aà	ˆ�rÑ	Ô	€BÝ
‰+Œ+€CÝ	�c˜C # s Ð,°dÐ	;Ñ	;Ô	;€BØ‡F‚Fˆ2ˆdˆsˆdŒ8�R˜˜˜”XÑÔÐØ�jŠj˜˜C˜D˜DœÑ"Ô"€GØ	Ô	Ô	€Bå�v˜wÑ'Ô'Ð'Ø�Š7ˆ7ˆ7ˆ7ð+ð +ð +õ ˜°EÐ:Ñ:Ô:€FÝ	�c˜C # s Ð,°fÐ	=Ñ	=Ô	=€BØ‡F‚Fˆ2ˆdˆsˆdŒ8�R˜˜˜”XÑÔÐØ�jŠj˜˜C˜D˜DœÑ"Ô"€GØ	Ô	Ô	€Bà�Š7ˆ7ˆ7ˆ7Ý�v˜wÑ'Ô'Ð'Ð'Ð'rl   c                  ó¨  — t          ddd¬¦  «        \  } }t          j        | d d…         | d d…         j        ¦  «        }|d d…         }t	          d¬¦  «        }t          |dd	d
gi¦  «        }|                     ||¦  «         |j        dk    sJ ‚t          j        | dd …         | d d…         j        ¦  «        }|dd …         }|                     |¦  «        }t          j	        ||k    ¦  «        dk    sJ ‚t          j        t          ¦  «        5  |                     |                     ¦   «         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrM  rö   r   rN  rP  Úprecomputed©rV  rÌ   r  r„   )r   ro   Údotrz   rK   r0   ru   Úbest_score_r{   rg  r²   r³   rå   Útolist)	rQ  rR  ÚK_trainÚy_trainræ   rÛ   ÚK_testÚy_testrh  s	            ri   Ú#test_grid_search_precomputed_kernelr�  G  s”  € õ !¨3¸3ÈQÐOÑOÔO�F€Bˆõ Œf�R˜˜˜”X˜r $ 3 $œxœzÑ*Ô*€GØ��#�Œh€Gå
�]Ð
#Ñ
#Ô
#€CÝ	�c˜C # s Ð,Ñ	-Ô	-€BØ‡F‚Fˆ7�GÑÔÐàŒ>˜QÒÐÐÐõ ŒV�B�s�t�t”H˜b  # œhœjÑ)Ô)€FØ���ŒX€Fà�ZŠZ˜ÑÔ€FåŒ7�6˜VÒ#Ñ$Ô$¨Ò)Ð)Ð)Ð)õ 
Œ•zÑ	"Ô	"ð *ð *Ø
�Šˆw�~Š~ÑÔ Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s   Ä)EÅEÅEc                  ó.  — t          j        d¦  «        } t          j        d¦  «        }t          d¬¦  «        }t	          |dddgi¦  «        }t          j        t          ¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r«   é   )r«   rx  ry  rÌ   r  r„   )	ro   r  r   rK   r0   r²   r³   rå   ru   )r}  r~  ræ   rÛ   s       ri   Ú3test_grid_search_precomputed_kernel_error_nonsquarer„  d  sÐ   € õ Œh�xÑ Ô €GÝŒg�e‰nŒn€GÝ
�]Ð
#Ñ
#Ô
#€CÝ	�c˜C # s Ð,Ñ	-Ô	-€BÝ	Œ•zÑ	"Ô	"ð !ð !Ø
�Šˆw˜Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   Á&B
Â
BÂBc                   ó&   — e Zd ZdZdd„Zd„ Zd„ ZdS )ÚBrokenClassifierz*Broken classifier that cannot be fit twiceNc                 ó   — || _         d S re   ©Ú	parameter©rh   r‰  s     ri   rj   zBrokenClassifier.__init__r  rk   rl   c                 ó8   — t          | d¦  «        rJ ‚d| _        d S )NÚhas_been_fit_T)rï   rŒ  ©rh   rs   rË   s      ri   ru   zBrokenClassifier.fitu  s&   € Ý˜4 Ñ1Ô1Ð1Ð1Ð1Ø!ˆÔÐÐrl   c                 ó@   — t          j        |j        d         ¦  «        S rw   ©ro   r  ry   r}   s     ri   r{   zBrokenClassifier.predicty  ó   € ÝŒx˜œ œ
Ñ#Ô#Ð#rl   re   )r�   r‘   r’   r“   rj   ru   r{   r—   rl   ri   r†  r†  o  sL   € € € € € Ø4Ð4ð#ð #ð #ð #ð"ð "ð "ð$ð $ð $ð $ð $rl   r†  z1ignore::sklearn.exceptions.UndefinedMetricWarningc                  ó  — t          j        d¦  «                             dd¦  «        } t          j        dgdz  dgdz  z   ¦  «        }t	          t          ¦   «         dddgigdd¬	¦  «        }|                     | |¦  «         d S )
Nrö   r«   r   r÷   rƒ   r‰  r<  T©rä   r6  )ro   rü   rý   rþ   r0   r†  ru   )rs   rË   ræ   s      ri   Ú
test_refitr“  }  sˆ   € õ
 	Œ	�#‰Œ×Ò˜r 2Ñ&Ô&€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€Aå
ÝÑÔ˜k¨A¨q¨6Ð2Ð3¸[ÐPTðñ ô €Cð ‡G‚GˆAˆq�M„M€M€M€Mrl   c                  óê   — d„ } t          ddd¬¦  «        \  }}t          t          d¬¦  «        dg d¢id	| ¬
¦  «        }|                     ||¦  «         |j        dk    sJ ‚t          |d¦  «        rJ ‚dS )z^
    Test refit=callable, which adds flexibility in identifying the
    "best" estimator.
    c                 ó4  — t          ddd¬¦  «        \  }}t          t          d¬¦  «        dg d¢idd	¬
¦  «        }|                     ||¦  «         |j        dk    sJ ‚|j                             ¦   «         D ]}|| v sJ ‚Œ	| d                              ¦   «         S )z–
        A dummy function tests `refit=callable` interface.
        Return the index of a model that has the least
        `mean_test_score`.
        rö   r»   é*   rN  r  rÌ   ©ç{®Gáz„?r  rƒ   r<  Tr’  r   Úmean_test_score)r   r0   rL   ru   r>  râ   ÚkeysÚargmin)Ú
cv_resultsrs   rË   ræ   Úkeys        ri   Úrefit_callablez+test_refit_callable.<locals>.refit_callable‘  sÁ   € õ #¨S¸QÈRÐPÑPÔP‰ˆˆ1ÝÝ 2Ð&Ñ&Ô&Ø�.�.�.Ð!ØØð	
ñ 
ô 
ˆð 	�Š��1‰ŒˆàŒ !Ò#Ð#Ð#Ð#ð ”?×'Ò'Ñ)Ô)ð 	%ð 	%ˆCØ˜*Ð$Ð$Ð$Ð$Ð$àÐ+Ô,×3Ò3Ñ5Ô5Ð5rl   rö   r»   r–  rN  r  rÌ   r—  r<  r’  r   r{  N)r   r0   rL   ru   r>  rï   )rž  rs   rË   ræ   s       ri   Útest_refit_callablerŸ  ‹  s¡   € ð6ð 6ð 6õ2 ¨¸ÈÐLÑLÔL�D€A€qÝ
Ý˜rÐ"Ñ"Ô"Ø	ˆnˆnˆnÐØØð	ñ ô €Cð ‡G‚GˆAˆq�M„M€MàŒ?˜aÒÐÐÐå�s˜MÑ*Ô*Ð*Ð*Ð*Ð*Ð*rl   c                  ó  — d„ } t          ddd¬¦  «        \  }}t          t          d¬¦  «        ddd	gid
| ¬¦  «        }t          j        t
          d¬¦  «        5  |                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zb
    Test implementation catches the errors when 'best_index_' returns an
    invalid result.
    c                 ó   — dS )zT
        A dummy function tests when returned 'best_index_' is not integer.
        Nr—   ©rœ  s    ri   Úrefit_callable_invalid_typezEtest_refit_callable_invalid_type.<locals>.refit_callable_invalid_type¾  s	   € ð ˆtrl   rö   r»   r–  rN  r  rÌ   r  rƒ   r<  r’  z&best_index_ returned is not an integerr°   N)r   r0   rL   r²   r³   r  ru   )r£  rs   rË   ræ   s       ri   Ú test_refit_callable_invalid_typer¤  ¸  së   € ðð ð õ ¨¸ÈÐLÑLÔL�D€A€qå
Ý˜rÐ"Ñ"Ô"Ø	ˆs�AˆhˆØØ)ð	ñ ô €Cõ 
Œ•yÐ(PÐ	QÑ	QÔ	Qð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA=Á=BÂBÚout_bound_valueÚ	search_cvc                 ó  ‡ — ˆ fd„}t          ddd¬¦  «        \  }} |t          d¬¦  «        ddd	gid
|¬¦  «        }t          j        t          d¬¦  «        5  |                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zg
    Test implementation catches the errors when 'best_index_' returns an
    out of bound result.
    c                 ó   •— ‰S )zV
        A dummy function tests when returned 'best_index_' is out of bounds.
        r—   )rœ  r¥  s    €ri   Úrefit_callable_out_boundz?test_refit_callable_out_bound.<locals>.refit_callable_out_boundØ  s   ø€ ð Ðrl   rö   r»   r–  rN  r  rÌ   r  rƒ   r<  r’  zbest_index_ index out of ranger°   N)r   rL   r²   r³   rÐ   ru   )r¥  r¦  r©  rs   rË   ræ   s   `     ri   Útest_refit_callable_out_boundrª  Ð  sø   ø€ ðð ð ð ð õ ¨¸ÈÐLÑLÔL�D€A€qà
ˆ)Ý˜rÐ"Ñ"Ô"Ø	ˆs�AˆhˆØØ&ð	ñ ô €Cõ 
Œ•zÐ)IÐ	JÑ	JÔ	Jð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA<Á<B ÂB c                  ó  — d„ } t          ddd¬¦  «        \  }}t          t          ¦  «        ddœ}t          t	          d¬¦  «        d	g d
¢i|| ¬¦  «        }|                     ||¦  «         |j        dk    sJ ‚t          |d¦  «        rJ ‚dS )zC
    Test refit=callable in multiple metric evaluation setting
    c                 óB   — d| v sJ ‚| d                               ¦   «         S )z•
        A dummy function tests `refit=callable` interface.
        Return the index of a model that has the least
        `mean_test_prec`.
        Úmean_test_prec)r›  r¢  s    ri   rž  z8test_refit_callable_multi_metric.<locals>.refit_callableï  s-   € ð   :Ð-Ð-Ð-Ð-ØÐ*Ô+×2Ò2Ñ4Ô4Ð4rl   rö   r»   r–  rN  r<  )ÚAccuracyrB  r  rÌ   r—  r’  r   r{  N)r   r+   r(   r0   rL   ru   r>  rï   )rž  rs   rË   rä   ræ   s        ri   Ú test_refit_callable_multi_metricr¯  ê  s¶   € ð
5ð 5ð 5õ ¨¸ÈÐLÑLÔL�D€A€qÝ&¥~Ñ6Ô6ÀÐLÐL€GÝ
Ý˜rÐ"Ñ"Ô"Ø	ˆnˆnˆnÐØØð	ñ ô €Cð ‡G‚GˆAˆq�M„M€MàŒ?˜aÒÐÐÐå�s˜MÑ*Ô*Ð*Ð*Ð*Ð*Ð*rl   c                  ó’  — t          j        d¦  «                             dddd¦  «        } t          j        d¦  «                             ddd¦  «        }d	„ }d
„ }t          ||dg¬¦  «        }t	          |dg d¢i¦  «        }|                     | |¦  «                             t          t          ¦  «         t          |d¦  «        sJ ‚d S )Né,  r«   r÷   rº   r    i  é   é   c                 ó(   — | j         dd …         dk    S )Nrƒ   )r÷   rº   r    rx   ©rÊ   s    ri   Úcheck_Xz#test_gridsearch_nd.<locals>.check_X  s   € ØŒw�q�r�rŒ{˜iÒ'Ð'rl   c                 ó(   — | j         dd …         dk    S )Nrƒ   )r²  r³  rx   rµ  s    ri   Úcheck_yz#test_gridsearch_nd.<locals>.check_y  s   € ØŒw�q�r�rŒ{˜gÒ%Ð%rl   ru   )r¶  r¸  Úmethods_to_checkrg   r¹   râ   )
ro   rü   rý   rS   r0   ru   r†   rs   rË   rï   )ÚX_4dÚy_3dr¶  r¸  ræ   rç   s         ri   Útest_gridsearch_ndr¼    sß   € åŒ9�^Ñ$Ô$×,Ò,¨R°°A°qÑ9Ô9€DÝŒ9�[Ñ!Ô!×)Ò)¨"¨a°Ñ4Ô4€Dð(ð (ð (ð&ð &ð &õ ØØØ˜ðñ ô €Cõ
 ˜s [°)°)°)Ð$<Ñ=Ô=€KØ‡O‚O�D˜$ÑÔ×%Ò%¥a­Ñ+Ô+Ð+Ý�; Ñ.Ô.Ð.Ð.Ð.Ð.Ð.rl   c                  ó¢  — t          j        d¦  «                             dd¦  «        } t          j        dgdz  dgdz  z   ¦  «        }t	          d„ dg¬¦  «        }t          d	¬
¦  «        }t          |dg d¢i|¬¦  «        }|                     |                      ¦   «         |¦  «         	                    | |¦  «         t          |d¦  «        sJ ‚d S )Nrö   r«   r   r÷   rƒ   c                 ó,   — t          | t          ¦  «        S re   ©rÎ   r§   rµ  s    ri   ú<lambda>z test_X_as_list.<locals>.<lambda>"  ó   € �* Q­Ñ-Ô-€ rl   ru   )r¶  r¹  rº   r&  rg   r¹   rì   râ   ©ro   rü   rý   rþ   rS   r5   r0   ru   r|  r†   rï   ©rs   rË   ræ   rÛ   rç   s        ri   Útest_X_as_listrÄ    sÕ   € å
Œ	�#‰Œ×Ò˜r 2Ñ&Ô&€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€Aå
Ø-Ð-Ø˜ðñ ô €Cõ 
˜Ð	Ñ	Ô	€BÝ˜s [°)°)°)Ð$<ÀÐDÑDÔD€KØ‡O‚O�A—H’H‘J”J Ñ"Ô"×(Ò(¨¨AÑ.Ô.Ð.Ý�; Ñ.Ô.Ð.Ð.Ð.Ð.Ð.rl   c                  ó¢  — t          j        d¦  «                             dd¦  «        } t          j        dgdz  dgdz  z   ¦  «        }t	          d„ dg¬¦  «        }t          d	¬
¦  «        }t          |dg d¢i|¬¦  «        }|                     | |                     ¦   «         ¦  «         	                    | |¦  «         t          |d¦  «        sJ ‚d S )Nrö   r«   r   r÷   rƒ   c                 ó,   — t          | t          ¦  «        S re   r¿  rµ  s    ri   rÀ  z test_y_as_list.<locals>.<lambda>1  rÁ  rl   ru   )r¸  r¹  rº   r&  rg   r¹   rì   râ   rÂ  rÃ  s        ri   Útest_y_as_listrÇ  +  sÕ   € å
Œ	�#‰Œ×Ò˜r 2Ñ&Ô&€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€Aå
Ø-Ð-Ø˜ðñ ô €Cõ 
˜Ð	Ñ	Ô	€BÝ˜s [°)°)°)Ð$<ÀÐDÑDÔD€KØ‡O‚O�A�q—x’x‘z”zÑ"Ô"×(Ò(¨¨AÑ.Ô.Ð.Ý�; Ñ.Ô.Ð.Ð.Ð.Ð.Ð.rl   c                  óT  ‡‡— t           t           fg} 	 ddlm}m} |                      ||f¦  «         n# t
          $ r Y nw xY wt          j        d¦  «                             dd¦  «        }t          j	        dgdz  dgdz  z   ¦  «        }| D ]›\  ŠŠ ‰|¦  «         ‰|¦  «        }}ˆfd„}ˆfd„}t          ||¬	¦  «        }	t          |	d
g d¢i¦  «        }
|
                     ||¦  «                             ||¦  «         |
                     |¦  «         t          |
d¦  «        sJ ‚Œœd S )Nr   )Ú	DataFrameÚSeriesrö   r«   r÷   rƒ   c                 ó$   •— t          | ‰¦  «        S re   ©rÎ   )rÊ   ÚInputFeatureTypes    €ri   Úcheck_dfz#test_pandas_input.<locals>.check_dfK  s   ø€ Ý˜aÐ!1Ñ2Ô2Ð2rl   c                 ó$   •— t          | ‰¦  «        S re   rÌ  )rÊ   Ú
TargetTypes    €ri   Úcheck_seriesz'test_pandas_input.<locals>.check_seriesN  s   ø€ Ý˜a Ñ,Ô,Ð,rl   )r¶  r¸  rg   r¹   râ   )rT   ÚpandasrÉ  rÊ  ÚappendÚImportErrorro   rü   rý   rþ   rS   r0   ru   r†   r{   rï   )ÚtypesrÉ  rÊ  rs   rË   ÚX_dfÚy_serrÎ  rÑ  ræ   rç   rÍ  rÐ  s              @@ri   Útest_pandas_inputrØ  :  s‘  øø€ å�]Ð+Ð,€EðØ,Ð,Ð,Ð,Ð,Ð,Ð,Ð,à�Š�i Ð(Ñ)Ô)Ð)Ð)øÝð ð ð Øˆðøøøõ 	Œ	�#‰Œ×Ò˜r 2Ñ&Ô&€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€Aà(-ð 3ð 3Ñ$Ð˜*à&Ð& qÑ)Ô)¨:¨:°a©=¬=ˆeˆð	3ð 	3ð 	3ð 	3ð 	3ð	-ð 	-ð 	-ð 	-ð 	-õ !¨¸<ÐHÑHÔHˆå" 3¨°i°i°iÐ(@ÑAÔAˆØ�Š˜˜eÑ$Ô$×*Ò*¨4°Ñ7Ô7Ð7Ø×Ò˜DÑ!Ô!Ð!Ý�{ MÑ2Ô2Ð2Ð2Ð2Ð2ð3ð 3s   “3 ³
A ¿A c                  ó$  — t          dd¬¦  «        \  } }t          ddd¬¦  «        }ddg}d	D ]N}t          |t          g d
¢¬¦  «        ||¬¦  «        }|                     | |¦  «         |j        d         dk    sJ ‚ŒOt          |t          g d
¢¬¦  «        d¬¦  «        }|                     | |¦  «         |j        d         dk    sJ ‚t          |t          g d
¢¬¦  «        ¬¦  «        }|                     | ¦  «         |j        d         dk    sJ ‚d S )Né2   r   ©r  r  r*  rƒ   )r  ÚinitÚn_initÚadjusted_rand_scoreÚfowlkes_mallows_score)rÞ  rß  )r    rº   r»   )Ú
n_clusters)rñ   rä   r6  rà  rº   ©rñ   rä   )rñ   r»   )r   r   r0   Údictru   r  )rs   rË   Úkmrä   r6  rç   s         ri   Útest_unsupervised_grid_searchrä  Y  sV  € å °Ð3Ñ3Ô3�D€A€qÝ	˜Q X°aÐ	8Ñ	8Ô	8€Bð %Ð&=Ð>€GØAð ;ð ;ˆÝ"Ø�4¨9¨9¨9Ð5Ñ5Ô5¸wÈeð
ñ 
ô 
ˆð 	�Š˜˜1ÑÔÐàÔ'¨Ô5¸Ò:Ð:Ð:Ð:Ð:õ Ø
•t y y yÐ1Ñ1Ô1Ð;Rðñ ô €Kð ‡O‚O�A�qÑÔÐØÔ# LÔ1°QÒ6Ð6Ð6Ð6õ ˜r­d¸i¸i¸iÐ.HÑ.HÔ.HÐIÑIÔI€KØ‡O‚O�AÑÔÐØÔ# LÔ1°QÒ6Ð6Ð6Ð6Ð6Ð6rl   c                  ó  — d„ } t          ddddgddgddgg¬¦  «        \  }}t          t          ¦   «         t          g d¢¬¦  «        | ¬¦  «        }|                     |¦  «         |j        d	         dk    sJ ‚|j        d
k    sJ ‚d S )Nc                 ó    — | j         dk    rdndS )Nr  r–  r   ©Ú	bandwidth)Ú	estimatorrs   s     ri   Úcustom_scoringz2test_gridsearch_no_predict.<locals>.custom_scoringx  s   € ØÔ(¨CÒ/Ð/ˆrˆr°QÐ6rl   r  rƒ   r   )Úcluster_stdr  r	  r—  rç  rá  rè  r–  )r   r0   rB   râ  ru   r  r{  )rê  rs   Ú_rb  s       ri   Útest_gridsearch_no_predictrí  u  sµ   € ð7ð 7ð 7õ  #°AÀÀAÀÈÈAÈÐQRÐTUÐPVÐ?WÐXÑXÔX�D€A€qÝÝ‰ŒÝ . . .Ð1Ñ1Ô1Øðñ ô €Fð
 ‡J‚Jˆq�M„M€MØÔ˜{Ô+¨sÒ2Ð2Ð2Ð2ØÔ Ò#Ð#Ð#Ð#Ð#Ð#rl   c                  óÎ  — ddgt          dd¦  «        dœ} t          | dd¬¦  «        }d„ |D ¦   «         }t          |¦  «        dk    sJ ‚|D ]%}|d	         d
v sJ ‚d|d         cxk    rdk    sn J ‚Œ&dg d¢i} t          | dd¬¦  «        }d„ |D ¦   «         d„ |D ¦   «         k    sJ ‚dt          dd¦  «        i} t          | dd¬¦  «        }d„ |D ¦   «         d„ |D ¦   «         k    sJ ‚d S )NrU  Úlinearr   rƒ   )rV  rÌ   r«   )Úparam_distributionsr­   r  c                 ó   — g | ]}|‘ŒS r—   r—   ©r£   rÊ   s     ri   r¦   z&test_param_sampler.<locals>.<listcomp>Œ  s   € Ð"Ð"Ð"�QˆqÐ"Ð"Ð"rl   rV  )rU  rï  rÌ   )r   rƒ   r    rº   r»   r÷   rÁ   r²  é   é	   r«   rº   c                 ó   — g | ]}|‘ŒS r—   r—   rò  s     ri   r¦   z&test_param_sampler.<locals>.<listcomp>—  ó   € ÐÐÐ�!ˆAÐÐÐrl   c                 ó   — g | ]}|‘ŒS r—   r—   rò  s     ri   r¦   z&test_param_sampler.<locals>.<listcomp>—  ó   € Ð#7Ð#7Ð#7¨! AÐ#7Ð#7Ð#7rl   c                 ó   — g | ]}|‘ŒS r—   r—   rò  s     ri   r¦   z&test_param_sampler.<locals>.<listcomp>�  rö  rl   c                 ó   — g | ]}|‘ŒS r—   r—   rò  s     ri   r¦   z&test_param_sampler.<locals>.<listcomp>�  rø  rl   )r   r9   rn   )rð  ÚsamplerÚsamplesÚsamples       ri   Útest_param_samplerrþ  †  sy  € à&+¨XÐ%6½WÀQÈ¹]¼]ÐKÐKÐÝØ/¸Èðñ ô €Gð #Ð"˜'Ð"Ñ"Ô"€GÝˆw‰<Œ<˜2ÒÐÐÐØð %ð %ˆØ�hÔÐ#4Ð4Ð4Ð4Ð4Ø�F˜3”KÐ$Ð$Ò$Ð$ 1Ò$Ð$Ð$Ð$Ð$Ð$Ð$ð Ð BÐ BÐ BÐCÐÝØ/¸Èðñ ô €Gð  Ð�wÐÑÔÐ#7Ð#7¨wÐ#7Ñ#7Ô#7Ò7Ð7Ð7Ð7à¥¨¨1¡¤Ð.ÐÝØ/¸Èðñ ô €Gð  Ð�wÐÑÔÐ#7Ð#7¨wÐ#7Ñ#7Ô#7Ò7Ð7Ð7Ð7Ð7Ð7rl   c                 ó|  ‡— | j         Št          ˆfd„|D ¦   «         ¦  «        sJ ‚ˆfd„|D ¦   «         |k    sJ ‚t          ˆfd„|D ¦   «         ¦  «        rJ ‚t          ˆfd„|D ¦   «         ¦  «        sJ ‚| j        r| j                             ¦   «         ndg}|D ]"}‰d|z           j        t          j        k    sJ ‚Œ#d S )Nc              3   ób   •K  — | ])}t          ‰|         t          j        j        ¦  «        V — Œ*d S re   ©rÎ   ro   ÚmaÚMaskedArray)r£   Úparamrœ  s     €ri   rÈ   z/check_cv_results_array_types.<locals>.<genexpr>¥  s7   øè è € ÐXÐXÀE�z˜* UÔ+­R¬UÔ->Ñ?Ô?ÐXÐXÐXÐXÐXÐXrl   c                 ó6   •— i | ]}|‰|         j         j        “ŒS r—   )ÚdtypeÚkind©r£   r�  rœ  s     €ri   ú
<dictcomp>z0check_cv_results_array_types.<locals>.<dictcomp>¦  s2   ø€ ð ð ð Ø,/ˆˆZ˜Œ_Ô"Ô'ðð ð rl   c              3   ób   •K  — | ])}t          ‰|         t          j        j        ¦  «        V — Œ*d S re   r  r  s     €ri   rÈ   z/check_cv_results_array_types.<locals>.<genexpr>©  s6   øè è € ÐXÐXÀc•:˜j¨œo­r¬uÔ/@ÑAÔAÐXÐXÐXÐXÐXÐXrl   c              3   óx   •K  — | ]4}|                      d ¦  «        °‰|         j        t          j        k    V — Œ5dS )ÚrankN)Ú
startswithr  ro   Úfloat64r  s     €ri   rÈ   z/check_cv_results_array_types.<locals>.<genexpr>ª  sW   øè è € ð ð àØ�~Š~˜fÑ%Ô%ðØ�3ŒÔ¥¤Ò+ðð ð ð ð ð rl   r†   zrank_test_%s)	râ   ÚallÚanyÚmultimetric_Úscorer_rš  r  ro   Úint32)rb  Ú
param_keysÚ
score_keysÚexpected_cv_results_kindsÚscorer_keysr�  rœ  s         @ri   Úcheck_cv_results_array_typesr     sD  ø€ ð Ô#€JÝÐXÐXÐXÐXÈZÐXÑXÔXÑXÔXÐXÐXÐXðð ð ð Ø3=ðñ ô à	"ò#ð #ð #ð #õ ÐXÐXÐXÐXÈZÐXÑXÔXÑXÔXÐXÐXÐXÝð ð ð ð àðñ ô ñ ô ð ð ð ð ,2Ô+>ÐM�&”.×%Ò%Ñ'Ô'Ð'ÀWÀI€Kàð Bð BˆØ˜.¨3Ñ.Ô/Ô5½¼ÒAÐAÐAÐAÐAðBð Brl   r—   c                 óÚ   ‡ ‡— ||z   |z   }t          t          ‰                      ¦   «         ¦  «        t          |dz   ¦  «        ¦  «         t          ˆ ˆfd„||z   D ¦   «         ¦  «        sJ ‚d S )N)rŒ   c              3   ó<   •K  — | ]}‰|         j         ‰fk    V — Œd S re   rx   )r£   r�  rœ  Ún_cands     €€ri   rÈ   z(check_cv_results_keys.<locals>.<genexpr>º  s1   øè è € ÐUÐU°cˆz˜#ŒÔ$¨¨	Ò1ÐUÐUÐUÐUÐUÐUrl   )r]   rÄ   rš  r  )rœ  r  r  r  Ú
extra_keysÚall_keyss   `  `  ri   Úcheck_cv_results_keysr  ¶  sy   øø€ à˜JÑ&¨Ñ3€HÝ•v˜jŸošoÑ/Ô/Ñ0Ô0µ&¸ÀKÑ9OÑ2PÔ2PÑQÔQÐQÝÐUÐUÐUÐUÐU¸ZÈ*Ñ=TÐUÑUÔUÑUÔUÐUÐUÐUÐUÐUrl   c                  óî  ‡— t          ddd¬¦  «        \  } }d}t          dgddgd	dg¬
¦  «        t          dgddg¬¦  «        g}d}d}|}t          t          ¦   «         d|d¬¦  «        }|                     | |¦  «         |j        Št          ‰d         dk    ¦  «        sJ ‚ˆfd„|D ¦   «         sJ ‚ˆfd„|D ¦   «         sJ ‚dddddœ}t          ||||¦  «         t          ‰|||¦  «         |j        Šˆfd„t          |¦  «        D ¦   «         }	t          |	¦  «        sJ ‚t          |	¦  «        dk    sJ ‚ˆfd„t          |¦  «        D ¦   «         }
t          |
¦  «        sJ ‚t          |
¦  «        dk    sJ ‚d S )NrÚ  r»   r–  rN  rÁ   rU  rƒ   r«   r  ©rV  rÌ   rW  Úpolyr    ©rV  Údegree©Úparam_CÚparam_degreeÚparam_gammaÚparam_kernel©r™  Úmean_train_scoreÚrank_test_scoreÚsplit0_test_scoreÚsplit1_test_scoreÚsplit2_test_scoreÚsplit0_train_scoreÚsplit1_train_scoreÚsplit2_train_scoreÚstd_test_scoreÚstd_train_scoreÚmean_fit_timeÚstd_fit_timeÚmean_score_timeÚstd_score_timerº   T)rÛ   rñ   Úreturn_train_scorer+  c              3   óV   •K  — | ]#}|d k    ¯t          ‰|         dk    ¦  «        V — Œ$dS )r+  r   N©r  ©r£   Úkrœ  s     €ri   rÈ   z.test_grid_search_cv_results.<locals>.<genexpr>ê  s?   øè è € ÐRÐR¨¸1Ð@QÒ;QÐ;Q�C�
˜1” Ò"Ñ#Ô#Ð;QÐ;QÐ;QÐ;QÐRÐRrl   c              3   ó^   •K  — | ]'}d |v¯|dk    ¯t          ‰|         dk    ¦  «        V — Œ(dS )Útimer+  rƒ   Nr:  r;  s     €ri   rÈ   z.test_grid_search_cv_results.<locals>.<genexpr>ë  sT   øè è € ð ð àØ˜ˆ?ˆ?˜qÐ$5Ò5Ð5õ 	ˆJ�qŒM˜QÒÑÔà5Ð5Ð5Ð5ðð rl   r¤   ÚfÚOc                 ó¨   •— g | ]N}‰d          |         dk    ¯‰d         j         |         o&‰d         j         |         o‰d         j         |          ‘ŒOS )r(  r!  r%  r'  r&  ©Úmask©r£   r¤   rœ  s     €ri   r¦   z/test_grid_search_cv_results.<locals>.<listcomp>þ  sv   ø€ ð ð ð ð Ø�nÔ% aÔ(¨FÒ2Ð2ð �yÔ!Ô& qÔ)ð 7Ø˜=Ô)Ô.¨qÔ1ð7à˜~Ô.Ô3°AÔ6Ð6ð 3Ð2Ð2rl   c                 óª   •— g | ]O}‰d          |         dk    ¯‰d         j         |          o&‰d         j         |          o‰d         j         |         ‘ŒPS )r(  rU  r%  r'  r&  rB  rD  s     €ri   r¦   z/test_grid_search_cv_results.<locals>.<listcomp>
  sy   ø€ ð ð ð ð Ø�nÔ% aÔ(¨EÒ1Ð1ð ˜9Ô%Ô*¨1Ô-Ð-ð 3Ø˜}Ô-Ô2°1Ô5Ð5ð3à˜>Ô*Ô/°Ô2ð 2Ð1Ð1rl   )r   râ  r0   rK   ru   râ   r  r  r  r¨   rn   )rs   rË   Ún_grid_pointsrŒ   r  r  Ún_candidatesrb  r  Úpoly_resultsÚrbf_resultsrœ  s              @ri   Útest_grid_search_cv_resultsrJ  ½  sU  ø€ Ý¨¸ÈÐKÑKÔK�D€A€qà€Måàðð �"ˆgØ˜�(ð	
ñ 	
ô 	
õ 	àðð �q�6ð		
ñ 	
ô 	
ð€Fð  L€Jð€Jð" !€Lå�#™%œ% A°&ÈTÐRÑRÔR€FØ
‡J‚Jˆq�!ÑÔÐØÔ#€JåˆzÐ+Ô,°Ò1Ñ2Ô2Ð2Ð2Ð2ØRÐRÐRÐR¨ZÐRÑRÔRÐRÐRÐRðð ð ð àðñ ô ð ð ð ð ØØØð	!ð !Ðõ !Ø�
˜JÐ(Añô ð õ ˜* j°*¸lÑKÔKÐKàÔ#€Jðð ð ð õ �|Ñ$Ô$ðñ ô €Lõ ˆ|ÑÔÐÐÐÝˆ|ÑÔ Ò!Ð!Ð!Ð!ðð ð ð õ �|Ñ$Ô$ðñ ô €Kõ ˆ{ÑÔÐÐÐÝˆ{ÑÔ˜qÒ Ð Ð Ð Ð Ð rl   c                  ó  ‡	— t          ddd¬¦  «        \  } }d}dgt          d¬¦  «        t          d	¬¦  «        d
œdgddgdœg}d}d}|}t          t          ¦   «         |d|d¬¦  «        }|                     | |¦  «         |j        Š	dddddœ}t          ||||¦  «         t          ‰	|||¦  «         t          ˆ	fd„t          |¦  «        D ¦   «         ¦  «        sJ ‚t          ˆ	fd„t          |¦  «        D ¦   «         ¦  «        sJ ‚d S )NrÚ  r»   r–  rN  é   rU  r«   )Úscaler  r   r!  r    rº   r"  r$  r)  T)r­   rÛ   rð  r8  r?  r¤   r@  c              3   ó°   •K  — | ]P}‰d          |         dk    ¯‰d         j         |         o&‰d         j         |         o‰d         j         |          V — ŒQdS )r(  r!  r%  r'  r&  NrB  rD  s     €ri   rÈ   z0test_random_search_cv_results.<locals>.<genexpr>H  s‚   øè è € ð ð ð Ø�nÔ% aÔ(¨FÒ2Ð2ð �yÔ!Ô& qÔ)ð 7Ø˜=Ô)Ô.¨qÔ1ð7à˜~Ô.Ô3°AÔ6Ð6ð 3Ð2Ð2Ð2ðð rl   c              3   ó²   •K  — | ]Q}‰d          |         dk    ¯‰d         j         |          o&‰d         j         |          o‰d         j         |         V — ŒRdS )r(  rU  r%  r'  r&  NrB  rD  s     €ri   rÈ   z0test_random_search_cv_results.<locals>.<genexpr>Q  s…   øè è € ð ð ð Ø�nÔ% aÔ(¨EÒ1Ð1ð ˜9Ô%Ô*¨1Ô-Ð-ð 3Ø˜}Ô-Ô2°1Ô5Ð5ð3à˜>Ô*Ô/°Ô2ð 2Ð1Ð1Ð1ðð rl   )
r   r   r:   rK   ru   râ   r  r  r  r¨   )
rs   rË   Ún_search_iterrŒ   r  r  rG  rb  r  rœ  s
            @ri   Útest_random_search_cv_resultsrQ    sª  ø€ Ý¨¸ÈÐKÑKÔK�D€A€qà€Mð �7¥¨R ¡¤½5ÀsÐ;KÑ;KÔ;KÐLÐLØ�8¨¨1 vÐ.Ð.ð€Fð L€Jð€Jð" !€LåÝ‰ŒØØØ"Øðñ ô €Fð ‡J‚Jˆq�!ÑÔÐØÔ#€Jð ØØØð	!ð !Ðõ !Ø�
˜JÐ(Añô ð õ ˜* j°*¸lÑKÔKÐKÝð ð ð ð õ �|Ñ$Ô$ðñ ô ñ ô ð ð ð õ ð ð ð ð õ �|Ñ$Ô$ðñ ô ñ ô ð ð ð ð ð rl   zSearchCV, specialized_paramsrñ   rÌ   )rð  r­   c                 ó¬  ‡— t          ddgddgddgddggdddd¬¦  «        \  }}t          j        |j        d         t          ¬¦  «        }d|t          j        |dk    ¦  «        d         d d d…         <   d|t          j        |dk    ¦  «        d         d d d…         <   || g| |gg}t          ¦   «         |d	d
œ} | di |¤|¤ŽŠ‰                     ||¦  «         t          j        ˆfd„t          ‰j
        ¦  «        D ¦   «         ¦  «        }‰j        d         d         }‰j        d         d         }	t          j        ˆfd„t          ‰j
        ¦  «        D ¦   «         ¦  «        }
‰j        d         d         }‰j        d         d         }‰j        d         d         dk    sJ ‚t          |ddg¦  «         t          |
ddg¦  «         |t          j        t          j        |¦  «        ¦  «        k    sJ ‚|	t          j        t          j        |¦  «        ¦  «        k    sJ ‚|t          j        d¦  «        k    sJ ‚|t          j        d¦  «        k    sJ ‚d S )Nr   rƒ   r  FéP   )r	  r  rë  Úshuffler  ©r  r    T)ré  rÛ   r8  c                 ó<   •— g | ]}‰j         d |z           d         ‘ŒS )úsplit%d_test_scorer   ©râ   ©r£   Úsrb  s     €ri   r¦   z+test_search_default_iid.<locals>.<listcomp>|  s<   ø€ ð 	
ð 	
ð 	
àð ÔÐ3°aÑ7Ô8¸Ô;ð	
ð 	
ð 	
rl   r™  r2  c                 ó<   •— g | ]}‰j         d |z           d         ‘ŒS )zsplit%d_train_scorer   rX  rY  s     €ri   r¦   z+test_search_default_iid.<locals>.<listcomp>…  s<   ø€ ð 	
ð 	
ð 	
àð ÔÐ4°qÑ8Ô9¸!Ô<ð	
ð 	
ð 	
rl   r*  r3  r%  gUUUUUUÕ?r—   )r   ro   r   ry   ÚboolÚwhererK   ru   rþ   r¨   Ú	n_splits_râ   rY   r²   Úapproxrg  Ústd)rô   Úspecialized_paramsrs   rË   rC  rÛ   Úcommon_paramsÚtest_cv_scoresÚ	test_meanÚtest_stdÚtrain_cv_scoresÚ
train_meanÚ	train_stdrb  s                @ri   Útest_search_default_iidri  \  s­  ø€ õ Ø�Q�˜!˜Q˜ ! Q ¨!¨Q¨Ð0ØØØØðñ ô �D€A€qõ Œ7�1”7˜1”:¥TÐ*Ñ*Ô*€DØ%&€D�Œ�!�q’&Ñ	Ô	˜!Ô	˜S˜S˜q˜SÔ	!Ñ"Ø%&€D�Œ�!�q’&Ñ	Ô	˜!Ô	˜S˜S˜q˜SÔ	!Ñ"ð �$�ˆ-˜4˜% ˜Ð	'€Bå"%¡%¤%¨rÈÐNÐN€MØˆXÐ<Ð<˜Ð<Ð);Ð<Ð<€FØ
‡J‚Jˆq�!ÑÔÐå”Xð	
ð 	
ð 	
ð 	
å˜6Ô+Ñ,Ô,ð	
ñ 	
ô 	
ñô €Nð Ô"Ð#4Ô5°aÔ8€IØÔ!Ð"2Ô3°AÔ6€Hå”hð	
ð 	
ð 	
ð 	
å˜6Ô+Ñ,Ô,ð	
ñ 	
ô 	
ñô €Oð Ô#Ð$6Ô7¸Ô:€JØÔ"Ð#4Ô5°aÔ8€IàÔ˜iÔ(¨Ô+¨qÒ0Ð0Ð0Ð0å�N Q¨	 NÑ3Ô3Ð3Ý�O a¨ VÑ,Ô,Ð,à�œ¥b¤g¨nÑ&=Ô&=Ñ>Ô>Ò>Ð>Ð>Ð>Ø•v”}¥R¤V¨NÑ%;Ô%;Ñ<Ô<Ò<Ð<Ð<Ð<ð �œ qÑ)Ô)Ò)Ð)Ð)Ð)Ø�œ aÑ(Ô(Ò(Ð(Ð(Ð(Ð(Ð(rl   c                  ó”  — t          ddd¬¦  «        \  } }d}t          dgddgd	dg¬
¦  «        t          dgddg¬¦  «        g}g }t          t          ¦  «        t          t          ¦  «        dœddfD ]M}t          t          ¦   «         |||d¬¦  «        }|                     | |¦  «         |                     |¦  «         ŒNt          |Ž  d S )NrÚ  r»   r–  rN  rº   rU  rƒ   r«   r  r   r!  r    r"  ©r  r@  r  r@  F)rÛ   rñ   rä   r6  )
r   râ  r+   r(   r-   r0   rK   ru   rÓ  Ú*compare_cv_results_multimetric_with_single)rs   rË   r'  rŒ   Úgrid_searchesrä   rç   s          ri   Ú'test_grid_search_cv_results_multimetricrn  ›  s  € Ý¨¸ÈÐKÑKÔK�D€A€qà€Håàðð �"ˆgØ˜�(ð	
ñ 	
ô 	
õ 	àðð �q�6ð		
ñ 	
ô 	
ð€Fð  €Må ¥Ñ0Ô0½KÍÑ<UÔ<UÐVÐVØØðð 	*ð 	*ˆõ
 #Ý‰EŒE�h¨6¸7È%ð
ñ 
ô 
ˆð 	�Š˜˜1ÑÔÐØ×Ò˜[Ñ)Ô)Ð)Ð)å.°Ð>Ð>Ð>Ð>rl   c                  ó¸  — t          ddd¬¦  «        \  } }d}d}t          t          j        ddd¦  «        ¬	¦  «        }d
D ]™}g }dD ]l}|rt	          |t
          ¦  «        rd}t          d¬¦  «        }t          ||||||d¬¦  «        }	|	                     | |¦  «         | 	                    |	¦  «         Œmt          |Ž  t          |d         |d         |¦  «         Œšd S )NrÚ  r»   r–  rN  rº   rL  éüÿÿÿrƒ   ©rÌ   ©TF)rk  r  r@  r  r  r   )r­   rÛ   rð  rä   r6  r  )r   râ  ro   ÚlogspacerÎ   rÃ   r%   r:   ru   rÓ  rl  Ú)compare_refit_methods_when_refit_with_acc)
rs   rË   r'  rP  rŒ   r6  Úrandom_searchesrä   ræ   r9  s
             ri   Ú)test_random_search_cv_results_multimetricrv  ¾  s(  € Ý¨¸ÈÐKÑKÔK�D€A€qà€HØ€Må•B”K  A qÑ)Ô)Ð*Ñ*Ô*€FØð 
ð 
ˆØˆØEð 	2ð 	2ˆGàð #� G­UÑ3Ô3ð #Ø"�Ý$°"Ð5Ñ5Ô5ˆCÝ.ØØ$ØØ$*ØØØðñ ô ˆMð ×Ò˜a Ñ#Ô#Ð#Ø×"Ò" =Ñ1Ô1Ð1Ð1å2°OÐDÐDÝ1Ø˜AÔ °Ô 2°Eñ	
ô 	
ð 	
ð 	
ð)
ð 
rl   c                 ó  ‡— | j         sJ ‚t          t          | j        ¦  «        d¦  «         | j        Šd„ |j                             ¦   «         D ¦   «         }|                     d„ |j                             ¦   «         D ¦   «         ¦  «         t          ˆfd„dD ¦   «         ¦  «        sJ ‚t          j	         
                    d„ ‰                     ¦   «         D ¦   «         d„ |                     ¦   «         D ¦   «         ¦  «         dS )	z€Compare multi-metric cv_results with the ensemble of multiple
    single metric cv_results from single metric grid/random searchrk  c                 óB   — i | ]\  }}t          j        d d|¦  «        |“ŒS )ú_score$Ú	_accuracy©r`  Úsub©r£   r<  Úvs      ri   r	  z>compare_cv_results_multimetric_with_single.<locals>.<dictcomp>æ  s9   € ð ð ð Ù15°°A�Œˆy˜+ qÑ)Ô)¨1ðð ð rl   c                 óB   — i | ]\  }}t          j        d d|¦  «        |“ŒS )ry  Ú_recallr{  r}  s      ri   r	  z>compare_cv_results_multimetric_with_single.<locals>.<dictcomp>ê  s,   € ÐWÐWÐW±°°1�Œ�	˜9 aÑ	(Ô	(¨!ÐWÐWÐWrl   c              3   óT   •K  — | ]"}t          j        ‰|         d k    ¦  «        V — Œ#dS )rƒ   N)ro   r  )r£   r<  Úcv_results_multis     €ri   rÈ   z=compare_cv_results_multimetric_with_single.<locals>.<genexpr>ð  sL   øè è € ð 	
ð 	
àõ ŒFÐ# AÔ&¨!Ò+Ñ,Ô,ð	
ð 	
ð 	
ð 	
ð 	
ð 	
rl   )r6  r7  r4  r5  c                 óD   — i | ]\  }}|                      d ¦  «        °||“ŒS ©Ú_time©Úendswithr}  s      ri   r	  z>compare_cv_results_multimetric_with_single.<locals>.<dictcomp>ÿ  s/   € ÐNÐNÐN‘$�!�Q¸!¿*º*ÀWÑ:MÔ:MÐNˆˆAÐNÐNÐNrl   c                 óD   — i | ]\  }}|                      d ¦  «        °||“ŒS r„  r†  r}  s      ri   r	  z>compare_cv_results_multimetric_with_single.<locals>.<dictcomp>   s/   € ÐPÐPÐP‘$�!�Q¸A¿JºJÀwÑ<OÔ<OÐPˆˆAÐPÐPÐPrl   N)r  r]   rÄ   r  râ   rÅ   Úupdater  ro   ÚtestingÚassert_equal)Úsearch_multiÚ
search_accÚ
search_recÚcv_results_acc_recr‚  s       @ri   rl  rl  Þ  sI  ø€ ð Ô$Ð$Ð$Ð$Ý•v˜lÔ2Ñ3Ô3Ð5KÑLÔLÐLà#Ô/Ððð Ø9CÔ9O×9UÒ9UÑ9WÔ9Wðñ ô Ðð ×ÒØWÐW¸
Ô8N×8TÒ8TÑ8VÔ8VÐWÑWÔWñô ð õ ð	
ð 	
ð 	
ð 	
ðð	
ñ 	
ô 	
ñ
ô 
ð 
ð 
ð 
õ „J×ÒØNÐNÐ*×0Ò0Ñ2Ô2ÐNÑNÔNØPÐPÐ,×2Ò2Ñ4Ô4ÐPÑPÔPñô ð ð ð rl   c           	      óÈ  — |j         |k    sJ ‚|r| j         dk    sJ ‚n| j         rJ ‚dS t          ddd¬¦  «        \  }}dD ]@}t           t          | |¦  «        |¦  «         t          ||¦  «        |¦  «        ¦  «         ŒAt          |                      ||¦  «        |                     ||¦  «        ¦  «         dD ]&}t          | |¦  «        t          ||¦  «        k    sJ ‚Œ'dS )	zDCompare refit multi-metric search methods with single metric methodsr  Nrö   r»   r–  rN  )r{   r”   r•   )r>  r{  r  )r6  r   r[   rC  r†   )rŒ  r�  r6  rs   rË   Úmethodr�  s          ri   rt  rt    s,  € àÔ˜uÒ$Ð$Ð$Ð$Øð ØÔ! ZÒ/Ð/Ð/Ð/Ð/àÔ%Ð%Ð%Ð%Øˆå °ÀÐCÑCÔC�D€A€qØCð 
ð 
ˆÝØ)�G�L &Ñ)Ô)¨!Ñ,Ô,Ð.I­g°jÀ&Ñ.IÔ.IÈ!Ñ.LÔ.Lñ	
ô 	
ð 	
ð 	
õ ˜×*Ò*¨1¨aÑ0Ô0°*×2BÒ2BÀ1ÀaÑ2HÔ2HÑIÔIÐIØ=ð Fð FˆÝ�| SÑ)Ô)­W°ZÀÑ-EÔ-EÒEÐEÐEÐEÐEðFð Frl   Ú	max_depthr÷   )ré  rð  ©ré  rñ   c                 ó®  — t          ddd¬¦  «        \  }}t          | ¦  «        } |                      ||¦  «         d| j        j        › d�}d}t          j        t          |¬¦  «        5 }|                      |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j
        j        t          ¦  «        sJ ‚|t          |j
        j        ¦  «        k    sJ ‚d S )	Nrö   r»   r–  rN  r?  z"' has no attribute 'score_samples'z@'DecisionTreeClassifier' object has no attribute 'score_samples'r°   )r   r   ru   Ú	__class__r�   r²   r³   r›   Úscore_samplesrÎ   rD  rE  rF  )r¦  rs   rË   rH  rI  rJ  s         ri   Ú"test_search_cv_score_samples_errorr—    s  € õ  °ÀÐCÑCÔC�D€A€qÝ�iÑ Ô €IØ‡M‚M�!�QÑÔÐð U�IÔ'Ô0ÐTÐTÐT€IØR€Iå	Œ•~¨YÐ	7Ñ	7Ô	7ð #¸9Ø×Ò Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #å�i”oÔ/µÑ@Ô@Ð@Ð@Ð@Ø�˜IœOÔ5Ñ6Ô6Ò6Ð6Ð6Ð6Ð6Ð6s   Á(B
Â
BÂBc                  ó&  — d„ } t          | ¦  «        }t          ddd¬¦  «        \  }}t          j        |¦  «        }t	          t          ¦   «         dddgi¬¦  «        }|                     | ¬	¦  «         t          j        t          d
¬¦  «        5  | 
                    |||¬¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¬	¦  «         t          j        t          d
¬¦  «        5  | 
                    |||¬¦  «         ddd¦  «         n# 1 swxY w Y   |                     t          |d¬¦  «        d¬¦  «         t          j        t          d¬¦  «        5  | 
                    |||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zhChecks that fitting with sample_weight raises a warning if the scorer does not
    support sample_weightc                 ó   — dS )z9Fake scoring function that does not support sample_weightrÍ   r—   )Úy_truerh  s     ri   Úfake_score_funcz>test_unsupported_sample_weight_scorer.<locals>.fake_score_func7  s   € àˆsrl   r«   r»   r–  rN  rÌ   rƒ   r“  r  zdoes not support sample_weightr°   ©Úsample_weightNr  )Úfaker  Fr’  z2The scoring fake=.* does not support sample_weight)r+   r   ro   Ú	ones_liker0   r%   r�   r²   ÚwarnsÚUserWarningru   râ  )r›  Úfake_scorerrs   rË   Úswr¦  s         ri   Ú%test_unsupported_sample_weight_scorerr¤  3  sk  € ðð ð õ ˜oÑ.Ô.€Kå¨¸ÈÐKÑKÔK�D€A€qÝ	Œ�a‰Œ€BÝÕ'9Ñ';Ô';ÈÈqÐRTÈgÈÐWÑWÔW€Ià×Ò ÐÑ1Ô1Ð1Ý	Œ•kÐ)IÐ	JÑ	JÔ	Jð .ð .Ø�Š�a˜¨"ˆÑ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð ×Ò ÐÑ-Ô-Ð-Ý	Œ•kÐ)IÐ	JÑ	JÔ	Jð .ð .Ø�Š�a˜¨"ˆÑ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð ×ÒÝ˜+°
Ð;Ñ;Ô;À5ð ñ ô ð õ 
ŒÝÐPð
ñ 
ô 
ð .ð .ð 	�Š�a˜¨"ˆÑ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s6   ÂB3Â3B7Â:B7Ã/DÄDÄDÅ FÆF
ÆF
ré  )rƒ   r«   rö   r3  )rƒ   r  r˜  c                 óÈ  — t          | ¦  «        }t          | ¦  «        }t          |d¬¦  «         t          |d¬¦  «         t          j                             d¦  «        }d}d}d}||z  }|                     ||dz  ¦  «        }|                     d||¬¦  «        }	|                     dd	|¬¦  «        }
t          j        t          j        |¦  «        |¦  «        }|}|	}|}t          t          ¦   «                              ||¬
¦  «        ¦  «        }|                     |¬¦  «         |                     |
d¬¦  «        }|                     |
¬¦  «        }|                     |
¬¦  «        }t          t          ¦   «                              ||¬
¦  «        ¦  «        }|                     |¬¦  «         t          ||¦  «        }t          ||¦  «        }|                     ||d ¬¦  «         |                     |||
¬¦  «         d„ |j        D ¦   «         }|D ]3}|j        |         }|j        |         }|› d�}t#          |||¬¦  «         Œ4dD ]9}t%          ||¦  «        }t%          ||¦  «        }|› d�}t'          |||¬¦  «         Œ:dD ]\}t)          | |¦  «        rJ t%          ||¦  «        |¦  «        } t%          ||¦  «        |¦  «        }d|› d�}t+          |||¬¦  «         Œ]d S )Nr   r  r–  rº   rL  r»   r    ©Úsizer÷   r(  rì   )ÚrepeatsÚaxis)r¨  )rË   r�  c                 ó<   — g | ]}|                      d ¦  «        ¯|‘ŒS )r†   r†  )r£   r�  s     ri   r¦   z<test_search_cv_sample_weight_equivalence.<locals>.<listcomp>‚  s9   € ð ð ð Ø¸¿ºÀgÑ9NÔ9NðØðð ð rl   z4 values are not equal for weighted/repeated datasets©r  )r{  r>  )r”   r–   r{   r~   zComparing the output of zn revealed that fitting with `sample_weight` is not equivalent to fitting with removed or repeated data points.)r   r^   ro   r*  r+  Úrandr   Útilerü   r§   r6   Úsplitr�   Úrepeatr_   ru   râ   rY   rC  r[   rï   rZ   )ré  Úestimator_weightedÚestimator_repeatedr,  r  Ún_samples_per_groupÚn_groupsr  rs   rË   r£  r)  Ú
X_weightedÚ
y_weightedÚgroups_weightedÚsplits_weightedÚ
X_repeatedÚ
y_repeatedÚgroups_repeatedÚsplits_repeatedr  r�  Ús1Ús2r  r‘  s                             ri   Ú(test_search_cv_sample_weight_equivalencer¾  S  s^  € õ ˜yÑ)Ô)ÐÝ˜yÑ)Ô)ÐÝÐ'°aÐ8Ñ8Ô8Ð8ÝÐ'°aÐ8Ñ8Ô8Ð8å
Œ)×
Ò
 Ñ
#Ô
#€CØ€IØÐØ€HØÐ.Ñ.€IØ�Š�˜I¨™MÑ*Ô*€AØ�Š�A�y yˆÑ1Ô1€AØ	�Š�Q˜ 	ˆÑ	*Ô	*€Bõ ŒW•R”Y˜xÑ(Ô(Ð*=Ñ>Ô>€Fà€JØ€JØ€OÝÕ+Ñ-Ô-×3Ò3°JÀÐ3ÑWÔWÑXÔX€OØ×!Ò! _Ð!Ñ5Ô5Ð5à×"Ò"¨2°AÐ"Ñ6Ô6€JØ×"Ò"¨2Ð"Ñ.Ô.€JØ%×,Ò,°RÐ,Ñ8Ô8€OÝÕ+Ñ-Ô-×3Ò3°JÀÐ3ÑWÔWÑXÔX€OØ×!Ò! _Ð!Ñ5Ô5Ð5å*Ð+=¸zÑJÔJ€JÝ*Ð+=¸zÑJÔJ€Jà×Ò˜:¨À4ÐÑHÔHÐHØ×Ò˜:¨À2ÐÑFÔFÐFðð Ø)Ô5ðñ ô €Jð ð 1ð 1ˆØÔ+¨CÔ0ˆØÔ+¨CÔ0ˆØÐNÐNÐNˆÝ˜˜B¨Ð0Ñ0Ô0Ð0Ð0à-ð 5ð 5ˆÝÐ'¨Ñ-Ô-ˆÝÐ'¨Ñ-Ô-ˆØÐNÐNÐNˆÝ˜B ¨GÐ4Ñ4Ô4Ð4Ð4àPð 	Bð 	BˆÝ�9˜fÑ%Ô%ð 	BØ4•Ð+¨VÑ4Ô4°QÑ7Ô7ˆBØ4•Ð+¨VÑ4Ô4°QÑ7Ô7ˆBð+¨6ð +ð +ð +ð õ
 )¨¨R¸ÐAÑAÔAÐAøð	Bð 	Brl   T)ÚnoveltyÚn_neighborsr<  )ré  rð  rä   )ré  rñ   rä   c           	      ó  — t          | ¦  «        } t          j                             d¦  «        }d}d}t	          ||z  ¦  «        }||z
  }t          |dddgddggdd¬¦  «        d         }t          j        ||                     dd	|df¬
¦  «        gd¬¦  «        }t          j        dg|z  ¦  «        }d|| d …<   |  	                    ||¦  «         t          |                      |¦  «        | j                             |¦  «        ¦  «         d S )Nr–  r±  g333333Ã?r    r   rÍ   )r  rO  r	  rë  r  iúÿÿÿrÁ   )ÚlowÚhighr§  ©r©  rƒ   rž   )r   ro   r*  r+  Úintr   Úconcatenater   rþ   ru   rY   r–  rá   )r¦  r,  r  Úoutliers_fractionÚ
n_outliersÚ	n_inliersrs   rš  s           ri   Ú#test_search_cv_score_samples_methodrÊ  �  s;  € õ  �iÑ Ô €Iå
Œ)×
Ò
 Ñ
#Ô
#€CØ€IØÐÝÐ&¨Ñ2Ñ3Ô3€JØ˜JÑ&€Iõ 	ØØØ�Q�˜!˜Q˜Ð ØØð	ñ 	ô 	ð ô		€Aõ 	Œ˜˜3Ÿ;š;¨2°A¸ZÈ¸O˜;ÑLÔLÐMÐTUÐVÑVÔV€Aõ ŒX�q�c˜I‘oÑ&Ô&€FØ€FˆJˆ;ˆ<ˆ<Ñð ‡M‚M�!�VÑÔÐõ Ø×Ò Ñ"Ô" IÔ$=×$KÒ$KÈAÑ$NÔ$Nñô ð ð ð rl   c                  ó’  — t          dd¬¦  «        \  } }dg d¢i}t          t          ¦   «         |d¬¦  «        }t          t          ¦   «         d|d¬	¦  «        }||fD ]ê}|                     | |¦  «         |j        }t          |d
         d         |d
         d         ¦  «         t          |d         d         |d         d         ¦  «         t          j        |d
         d         |d
         d         ¦  «        rJ ‚t          j        |d         d         |d         d         ¦  «        rJ ‚t          |j        d         g d¢¦  «         Œëd S )NrÚ  r–  rÛ  rÌ   )rƒ   gj¼t“ð?çü©ñÒMbP?T)rñ   r8  rº   )r­   rð  r8  r™  r   rƒ   r*  r    r+  )rƒ   rƒ   rº   )	r   r0   rK   r:   ru   râ   r[   ro   Úallclose)rs   rË   rñ   rç   r9  rb  rœ  s          ri   Ú(test_search_cv_results_rank_tie_breakingrÎ  Î  s›  € Ý °Ð4Ñ4Ô4�D€A€qð Ð(Ð(Ð(Ð)€Jå�s™uœu°ÐPTÐUÑUÔU€KÝ&Ý‰Œ�a¨ZÈDðñ ô €Mð  Ð.ð Nð NˆØ�
Š
�1�aÑÔÐØÔ'ˆ
õ 	ØÐ(Ô)¨!Ô,¨jÐ9JÔ.KÈAÔ.Nñ	
ô 	
ð 	
õ 	ØÐ)Ô*¨1Ô-¨zÐ:LÔ/MÈaÔ/Pñ	
ô 	
ð 	
õ ”;ØÐ(Ô)¨!Ô,¨jÐ9JÔ.KÈAÔ.Nñ
ô 
ð 	
ð 	
ð 
õ ”;ØÐ)Ô*¨1Ô-¨zÐ:LÔ/MÈaÔ/Pñ
ô 
ð 	
ð 	
ð 
õ 	˜FÔ.Ð/@ÔAÀ9À9À9ÑMÔMÐMÐMð'Nð Nrl   c                  ó  — dgdgdgdgdggg d¢}} t          ¦   «         t          ¦   «         f}ddd gi}t          ¦   «         }|D ]E}t          |||¬	¦  «                             | |¦  «        }t          |j        d
         dd g¦  «         ŒFd S )Nrƒ   r    rº   r»   r÷   )r   r   r   r   rƒ   r  r   rì   Úparam_random_state)rQ   rP   r5   r0   ru   r]   râ   )rs   rË   Ú
estimatorsÚest_parametersrÛ   Úestrç   s          ri   Ú!test_search_cv_results_none_paramrÔ  ð  sÀ   € ØˆC�!��q�c˜A˜3  Ð$ o o o€q€AÝ'Ñ)Ô)Õ+AÑ+CÔ+CÐD€JØ$ q¨$ iÐ0€NÝ	‰Œ€Bàð Uð UˆÝ"ØØØð
ñ 
ô 
÷ Š#ˆa�‰)Œ)ð	 	õ
 	˜;Ô2Ð3GÔHÈ1ÈdÈ)ÑTÔTÐTÐTðUð Url   z+ignore::sklearn.exceptions.FitFailedWarningc                  ó¦  — t          d¬¦  «        } dgdgdgdgg}g d¢}t          | dddgidd¬	¦  «        }t          | dddgiddd¬
¦  «        }||fD ]þ}|                     ||¦  «         dD ]L}t	          j        |j        |         dk    ¦  «        sJ ‚t	          j        |j        |         dk     ¦  «        sJ ‚ŒMdD ]Y}|j        |         d         dk    sJ ‚|j        |         d         dk    sJ ‚t	          j        |j        |         dk     ¦  «        sJ ‚ŒZt          |d¦  «        sJ ‚t          |j	        t          ¦  «        sJ ‚|j	        dk    sJ ‚Œÿd S )Nr   r  rƒ   r    rº   r»   )r   rƒ   rƒ   r   rÌ   rú   )rÛ   rû   r­   )r4  r5  )r6  r7  r…   Úrefit_time_)rL   r0   r:   ru   ro   r  râ   rï   rÎ   rÖ  Úfloat)Úsvcrs   rË   r/  Úrsrb  r�  s          ri   Útest_search_cv_timingrÚ  ÿ  sÌ  € å
 Ð
#Ñ
#Ô
#€Cð ð	
ð ð	
ð ð	
ð ð	
ð	€Að 	ˆˆ€Aå	�c˜C ! Q ˜=¨Q¸AÐ	>Ñ	>Ô	>€BÝ	˜C #¨¨1 v °1À!ÈAÐ	NÑ	NÔ	N€Bà�r�(ð 'ð 'ˆØ�
Š
�1�aÑÔÐØ4ð 	7ð 	7ˆCõ ”6˜&Ô,¨SÔ1°QÒ6Ñ7Ô7Ð7Ð7Ð7Ý”6˜&Ô,¨SÔ1°AÒ5Ñ6Ô6Ð6Ð6Ð6Ð6à8ð 	7ð 	7ˆCØÔ% cÔ*¨1Ô-°Ò2Ð2Ð2Ð2ØÔ% cÔ*¨1Ô-°Ò4Ð4Ð4Ð4Ý”6˜&Ô,¨SÔ1°AÒ5Ñ6Ô6Ð6Ð6Ð6Ð6å�v˜}Ñ-Ô-Ð-Ð-Ð-Ý˜&Ô,­eÑ4Ô4Ð4Ð4Ð4ØÔ! QÒ&Ð&Ð&Ð&Ð&ð'ð 'rl   c            
      ó.  ‡‡— d} t          d¬¦  «        }t          dd¬¦  «        \  }}g d¢}dD �]ä}t          |d|i|| ¬	¦  «        Š‰                     ||¦  «        j        }t          |                     ¦   «         ¦  «        }d
t          d„ t          | ¦  «        D ¦   «         ¦  «        z   }t          t          j        ||¦  «        ¦  «        sJ ‚t          | ¬¦  «        }	‰j        } t          |¦  «        D �]\  Š}
|                     |
¬¦  «         t          j        ˆˆfd„t          | ¦  «        D ¦   «         ¦  «        }t          |	                     ||¦  «        ¦  «        D ]­\  }\  }}|                     ||         ||         ¦  «         |dk    r0t%          ||         |                     ||         ¦  «        ¦  «        }n7|dk    r1|                     ||         ¦  «        }t+          ||         |¦  «        }t-          |||         ¦  «         Œ®�Œ�Œæd S )Nrº   r   r  r    r  r
  )rm  r  rÌ   )rä   rÛ   )r™  r+  c              3   ó    K  — | ]	}d |z  V — Œ
dS )rW  Nr—   )r£   Úcv_is     ri   rÈ   z9test_grid_search_correct_score_results.<locals>.<genexpr>4  sA   è è € ð G
ð G
Ø,0Ð  4Ñ'ðG
ð G
ð G
ð G
ð G
ð G
rl   r&  rq  c                 ó<   •— g | ]}‰j         d |z           ‰         ‘ŒS ©rW  rX  )r£   rZ  Úcandidate_irç   s     €€ri   r¦   z:test_grid_search_correct_score_results.<locals>.<listcomp>>  s<   ø€ ð ð ð àð  Ô+Ð,@À1Ñ,DÔEÀkÔRðð ð rl   rm  r  )rL   r   r0   ru   râ   r§   rš  rÃ   r¨   r  ro   Úisinr;   r^  Ú	enumerater�   rþ   r®  r*   r{   r–   r.   r[   )r'  ræ   rs   rË   r  r†   rœ  Úresult_keysÚexpected_keysrÛ   rÌ   Ú	cv_scoresr¤   ÚtrainÚtestÚcorrect_scoreÚdecrà  rç   s                    @@ri   Ú&test_grid_search_correct_score_resultsrê  (  sZ  øø€ à€HÝ
 Ð
#Ñ
#Ô
#€CÝ 1¨aÐ0Ñ0Ô0�D€A€qØ	ˆˆ€BØ"ð Añ AˆÝ" 3¨¨b¨	¸5ÀXÐNÑNÔNˆØ —_’_ Q¨Ñ*Ô*Ô6ˆ
õ ˜:Ÿ?š?Ñ,Ô,Ñ-Ô-ˆØ>Åð G
ð G
Ý49¸(±O´OðG
ñ G
ô G
ñ B
ô B
ñ 
ˆõ •2”7˜=¨+Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7å hÐ/Ñ/Ô/ˆØÔ(ˆÝ'¨™mœmð 	Añ 	A‰NˆK˜Ø�NŠN˜QˆNÑÔÐÝœðð ð ð ð å" 8™_œ_ðñ ô ñô ˆIõ %.¨b¯hªh°q¸!©n¬nÑ$=Ô$=ð Að AÑ �‘=�E˜4Ø—’˜˜%œ ! E¤(Ñ+Ô+Ð+Ø˜D’=�=Ý$,¨Q¨t¬W°c·k²kÀ!ÀDÄ'Ñ6JÔ6JÑ$KÔ$K�M�MØ˜iÒ'Ð'Ø×/Ò/°°$´Ñ8Ô8�CÝ$1°!°D´'¸3Ñ$?Ô$?�MÝ# M°9¸Q´<Ñ@Ô@Ð@Ð@ñAñ	AðAð Arl   c                  ó˜  — t          ¦   «         } t          | dg d¢idd¬¦  «        }|                     t          t          ¦  «         t          j        t          j        |¦  «        ¦  «        }t          | 	                    t          ¦  «        | 	                    t          ¦  «        ¦  «         t          | dg d¢iddd¬¦  «        }|                     t          t          ¦  «         t          j        t          j        |¦  «        ¦  «        }t          | 	                    t          ¦  «        | 	                    t          ¦  «        ¦  «         d S )Nrg   r¹   Tr    r=  rº   )r6  r­   rÛ   )rc   r0   ru   rs   rË   ÚpickleÚloadsÚdumpsr\   r{   r:   )ræ   rç   Úgrid_search_pickledr9  Úrandom_search_pickleds        ri   Útest_picklerñ  M  s   € å
Ñ
Ô
€CÝ˜s [°)°)°)Ð$<ÀDÈQÐOÑOÔO€KØ‡O‚O•A•qÑÔÐÝ œ,¥v¤|°KÑ'@Ô'@ÑAÔAÐÝ˜k×1Ò1µ!Ñ4Ô4Ð6I×6QÒ6QÕRSÑ6TÔ6TÑUÔUÐUå&Øˆk˜9˜9˜9Ð%¨T¸!Àðñ ô €Mð ×Ò•a�ÑÔÐÝ"œL­¬°mÑ)DÔ)DÑEÔEÐÝØ×Ò�aÑ Ô Ð"7×"?Ò"?ÅÑ"BÔ"Bñô ð ð ð rl   c            	      ó˜  — t          dd¬¦  «        \  } }dg d¢i}t          ¦   «         }t          d¬¦  «        t          d¬¦  «        g}|D ]ý}t	          |||¬¦  «        }|                     | |¦  «         |j        d         }t          t          |¦  «        ¦  «        D ]©} |j	        di ||         ¤Ž t          |                     | |¦  «        ¦  «        D ]p\  }	\  }
}|                     | |
         ||
         ¦  «         |                     | |         ||         ¦  «        }t          ||j        d	|	z           |         ¦  «         ŒqŒªŒþ|D ]þ}t          |||d
¬¦  «        }|                     | |¦  «         |j        d         }t          t          |¦  «        ¦  «        D ]©} |j	        di ||         ¤Ž t          |                     | |¦  «        ¦  «        D ]p\  }	\  }
}|                     | |
         ||
         ¦  «         |                     | |         ||         ¦  «        }t          ||j        d	|	z           |         ¦  «         ŒqŒªŒÿd S )NTr   )Úreturn_indicatorr  r’  )rƒ   r    rº   r»   r  rì   rŒ   rW  rº   )rÛ   r­   r—   )r   r5   rQ   rP   r0   ru   râ   r¨   rn   r�   râ  r®  r†   r[   r:   )rs   rË   rÒ  rÛ   rÑ  rÓ  rç   Ú
res_paramsÚcand_ir¤   ræ  rç  rè  r9  s                 ri   Ú&test_grid_search_with_multioutput_datarö  _  sž  € õ *¸4ÈaÐPÑPÔP�D€A€qà! < < <Ð0€NÝ	‰Œ€Bõ 	¨1Ð-Ñ-Ô-Ý¨AÐ.Ñ.Ô.ð€Jð ð ð ˆÝ" 3¨¸2Ð>Ñ>Ô>ˆØ�Š˜˜1ÑÔÐØ Ô,¨XÔ6ˆ
Ý�C 
™OœOÑ,Ô,ð 		ð 		ˆFØˆCŒNÐ0Ð0˜Z¨Ô/Ð0Ð0Ð0å$-¨b¯hªh°q¸!©n¬nÑ$=Ô$=ð ð Ñ �‘=�E˜4Ø—’˜˜%œ ! E¤(Ñ+Ô+Ð+Ø #§	¢	¨!¨D¬'°1°T´7Ñ ;Ô ;�Ý#Ø!ØÔ+Ð,@À1Ñ,DÔEÀfÔMñô ð ð ðð		ð ð ð ˆÝ*¨3°À2ÈaÐPÑPÔPˆØ×Ò˜!˜QÑÔÐØ"Ô.¨xÔ8ˆ
Ý�C 
™OœOÑ,Ô,ð 		ð 		ˆFØˆCŒNÐ0Ð0˜Z¨Ô/Ð0Ð0Ð0å$-¨b¯hªh°q¸!©n¬nÑ$=Ô$=ð ð Ñ �‘=�E˜4Ø—’˜˜%œ ! E¤(Ñ+Ô+Ð+Ø #§	¢	¨!¨D¬'°1°T´7Ñ ;Ô ;�Ý#Ø!Ø!Ô-Ð.BÀQÑ.FÔGÈÔOñô ð ð ðð		ð	ð rl   c                  óê   — t          j        d¦  «                             dd¦  «        } g d¢}t          ¦   «         }t	          |i d¬¦  «                             | |¦  «        }t          |d¦  «        rJ ‚d S )Nrƒ  r÷   rž   ©r   r   rƒ   rƒ   rƒ   r    rì   r”   )ro   rü   rý   rK   r0   ru   rï   ©rs   rË   ræ   r/  s       ri   Útest_predict_proba_disabledrú  �  sq   € å
Œ	�"‰Œ×Ò˜a Ñ$Ô$€AØˆˆ€AÝ
‰%Œ%€CÝ	�c˜2 !Ð	$Ñ	$Ô	$×	(Ò	(¨¨AÑ	.Ô	.€BÝ�r˜?Ñ+Ô+Ð+Ð+Ð+Ð+Ð+rl   c                  ód  — t          j        dt           j        ¬¦  «                             dd¦  «        } t           j        | dd d …f<   g d¢}t          dt          dt           j        ¬	¦  «        fd
t          ¦   «         fg¦  «        }t          |dg d¢id¬¦  «         	                    | |¦  «         d S )Nrƒ  rU  r÷   rž   r    rø  Úimputerrg  )ÚstrategyÚmissing_valuesÚ
classifierÚclassifier__foo_paramr¹   rì   )
ro   rü   r  rý   ÚnanrE   r#   rc   r0   ru   )rs   rË   rÇ   s      ri   Útest_grid_search_allows_nansr  –  s´   € å
Œ	�"�BœJÐ'Ñ'Ô'×/Ò/°°2Ñ6Ô6€AÝŒf€A€aˆˆˆ€d�GØˆˆ€AÝà�¨vÅbÄfÐMÑMÔMÐNØ�>Ñ+Ô+Ð,ð	
ñ	ô 	€Aõ �Ð,¨i¨i¨iÐ8¸QÐ?Ñ?Ô?×CÒCÀAÀqÑIÔIÐIÐIÐIrl   c                   ó4   — e Zd ZdZdZdd„Zdd„Zd„ Zd	d„ZdS )
ÚFailingClassifierz,Classifier that raises a ValueError on fit()r    Nc                 ó   — || _         d S re   rˆ  rŠ  s     ri   rj   zFailingClassifier.__init__©  rk   rl   c                 óN   — | j         t          j        k    rt          d¦  «        ‚d S )Nz%Failing classifier failed as required)r‰  r  ÚFAILING_PARAMETERrå   r�  s      ri   ru   zFailingClassifier.fit¬  s+   € ØŒ>Õ.Ô@Ò@Ð@ÝÐDÑEÔEÐEð AÐ@rl   c                 ó@   — t          j        |j        d         ¦  «        S rw   r�  r}   s     ri   r{   zFailingClassifier.predict°  r�  rl   c                 ó   — dS )Nr…   r—   rr   s      ri   r†   zFailingClassifier.score³  s   € Øˆsrl   re   rŽ   )	r�   r‘   r’   r“   r  rj   ru   r{   r†   r—   rl   ri   r  r  ¤  so   € € € € € Ø6Ð6àÐð#ð #ð #ð #ðFð Fð Fð Fð$ð $ð $ðð ð ð ð ð rl   r  c            	      ó(  ‡‡— t          ddd¬¦  «        \  } }t          ¦   «         }t          |dg d¢igddd	¬
¦  «        Št          j        dt          j        ¬¦  «        }t          j        t          |¬¦  «        5  ‰ 	                    | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ‰j        d         ¦  «        }ˆfd„Št          ˆˆfd„t          |¦  «        D ¦   «         ¦  «        sJ ‚t          |dg d¢igddt          d¦  «        ¬
¦  «        Št          j        dt          j        ¬¦  «        }t          j        t          |¬¦  «        5  ‰ 	                    | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ‰j        d         ¦  «        }t          ˆˆfd„t          |¦  «        D ¦   «         ¦  «        sJ ‚‰j        d         }|d         dk    r|d         dk    sJ ‚||j                 dk    sJ ‚‰j        |j        k    sJ ‚d S )Nrƒ  r«   r   rN  r‰  ©r   rƒ   r    r  Fr…   ©rä   r6  rû   zÈ5 fits failed.+total of 15.+The score on these train-test partitions for these parameters will be set to 0\.0.+5 fits failed with the following error.+ValueError.+Failing classifier failed as required©Úflagsr°   rŒ   c                 ól   •‡ — t          j        ˆˆ fd„t          ‰j        ¦  «        D ¦   «         ¦  «        S )Nc                 ó<   •— g | ]}‰j         d |z           ‰         ‘ŒS rß  rX  )r£   rZ  r/  r¤   s     €€ri   r¦   zPtest_grid_search_failing_classifier.<locals>.get_cand_scores.<locals>.<listcomp>Û  s+   ø€ ÐVÐVÐV¸QˆRŒ^Ð0°1Ñ4Ô5°aÔ8ÐVÐVÐVrl   )ro   rþ   r¨   r^  )r¤   r/  s   `€ri   Úget_cand_scoresz<test_grid_search_failing_classifier.<locals>.get_cand_scoresÙ  s<   øø€ ÝŒxØVÐVÐVÐVÐVÅ%ÈÌÑBUÔBUÐVÑVÔVñ
ô 
ð 	
rl   c              3   óœ   •K  — | ]F}‰j         d          |         t          j        k    ¯#t          j         ‰|¦  «        dk    ¦  «        V — ŒGdS )Úparam_parameterr…   N)râ   r  r  ro   r  ©r£   rõ  r  r/  s     €€ri   rÈ   z6test_grid_search_failing_classifier.<locals>.<genexpr>ß  sp   øè è € ð 	
ð 	
àØŒ~Ð/Ô0°Ô8Ý Ô2ò3ð 3õ ŒF�?�? 6Ñ*Ô*¨cÒ1Ñ2Ô2ð3ð 3ð 3ð 3ð	
ð 	
rl   r  zÇ5 fits failed.+total of 15.+The score on these train-test partitions for these parameters will be set to nan.+5 fits failed with the following error.+ValueError.+Failing classifier failed as requiredc              3   ó¸   •K  — | ]T}‰j         d          |         t          j        k    ¯#t          j        t          j         ‰|¦  «        ¦  «        ¦  «        V — ŒUdS )r  N)râ   r  r  ro   r  Úisnanr  s     €€ri   rÈ   z6test_grid_search_failing_classifier.<locals>.<genexpr>ø  su   øè è € ð ð àØŒ>Ð+Ô,¨VÔ4ÝÔ.ò/ð /õ 	Œ�rŒx˜˜¨Ñ/Ô/Ñ0Ô0Ñ1Ô1ð/ð /ð /ð /ðð rl   r+  r    rƒ   rº   )r   r  r0   r`  ÚcompileÚDOTALLr²   r   r    ru   rn   râ   r  r¨   r×  r  r>  )rs   rË   ræ   Úwarning_messagerG  Úranksr  r/  s         @@ri   Ú#test_grid_search_failing_classifierr  ·  s  øø€ õ ¨¸ÈÐKÑKÔK�D€A€qå
Ñ
Ô
€Cõ 
ØØ
�y�y�yÐ	!Ð"ØØØð
ñ 
ô 
€Bõ ”jð	õ Œiðñ ô €Oõ 
ŒÕ&¨oÐ	>Ñ	>Ô	>ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å�r”~ hÔ/Ñ0Ô0€Lð
ð 
ð 
ð 
ð 
õ
 ð	
ð 	
ð 	
ð 	
ð 	
å Ñ-Ô-ð	
ñ 	
ô 	
ñô ð ð ð õ 
ØØ
�y�y�yÐ	!Ð"ØØÝ˜%‘L”Lð
ñ 
ô 
€Bõ ”jð	õ Œiðñ ô €Oõ 
ŒÕ&¨oÐ	>Ñ	>Ô	>ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å�r”~ hÔ/Ñ0Ô0€LÝð ð ð ð ð å˜LÑ)Ô)ðñ ô ñ ô ð ð ð ð ŒNÐ,Ô-€Eð �Œ8�qŠ=ˆ=˜U 1œX¨š]˜]˜]Ð*à�Ô&Ô'¨1Ò,Ð,Ð,Ð,ØŒ>˜SÔ2Ò2Ð2Ð2Ð2Ð2Ð2s$   Á:BÂB!Â$B!ÅE6Å6E:Å=E:c                  óf  — t          ddd¬¦  «        \  } }t          ¦   «         }t          |dt          j        gdz  igd¬¦  «        }t	          j        d	t          j        ¬
¦  «        }t          j        t          |¬¦  «        5  | 
                    | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrƒ  r«   r   rN  r‰  rº   r…   ©rû   zrAll the 15 fits failed.+15 fits failed with the following error.+ValueError.+Failing classifier failed as requiredr  r°   ©r   r  r0   r  r`  r  r  r²   r³   rå   ru   )rs   rË   ræ   r/  r  s        ri   Ú)test_grid_search_classifier_all_fits_failr    s  € Ý¨¸ÈÐKÑKÔK�D€A€qå
Ñ
Ô
€Cå	ØØ
Õ)Ô;Ð<¸qÑ@Ð	AÐBØð
ñ 
ô 
€Bõ ”jðHõ Œiðñ ô €Oõ 
Œ•z¨Ð	9Ñ	9Ô	9ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB&Â&B*Â-B*c                  ó  — t          ddd¬¦  «        \  } }t          ¦   «         }t          |dg d¢igddd	¬
¦  «        }t          j        t
          ¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrƒ  r«   r   rN  r‰  r  r  Frù   r  )r   r  r0   r²   r³   rå   ru   rù  s       ri   Ú)test_grid_search_failing_classifier_raiser!    sß   € õ ¨¸ÈÐKÑKÔK�D€A€qå
Ñ
Ô
€Cõ 
ØØ
�y�y�yÐ	!Ð"ØØØð
ñ 
ô 
€Bõ 
Œ•zÑ	"Ô	"ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA:Á:A>ÂA>c                  óx  — ddgg d¢dœdddgig} t          | d¬	¦  «        }d}d
}d|||fz  }t          j        t          |¬¦  «        5  t	          |¦  «         d d d ¦  «         n# 1 swxY w Y   t          | d
¬	¦  «        }t	          |¦  «        }t          |¦  «        d
k    sJ ‚t          | ¦  «        D ]}||v sJ ‚Œ	t          t          | d¬	¦  «        ¦  «        d
k    sJ ‚t          d¦  «        t          d¦  «        t          d¦  «        dœ} t          | dd¬¦  «        }t	          |¦  «        }t          |¦  «        dk    sJ ‚d„ |D ¦   «         }t          t          |¦  «        ¦  «        dk    sJ ‚t          d¦  «        g d¢dœ}t          |d¬	¦  «        }t	          |¦  «        }t          |¦  «        dk    sJ ‚d S )Nr   rƒ   )ÚaÚbÚc)ÚfirstÚsecondÚthirdÚtwoÚvaluesrô  r¬   ró  z}The total space of parameters %d is smaller than n_iter=%d. Running %d iterations. For exhaustive searches, use GridSearchCV.r°   éè  r«   éc   r–  )r­   r  c                 óB   — g | ]}d |d         |d         |d         fz  ‘ŒS )z	a%db%dc%dr#  r$  r%  r—   rÆ   s     ri   r¦   z7test_parameters_sampler_replacement.<locals>.<listcomp>Q  s0   € ÐPÐPÐPÀ1˜ q¨¤v¨q°¬v°q¸´vÐ&>Ñ>ÐPÐPÐPrl   rÍ   r²  )
r9   r²   r   r¡  r§   rn   r8   r¨   rÏ   r
   )	rŒ   rû  r­   Ú	grid_sizeÚexpected_warningrü  r*  Úhashable_samplesÚparams_distributions	            ri   Ú#test_parameters_sampler_replacementr2  3  sG  € ð �a�& O O OÐ4Ð4Ø	�5˜(Ð#Ð$ð€Fõ ˜v¨aÐ0Ñ0Ô0€GØ€FØ€Ið	1à4=¸vÀyÐ3Qñ	Rð õ
 
Œ•kÐ)9Ð	:Ñ	:Ô	:ð ð ÝˆW‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜v¨aÐ0Ñ0Ô0€GÝ�7‰mŒm€GÝˆw‰<Œ<˜1ÒÐÐÐÝ Ñ'Ô'ð !ð !ˆØ˜Ð Ð Ð Ð Ð ÝÕ ¨tÐ4Ñ4Ô4Ñ5Ô5¸Ò:Ð:Ð:Ð:õ ˜‘9”9¥5¨¡9¤9µ5¸±9´9Ð=Ð=€FÝ˜v¨b¸rÐBÑBÔB€GÝ�7‰mŒm€GÝˆw‰<Œ<˜2ÒÐÐÐØPÐPÈÐPÑPÔPÐÝ�sÐ#Ñ$Ô$Ñ%Ô%¨Ò+Ð+Ð+Ð+õ %.¨c¡N¤N¸o¸o¸oÐNÐNÐÝÐ2¸1Ð=Ñ=Ô=€GÝ�7‰mŒm€GÝˆw‰<Œ<˜1ÒÐÐÐÐÐs   ÁA$Á$A(Á+A(c                  ó
  — ddgi} t          j        d¦  «                             dd¦  «        }g d¢}t          t	          d¬¦  «        | d	¬
¦  «        }t          |d¦  «        rJ ‚|                     ||¦  «         |                     |¦  «         |                     |¦  «         ddgi} t          t	          d¬¦  «        | d	¬
¦  «        }t          |d¦  «        rJ ‚|                     ||¦  «         t          |d¦  «        rJ ‚d S )NÚlossÚlog_lossé   rÁ   rž   ©r   r   r   rƒ   rƒ   rƒ   Úhinge)r4  rº   ©ré  rñ   rÛ   r”   )	ro   rü   rý   r0   r'   rï   ru   r”   r•   )rñ   rs   rË   ræ   s       ri   Ú#test_stochastic_gradient_loss_paramr:  [  s0  € ð 	��ð€Jõ 	Œ	�"‰Œ×Ò˜a Ñ$Ô$€AØÐÐ€AÝ
Ý WÐ-Ñ-Ô-¸*Èðñ ô €Cõ �s˜OÑ,Ô,Ð,Ð,Ð,Ø‡G‚GˆAˆq�M„M€MØ×Ò�aÑÔÐØ×Ò˜!ÑÔÐð
 	��	ð€Jõ Ý WÐ-Ñ-Ô-¸*Èðñ ô €Cõ �s˜OÑ,Ô,Ð,Ð,Ð,Ø‡G‚GˆAˆq�M„M€MÝ�s˜OÑ,Ô,Ð,Ð,Ð,Ð,Ð,rl   c                  óÖ   — t          j        d¦  «                             dd¦  «        } g d¢}t          d¬¦  «        }t	          |dddgid	¬
¦  «        }|                     | |¦  «         d S )NrÁ   rž   r7  r   r  rÌ   r  r  rº   )rñ   rÛ   )ro   rü   rý   rL   r0   ru   rù  s       ri   Ú%test_search_train_scores_set_to_falser<  {  sl   € Ý
Œ	�!‰Œ×Ò˜Q Ñ#Ô#€AØÐÐ€AÝ
 Ð
#Ñ
#Ô
#€Cå	�c s¨S°#¨JÐ&7¸AÐ	>Ñ	>Ô	>€BØ‡F‚Fˆ1ˆa�L„L€L€L€Lrl   c            	      óä  ‡	‡
‡— d} d}t          | d¬¦  «        \  }}t          t          d¬¦  «        dg d¢it          || ¬¦  «        d	¬
¦  «        Š	‰	                     ||¦  «         t          t          d¬¦  «        dg d¢it          |¬¦  «        d	¬
¦  «        }|                     ||¦  «         t          t          |d	d¬¦  «                             ||¦  «        t          ¦  «        sJ ‚t          t          d¬¦  «        dg d¢it          |d	d¬¦  «                             ||¦  «        d	¬
¦  «        }|                     ||¦  «         t          t          d¬¦  «        dg d¢it          |d	d¬¦  «        d	¬
¦  «        }|                     ||¦  «         d„ }t          j
                              ||j        ¦  «         ||j        ¦  «        ¦  «         t          j
                             d„ ‰	j                             ¦   «         D ¦   «         d„ |j                             ¦   «         D ¦   «         ¦  «         t          t          d¬¦  «        dg d¢it          |d	¬¦  «        d	¬
¦  «        Š	‰	                     ||¦  «         dD ]nŠi }t          d¦  «        D ]"Š
ˆ	ˆ
ˆfd„t          d¦  «        D ¦   «         |‰
<   Œ#t          |d         |d         ¦  «         t          |d         |d         ¦  «         Œod S )Nrö   r÷   r   rÛ  r  rÌ   )r  r  g333333Ó?)r'  r  T)rñ   rÛ   r8  r&  )r'  rT  r  c                 ó:   — dD ]}|                       |¦  «         Œ| S )N)r4  r5  r6  r7  )Úpop)rœ  r�  s     ri   Ú_pop_time_keysz>test_grid_search_cv_splits_consistency.<locals>._pop_time_keys¯  s0   € ð
ð 	 ð 	 ˆCð �NŠN˜3ÑÔÐÐØÐrl   c                 óD   — i | ]\  }}|                      d ¦  «        °||“ŒS r„  r†  r}  s      ri   r	  z:test_grid_search_cv_splits_consistency.<locals>.<dictcomp>Æ  s/   € ÐLÐLÐL‘$�!�Q¸¿
º
À7Ñ8KÔ8KÐLˆˆAÐLÐLÐLrl   c                 óD   — i | ]\  }}|                      d ¦  «        °||“ŒS r„  r†  r}  s      ri   r	  z:test_grid_search_cv_splits_consistency.<locals>.<dictcomp>Ç  s/   € ÐMÐMÐM‘$�!�Q¸¿ºÀGÑ9LÔ9LÐMˆˆAÐMÐMÐMrl   )r  r  r  r  )r'  rT  )ræ  rç  r»   c                 ó@   •— g | ]}‰j         d |‰fz           ‰         ‘ŒS )zsplit%d_%s_scorerX  )r£   rZ  r/  Úparam_iÚ
score_types     €€€ri   r¦   z:test_grid_search_cv_splits_consistency.<locals>.<listcomp>Ú  s?   ø€ ð )ð )ð )àð ”Ð1°Q¸
°OÑCÔDÀWÔMð)ð )ð )rl   rƒ   r    rº   )r   r0   rL   r@   ru   r5   rÎ   r®  r	   ro   rŠ  r‹  râ   rÅ   r¨   r\   )r  r'  rs   rË   Úgs2Úgs3Úgs4r@  Úper_param_scoresr/  rD  rE  s            @@@ri   Ú&test_grid_search_cv_splits_consistencyrJ  „  s  øøø€ à€IØ€HÝ¨ÀÐCÑCÔC�D€A€qå	Ý˜qÐ!Ñ!Ô!Ø˜˜˜Ð)Ý H¸	ÐBÑBÔBØð	
ñ 
ô 
€Bð ‡F‚Fˆ1ˆa�L„L€Lå
Ý˜qÐ!Ñ!Ô!Ø˜˜˜Ð)Ý˜(Ð#Ñ#Ô#Øð	ñ ô €Cð ‡G‚GˆAˆq�M„M€Mõ Ý�x¨¸AÐ>Ñ>Ô>×DÒDÀQÈÑJÔJÝñô ð ð ð õ Ý˜qÐ!Ñ!Ô!Ø˜˜˜Ð)Ý˜(¨D¸qÐAÑAÔA×GÒGÈÈ1ÑMÔMØð	ñ ô €Cð ‡G‚GˆAˆq�M„M€Må
Ý˜qÐ!Ñ!Ô!Ø˜˜˜Ð)Ý˜(¨D¸qÐAÑAÔAØð	ñ ô €Cð ‡G‚GˆAˆq�M„M€Mðð ð õ „J×ÒØˆ�s”Ñ'Ô'¨¨¸¼Ñ)HÔ)Hñô ð õ „J×ÒØLÐL˜"œ.×.Ò.Ñ0Ô0ÐLÑLÔLØMÐM˜#œ/×/Ò/Ñ1Ô1ÐMÑMÔMñô ð õ 
Ý˜qÐ!Ñ!Ô!ØÐ-Ð-Ð-Ð.Ý˜(¨DÐ1Ñ1Ô1Øð	
ñ 
ô 
€Bð ‡F‚Fˆ1ˆa�L„L€Lð (ð 	Lð 	Lˆ
ØÐÝ˜Q‘x”xð 	ð 	ˆGð)ð )ð )ð )ð )ð )å˜q™œð)ñ )ô )Ð˜WÑ%Ð%õ
 	"Ð"2°1Ô"5Ð7GÈÔ7JÑKÔKÐKÝ!Ð"2°1Ô"5Ð7GÈÔ7JÑKÔKÐKÐKð	Lð 	Lrl   c                  ó  — t          ¦   «         } t          | dg d¢idd¬¦  «        }|                     t          t          ¦  «         |                     |                     t          ¦  «        ¦  «        }t          t          |¦  «         d S )Nrg   r¹   r    rº   rÚ   )rc   r0   ru   rs   rË   r�   r~   r]   )ræ   rç   ÚX_round_trips      ri   Ú+test_transform_inverse_transform_round_triprM  ã  sw   € Ý
Ñ
Ô
€CÝ˜s [°)°)°)Ð$<ÀÈAÐNÑNÔN€Kà‡O‚O•A•qÑÔÐØ×0Ò0°×1FÒ1FÅqÑ1IÔ1IÑJÔJ€LÝ•q˜,Ñ'Ô'Ð'Ð'Ð'rl   c                  ó  ‡‡‡‡‡	— d„ Šˆˆˆ	fd„Š G ˆˆfd„dt           ¦  «        } t          d¬¦  «        Št          ddd¬	¦  «        \  ŠŠ	 | ‰d
¬¦  «                             ‰‰	¦  «        } ‰dddgidddgig¦  «        }|j        } ‰||¦  «         t          |¦  «        D ]]}|d                              ¦   «         rA|dd …         dk    r3|dvr/t          ||¦  «        t          ||¦  «        k    sJ d|z  ¦   «         ‚Œ^d S )Nc                 óœ  — |j         }t          |                      ¦   «         ¦  «        t          |¦  «        k    sJ ‚| D ]�}|                     d¦  «        svt	          j        | |         ¦  «        | |<   | |         j        j        dk    r"t          ||         | |         d|z   ¬¦  «         Œlt          ||         | |         d|z   ¬¦  «         ŒŽd S )Nr…  r@  z	Checking r«  )
râ   rÄ   rš  r‡  ro   Ú
asanyarrayr  r  r]   rY   )ÚresultsÚgscvÚexp_resultsr<  s       ri   Úcheck_resultsz-test_custom_run_search.<locals>.check_resultsí  så   € ØÔ&ˆÝ�g—l’l‘n”nÑ%Ô%­°Ñ)<Ô)<Ò<Ð<Ð<Ð<Øð 		Yð 		YˆAØ—:’:˜gÑ&Ô&ð Yåœ]¨7°1¬:Ñ6Ô6�˜‘
Ø˜1”:Ô#Ô(¨CÒ/Ð/Ý&Ø# Aœ¨°¬
¸KÈ!¹Oðñ ô ð ð õ $ K°¤N°G¸A´JÈÐVWÉÐXÑXÔXÐXøð		Yð 		Yrl   c                 óP   •— t          ‰| d¬¦  «                             ‰‰¦  «        S )NT©r8  )r0   ru   )rñ   rs   ræ   rË   s    €€€ri   Úfit_gridz(test_custom_run_search.<locals>.fit_gridû  s(   ø€ Ý˜C ÀÐEÑEÔE×IÒIÈ!ÈQÑOÔOÐOrl   c                   ó,   •‡ — e Zd Zˆ fd„Zˆˆfd„Zˆ xZS )ú.test_custom_run_search.<locals>.CustomSearchCVc                 ó<   •—  t          ¦   «         j        |fi |¤Ž d S re   ©Úsuperrj   ©rh   ré  Úkwargsr•  s      €ri   rj   z7test_custom_run_search.<locals>.CustomSearchCV.__init__ÿ  ó(   ø€ Ø�E‰GŒGÔ˜YÐ1Ð1¨&Ð1Ð1Ð1Ð1Ð1rl   c           	      ó¼   •—  |ddiddig¦  «        } ‰| ‰dddgi¦  «        ¦  «          |ddiddig¦  «        } ‰| ‰dddgidddgig¦  «        ¦  «         d S )Nr’  rƒ   r    Úmin_samples_splitr÷   r«   r—   )rh   ÚevaluaterQ  rT  rW  s      €€ri   Ú_run_searchz:test_custom_run_search.<locals>.CustomSearchCV._run_search  s­   ø€ Ø�h ¨aÐ 0°;ÀÐ2BÐCÑDÔDˆGØˆM˜' 8 8¨[¸1¸a¸&Ð,AÑ#BÔ#BÑCÔCÐCØ�hÐ!4°aÐ 8Ð;NÐPRÐ:SÐTÑUÔUˆGØˆMØØ�˜;¨¨A¨Ð/Ð2EÈÈ2ÀwÐ1OÐPÑQÔQñô ð ð ð rl   )r�   r‘   r’   rj   rc  Ú__classcell__)r•  rT  rW  s   @€€ri   ÚCustomSearchCVrY  þ  sW   øø€ € € € € ð	2ð 	2ð 	2ð 	2ð 	2ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	rl   re  r   r  rö   r»   )r  Ún_informativer  TrV  r’  rƒ   r    ra  r÷   r«   rž   rì  >   r  rq   râ   rÖ  rá   zAttribute %s not equal)r>   rQ   r   ru   râ   ÚdirÚislowerrC  )
re  ÚmycvrR  rQ  Úattrrs   rT  ræ   rW  rË   s
        @@@@@ri   Útest_custom_run_searchrk  ì  s�  øøøøø€ ðYð Yð YðPð Pð Pð Pð Pð Pð Pðð ð ð ð ð ð ð �ñ ô ð õ  ¨QÐ
/Ñ
/Ô
/€CÝ¨¸AÈAÐNÑNÔN�D€A€qØˆ>˜#°$Ð7Ñ7Ô7×;Ò;¸A¸qÑAÔA€DØˆ8�k A q 6Ð*Ð-@À1ÀbÀ'Ð,JÐKÑLÔL€DàÔ€GØ€M�'˜4Ñ Ô Ð Ý�D‘	”	ð ð ˆà�ŒG�OŠOÑÔð	à�R�S�S”	˜SÒ Ð Øððð õ ˜4 Ñ&Ô&­'°$¸Ñ*=Ô*=Ò=Ð=Ð=Ø(¨4Ñ/ñ >Ô=Ð=øðð rl   c                  ó®  —  G d„ dt           ¦  «        }  | t          ¦   «         ¦  «                             t          t          ¦  «          G d„ dt           ¦  «        }t          j        t          d¬¦  «        5   |t          ¦   «         t          d¬¦  «        ¬	¦  «                             t          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nc                   ó&   ‡ — e Zd Zˆ fd„Zdd„Zˆ xZS )ú;test__custom_fit_no_run_search.<locals>.NoRunSearchSearchCVc                 ó<   •—  t          ¦   «         j        |fi |¤Ž d S re   r[  r]  s      €ri   rj   zDtest__custom_fit_no_run_search.<locals>.NoRunSearchSearchCV.__init__'  r_  rl   Nc                 ó   — | S re   r—   )rh   rs   rË   r)  Ú
fit_paramss        ri   ru   z?test__custom_fit_no_run_search.<locals>.NoRunSearchSearchCV.fit*  s   € ØˆKrl   rŽ   )r�   r‘   r’   rj   ru   rd  ©r•  s   @ri   ÚNoRunSearchSearchCVrn  &  sL   ø€ € € € € ð	2ð 	2ð 	2ð 	2ð 	2ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	rl   rs  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ú3test__custom_fit_no_run_search.<locals>.BadSearchCVc                 ó<   •—  t          ¦   «         j        |fi |¤Ž d S re   r[  r]  s      €ri   rj   z<test__custom_fit_no_run_search.<locals>.BadSearchCV.__init__1  r_  rl   )r�   r‘   r’   rj   rd  rr  s   @ri   ÚBadSearchCVru  0  s8   ø€ € € € € ð	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2rl   rw  z_run_search not implemented.r°   r    r&  rì   )	r>   rK   ru   rs   rË   r²   r³   ÚNotImplementedErrorr5   )rs  rw  s     ri   Útest__custom_fit_no_run_searchry  %  s.  € ðð ð ð ð �lñ ô ð ð Ð�™œÑÔ×"Ò"¥1¥aÑ(Ô(Ð(ð2ð 2ð 2ð 2ð 2•lñ 2ô 2ð 2õ 
ŒÕ*Ð2PÐ	QÑ	QÔ	Qð ;ð ;àˆ•C‘E”E�e¨QÐ/Ñ/Ô/Ð0Ñ0Ô0×4Ò4µQ½Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   Á7AC
Ã
CÃCc                  ó€  — t          d¬¦  «                             t          ¦  «        } d„ | D ¦   «          d}t          t	          ¦   «         dg d¢i| d¬¦  «        }t          j        t          d	¬
¦  «        5  |                     t          d |…         t          d |…         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrº   r&  c                 ó   — g | ]}|‘ŒS r—   r—   )r£   Úus     ri   r¦   z0test_empty_cv_iterator_error.<locals>.<listcomp>C  s   € €O€O€Oˆ1€Q€O€O€Orl   rö   r3  ©rÌ  r˜  r  r»   ©rÛ   Ún_jobszNNo fits were performed. Was the CV iterator empty\? Were there no candidates\?r°   )
r5   r®  rs   r:   r&   r²   r³   rå   ru   rË   )rÛ   Ú
train_sizeÚridges      ri   Útest_empty_cv_iterator_errorr‚  ;  s  € õ
 
˜Ð	Ñ	Ô	×	 Ò	 ¥Ñ	#Ô	#€Bð €O�€O�O„O€Oð €JÝ�u™wœw¨Ð2DÐ2DÐ2DÐ(EÈ"ÐUVÐWÑWÔW€Eõ 
ŒÝð*ð
ñ 
ô 
ð 2ð 2ð 	�	Š	•!�K�Z�K”.¥! K Z K¤.Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   Á51B3Â3B7Â:B7c                  óV  —  G d„ dt           ¦  «        }  | d¬¦  «        }d}t          t          ¦   «         dg d¢i|d¬	¦  «        }t          j        t
          d
¬¦  «        5  |                     t          d |…         t          d |…         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó   — e Zd Zd„ ZdS )ú.test_random_search_bad_cv.<locals>.BrokenKFoldc                 ó   — dS )Nrƒ   r—   )rh   ÚargsÚkws      ri   Úget_n_splitsz;test_random_search_bad_cv.<locals>.BrokenKFold.get_n_splits[  s   € Ø�1rl   N)r�   r‘   r’   r‰  r—   rl   ri   ÚBrokenKFoldr…  Z  s#   € € € € € ð	ð 	ð 	ð 	ð 	rl   rŠ  rº   r&  rö   r3  r}  r»   r~  zVcv.split and cv.get_n_splits return inconsistent results. Expected \d+ splits, got \d+r°   )	r5   r:   r&   r²   r³   rå   ru   rs   rË   )rŠ  rÛ   r€  r�  s       ri   Útest_random_search_bad_cvr‹  W  s  € ðð ð ð ð •eñ ô ð ð
 
ˆ˜aÐ	 Ñ	 Ô	 €Bà€JÝ�u™wœw¨Ð2DÐ2DÐ2DÐ(EÈ"ÐUVÐWÑWÔW€Eõ 
ŒÝðð
ñ 
ô 
ð 2ð 2ð 	�	Š	•!�K�Z�K”.¥! K Z K¤.Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   Á 1BÂB"Â%B"r8  F)r    rº   r÷   ró  r»   c                 óè  — t          dd¬¦  «        \  }} G d„ d¦  «        } | t          ¦   «         f |¦   «         d|dœ|¤Ž}t          j        t          ¦  «        5 }|                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   |rdd	gndg}t          |¦  «        t          |¦  «        k    sJ ‚t          ||¦  «        D ]!\  }	}
d
|
› d�t          |	j	        ¦  «        v sJ ‚Œ"|j
        d                              ¦   «         }t          j        |j
        d         ¦  «        }t          |j
        d         |         |¦  «         t          j        |j
        d         |          |k     ¦  «        sJ ‚d S )Nr    r   )r  r  c                   ó   — e Zd ZdZd„ Zd„ ZdS )úHtest_searchcv_raise_warning_with_non_finite_score.<locals>.FailingScorerz1Scorer that will fail for some split but not all.c                 ó   — d| _         d S rw   )Ún_countsrœ   s    ri   rj   zQtest_searchcv_raise_warning_with_non_finite_score.<locals>.FailingScorer.__init__‡  s   € ØˆDŒMˆMˆMrl   c                 óZ   — | xj         dz  c_         | j         dz  dk    rt          j        S dS )Nrƒ   r÷   r   )r�  ro   r  )rh   ré  rs   rË   s       ri   Ú__call__zQtest_searchcv_raise_warning_with_non_finite_score.<locals>.FailingScorer.__call__Š  s0   € ØˆMŒM˜QÑˆMŒMØŒ}˜qÑ  AÒ%Ð%Ý”v�Ø�1rl   N)r�   r‘   r’   r“   rj   r’  r—   rl   ri   ÚFailingScorerrŽ  „  s8   € € € € € Ø?Ð?ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	rl   r“  rº   )rä   rÛ   r8  rç  ræ  zOne or more of the z scores are non-finiter+  r™  )r   rP   r²   r   r¡  ru   rn   ÚziprF  Úmessagerâ   Úmaxro   r  r]   r  )rô   ra  r8  rs   rË   r“  r¥   Úwarn_msgÚset_with_warningÚmsgÚdatasetÚ	last_rankÚnon_finite_masks                ri   Ú1test_searchcv_raise_warning_with_non_finite_scorer�  p  sü  € õ$ ¨¸Ð;Ñ;Ô;�D€A€qð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð ˆ8ÝÑ Ô ðà�‘”ØØ-ð	ð ð
 ðð €Dõ 
Œ•kÑ	"Ô	"ð  hØ�Š��A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð -?ÐL˜ Ð(Ð(ÀVÀHÐÝˆx‰=Œ=�CÐ 0Ñ1Ô1Ò1Ð1Ð1Ð1Ý˜HÐ&6Ñ7Ô7ð Yð Y‰ˆˆWØD WÐDÐDÐDÍÈCÌKÑHXÔHXÐXÐXÐXÐXÐXð Ô Ð!2Ô3×7Ò7Ñ9Ô9€IÝ”h˜tÔ/Ð0AÔBÑCÔC€OÝ�tÔ'Ð(9Ô:¸?ÔKÈYÑWÔWÐWåŒ6�$Ô"Ð#4Ô5°Ð6FÔGÈ)ÒSÑTÔTÐTÐTÐTÐTÐTs   ÁA?Á?BÂBc                  ó°  — d„ } t          ddd¬¦  «        \  }}t          d¬¦  «        }t          |ddd	gi| d
¬¦  «        }|                     ||¦  «         g d¢}|D ] }d                     |¦  «        |j        v sJ ‚Œ!|                     |¦  «        }t          ||¦  «        }|                     ||¦  «        t          j
        |d         ¦  «        k    sJ ‚d S )Nc                 óŠ   — |                       |¦  «        }t          ||¦  «        }|d         |d         |d         |d         dœS )N)r   r   ©r   rƒ   )rƒ   r   ©rƒ   rƒ   ©ÚtnÚfpÚfnÚtp)r{   r)   )ræ   rs   rË   rh  Úcms        ri   Úcustom_scorerzAtest_callable_multimetric_confusion_matrix.<locals>.custom_scorer«  sB   € Ø—’˜Q‘”ˆÝ˜a Ñ(Ô(ˆØ˜”h b¨¤h°b¸´hÀbÈÄhÐOÐOÐOrl   é(   r»   r–  rN  r  rÌ   r  rƒ   r¤  r’  r¢  zmean_test_{}r   )r   rL   r0   ru   Úformatrâ   r{   r)   r†   r²   r_  )	r¨  rs   rË   rÓ  rb  Úscore_namesÚnamerh  r§  s	            ri   Ú*test_callable_multimetric_confusion_matrixr­  ¨  s  € ðPð Pð Põ
 ¨¸ÈÐKÑKÔK�D€A€qÝ
 Ð
$Ñ
$Ô
$€CÝ˜#  c¨1 X˜¸ÈTÐRÑRÔR€Fà
‡J‚Jˆq�!ÑÔÐà*Ð*Ð*€KØð Að AˆØ×$Ò$ TÑ*Ô*¨fÔ.@Ð@Ð@Ð@Ð@Ð@à�^Š^˜AÑÔ€FÝ	˜!˜VÑ	$Ô	$€BØ�<Š<˜˜1ÑÔ¥¤¨r°$¬xÑ!8Ô!8Ò8Ð8Ð8Ð8Ð8Ð8rl   c                  óþ  — d„ } t          ddd¬¦  «        \  }}t          d¬¦  «        }t          |ddd	gi| d
¬¦  «        }t          |ddd	gid
dgd
¬¦  «        }|                     ||¦  «         |                     ||¦  «         |j        t          j        |j        ¦  «        k    sJ ‚|j        |j        k    sJ ‚|                     ||¦  «        t          j        |                     ||¦  «        ¦  «        k    sJ ‚d S )Nc                 ón   — |                       |¦  «        }t          ||¦  «        t          ||¦  «        dœS )N)r@  r  )r{   r-   r(   ©rÓ  rs   rË   rh  s       ri   r¨  zHtest_callable_multimetric_same_as_list_of_strings.<locals>.custom_scorerÁ  s:   € Ø—’˜Q‘”ˆå" 1 fÑ-Ô-Ý& q¨&Ñ1Ô1ð
ð 
ð 	
rl   r©  r»   r–  rN  r  rÌ   r  rƒ   r@  r’  r  ©	r   rL   r0   ru   r{  r²   r_  r>  r†   )r¨  rs   rË   rÓ  Úsearch_callableÚ
search_strs         ri   Ú1test_callable_multimetric_same_as_list_of_stringsr´  ¿  s1  € ð
ð 
ð 
õ ¨¸ÈÐKÑKÔK�D€A€qÝ
 Ð
$Ñ
$Ô
$€CÝ"Øˆc�C˜�8ˆ_ m¸8ðñ ô €Oõ Øˆc�C˜�8ˆ_ x°Ð&<ÀHðñ ô €Jð ×Ò˜˜1ÑÔÐØ‡N‚N�1�aÑÔÐàÔ&­&¬-¸
Ô8NÑ*OÔ*OÒOÐOÐOÐOØÔ&¨*Ô*@Ò@Ð@Ð@Ð@Ø× Ò   AÑ&Ô&­&¬-¸
×8HÒ8HÈÈAÑ8NÔ8NÑ*OÔ*OÒOÐOÐOÐOÐOÐOrl   c                  óF  — d„ } t          ddd¬¦  «        \  }}t          d¬¦  «        }t          |ddd	gi| d
¬¦  «        }t          |ddd	gidd¬¦  «        }t          |ddd	gidgd¬¦  «        }|                     ||¦  «         |                     ||¦  «         |                     ||¦  «         |j        t          j        |j        ¦  «        k    sJ ‚|j        |j        k    sJ ‚|                     ||¦  «        t          j        |                     ||¦  «        ¦  «        k    sJ ‚|j        t          j        |j        ¦  «        k    sJ ‚|j        |j        k    sJ ‚|                     ||¦  «        t          j        |                     ||¦  «        ¦  «        k    sJ ‚d S )Nc                 óL   — |                       |¦  «        }t          ||¦  «        S re   )r{   r-   r°  s       ri   r¨  zHtest_callable_single_metric_same_as_single_string.<locals>.custom_scorerÛ  s!   € Ø—’˜Q‘”ˆÝ˜A˜vÑ&Ô&Ð&rl   r©  r»   r–  rN  r  rÌ   r  rƒ   Tr’  r@  r±  )r¨  rs   rË   rÓ  r²  r³  Úsearch_list_strs          ri   Ú1test_callable_single_metric_same_as_single_stringr¸  Ù  sÕ  € ð'ð 'ð 'õ ¨¸ÈÐKÑKÔK�D€A€qÝ
 Ð
$Ñ
$Ô
$€CÝ"Øˆc�C˜�8ˆ_ m¸4ðñ ô €Oõ ˜c C¨#¨q¨ ?¸HÈHÐUÑUÔU€JÝ"Øˆc�C˜�8ˆ_ x j¸ðñ ô €Oð ×Ò˜˜1ÑÔÐØ‡N‚N�1�aÑÔÐØ×Ò˜˜1ÑÔÐàÔ&­&¬-¸
Ô8NÑ*OÔ*OÒOÐOÐOÐOØÔ&¨*Ô*@Ò@Ð@Ð@Ð@Ø× Ò   AÑ&Ô&­&¬-¸
×8HÒ8HÈÈAÑ8NÔ8NÑ*OÔ*OÒOÐOÐOÐOàÔ&­&¬-¸
Ô8NÑ*OÔ*OÒOÐOÐOÐOØÔ&¨*Ô*@Ò@Ð@Ð@Ð@Ø× Ò   AÑ&Ô&­&¬-¸
×8HÒ8HÈÈAÑ8NÔ8NÑ*OÔ*OÒOÐOÐOÐOÐOÐOrl   c                  ó  — d„ } t          ddd¬¦  «        \  }}t          t          d¬¦  «        ddd	gi| d
¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó
   — ddiS )NÚbad_namerƒ   r—   ©rÓ  rs   rË   s      ri   Ú
bad_scorerzBtest_callable_multimetric_error_on_invalid_key.<locals>.bad_scorer÷  s   € Ø˜AˆÐrl   r©  r»   r–  rN  r  rÌ   r  rƒ   Ú	good_namer’  z`For multi-metric scoring, the parameter refit must be set to a scorer key or a callable to refitr°   )r   r0   rL   r²   r³   rå   ru   )r½  rs   rË   ræ   r™  s        ri   Ú.test_callable_multimetric_error_on_invalid_keyr¿  õ  sô   € ðð ð õ ¨¸ÈÐKÑKÔK�D€A€qÝ
Ý˜rÐ"Ñ"Ô"Ø	ˆs�AˆhˆØØð	ñ ô €Cð	,ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA?Á?BÂBc                  ó�  — d„ } t          ddd¬¦  «        \  }}t          ¦   «         }t          |dg d¢ig| dd	¬
¦  «        }t          j        dt          j        ¬¦  «        }t          j        t          |¬¦  «        5  | 	                    ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        d         g d¢¦  «         d S )Nc                 ó
   — ddiS ©NrA  rƒ   r—   r¼  s      ri   r¨  zBtest_callable_multimetric_error_failing_clf.<locals>.custom_scorer	  ó   € Ø�qˆzÐrl   rƒ  r«   r   rN  r‰  r  Fr  r  zm5 fits failed.+total of 15.+The score on these train-test partitions for these parameters will be set to 0\.1r  r°   Úmean_test_acc)rƒ   rƒ   r  )r   r  r0   r`  r  r  r²   r   r    ru   rY   râ   )r¨  rs   rË   ræ   r/  r  s         ri   Ú+test_callable_multimetric_error_failing_clfrÅ  
	  s)  € ðð ð õ ¨¸ÈÐKÑKÔK�D€A€qå
Ñ
Ô
€CÝ	ØØ
�y�y�yÐ	!Ð"ØØØð
ñ 
ô 
€Bõ ”jð	KåŒiðñ ô €Oõ
 
ŒÕ&¨oÐ	>Ñ	>Ô	>ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �B”N ?Ô3°[°[°[ÑAÔAÐAÐAÐAs   Á;BÂB"Â%B"c                  óz  — d„ } t          ddd¬¦  «        \  }}t          ¦   «         }t          |dt          j        gdz  ig| dd	¬
¦  «        }d}t	          j        d|› �t          j        ¬¦  «        }t          j        t          |¬¦  «        5  | 
                    ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó
   — ddiS rÂ  r—   r¼  s      ri   r¨  zBtest_callable_multimetric_clf_all_fits_fail.<locals>.custom_scorer(	  rÃ  rl   rƒ  r«   r   rN  r‰  rº   Fr  r  z1ValueError: Failing classifier failed as requiredz5All the 15 fits failed.+your model is misconfigured.+r  r°   r  )r¨  rs   rË   ræ   r/  Úindividual_fit_error_messager¶   s          ri   Ú+test_callable_multimetric_clf_all_fits_failrÉ  &	  s1  € ðð ð õ ¨¸ÈÐKÑKÔK�D€A€qå
Ñ
Ô
€Cå	ØØ
Õ)Ô;Ð<¸qÑ@Ð	AÐBØØØð
ñ 
ô 
€Bð $WÐ Ý”Jð.Ø+ð.ð .õ Œiðñ ô €Mõ 
Œ•z¨Ð	7Ñ	7Ô	7ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB0Â0B4Â7B4c                  óp  — d} t          | ¬¦  «        \  }}t          ¦   «         }dddgi}t          ||¦  «        }t          ||d¬¦  «        }t	          |d¦  «        rJ ‚t	          |d¦  «        rJ ‚|                     ||¦  «         |                     ||¦  «         |j        | k    sJ ‚|j        | k    sJ ‚d S )Nr»   ©rO  Úmax_iterrº   rƒ   r¬   Ún_features_in_)r   r   r0   r:   rï   ru   rÍ  )rO  rs   rË   Úgbdtrñ   r/  rÙ  s          ri   Útest_n_features_inrÏ  D	  s×   € ð €JÝ¨*Ð5Ñ5Ô5�D€A€qÝ)Ñ+Ô+€DØ˜q !˜fÐ%€JÝ	�d˜JÑ	'Ô	'€BÝ	˜D *°QÐ	7Ñ	7Ô	7€BÝ�rÐ+Ñ,Ô,Ð,Ð,Ð,Ý�rÐ+Ñ,Ô,Ð,Ð,Ð,Ø‡F‚Fˆ1ˆa�L„L€LØ‡F‚Fˆ1ˆa�L„L€LØÔ 
Ò*Ð*Ð*Ð*ØÔ 
Ò*Ð*Ð*Ð*Ð*Ð*rl   Úpairwisec                 óÈ   ‡ —  G ˆ fd„dt           ¦  «        } |¦   «         }d}t          |ddgi¦  «        }‰ |                     ¦   «         j        j        k    s
J |¦   «         ‚dS )zë
    Test implementation of BaseSearchCV has the pairwise tag
    which matches the pairwise tag of its estimator.
    This test make sure pairwise tag is delegated to the base estimator.

    Non-regression test for issue #13920.
    c                   ó"   •‡ — e Zd Zˆ ˆfd„Zˆ xZS )úStest_search_cv_pairwise_property_delegated_to_base_estimator.<locals>.TestEstimatorc                 ó`   •— t          ¦   «                              ¦   «         }‰|j        _        |S re   )r\  Ú__sklearn_tags__Ú
input_tagsrÐ  )rh   Útagsr•  rÐ  s     €€ri   rÕ  zdtest_search_cv_pairwise_property_delegated_to_base_estimator.<locals>.TestEstimator.__sklearn_tags__`	  s'   ø€ Ý‘7”7×+Ò+Ñ-Ô-ˆDØ'/ˆDŒOÔ$ØˆKrl   )r�   r‘   r’   rÕ  rd  )r•  rÐ  s   @€ri   ÚTestEstimatorrÓ  _	  s>   øø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	rl   rØ  z.BaseSearchCV pairwise tag must match estimatorrÀ  r«   N)r   r0   rÕ  rÖ  rÐ  )rÐ  rØ  rÓ  Úattr_messagerÛ   s   `    ri   Ú<test_search_cv_pairwise_property_delegated_to_base_estimatorrÚ  U	  s�   ø€ ðð ð ð ð ð ð �ñ ô ð ð ˆ-‰/Œ/€CØC€LÝ	�c˜M¨B¨4Ð0Ñ	1Ô	1€BØ�r×*Ò*Ñ,Ô,Ô7Ô@Ò@Ð@Ð@À,Ñ@Ô@Ð@Ð@Ð@rl   c                  óø   —  G d„ dt           ¦  «        }  | ¦   «         }d}dD ]W}|                     |¬¦  «         t          |ddgi¦  «        }||                     ¦   «         j        j        k    s
J |¦   «         ‚ŒXdS )	zð
    Test implementation of BaseSearchCV has the pairwise property
    which matches the pairwise tag of its estimator.
    This test make sure pairwise tag is delegated to the base estimator.

    Non-regression test for issue #13920.
    c                   ó&   ‡ — e Zd Zdd„Zˆ fd„Zˆ xZS )úXtest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwiseTc                 ó   — || _         d S re   ©rÐ  )rh   rÐ  s     ri   rj   zatest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwise.__init__u	  s   € Ø$ˆDŒMˆMˆMrl   c                 ój   •— t          ¦   «                              ¦   «         }| j        |j        _        |S re   )r\  rÕ  rÐ  rÖ  )rh   r×  r•  s     €ri   rÕ  zitest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwise.__sklearn_tags__x	  s)   ø€ Ý‘7”7×+Ò+Ñ-Ô-ˆDØ'+¤}ˆDŒOÔ$ØˆKrl   )T)r�   r‘   r’   rj   rÕ  rd  rr  s   @ri   ÚEstimatorPairwiserÝ  t	  sL   ø€ € € € € ð	%ð 	%ð 	%ð 	%ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	rl   rá  z4BaseSearchCV _pairwise property must match estimatorrr  rß  rÀ  r«   N)r   r�   r0   rÕ  rÖ  rÐ  )rá  rÓ  rÙ  Ú_pairwise_settingrÛ   s        ri   Ú=test_search_cv__pairwise_property_delegated_to_base_estimatorrã  k	  s¸   € ðð ð ð ð �Mñ ô ð ð Ð
Ñ
Ô
€CØI€Là*ð 
ð 
ÐØ�ŠÐ 1ˆÑ2Ô2Ð2Ý˜# °¨tÐ4Ñ5Ô5ˆØ  B×$7Ò$7Ñ$9Ô$9Ô$DÔ$MÒMÐMÐMØñ NÔMÐMÐMð
ð 
rl   c                  óÖ  — d} d}t          | d¬¦  «        \  }}ddgi}t          ¦   «         }t          |||¬¦  «        }|                     ||¦  «         |                     |¦  «        }t          |¦  «        }t          d¬	¦  «        }t          |||¬¦  «        }|                     ||¦  «         |                     |¦  «        }	d
}
||	k                         ¦   «         s
J |
¦   «         ‚dS )zÚ
    Test implementation of BaseSearchCV has the pairwise tag
    which matches the pairwise tag of its estimator.
    This test ensures the equivalence of 'precomputed'.

    Non-regression test for issue #13920.
    rÚ  r    r   rÛ  rÀ  r«   rì   rx  )Úmetricz2GridSearchCV not identical with precomputed metricN)r   rC   r0   ru   r{   r/   r  )r  r'  rs   rË   Úgrid_paramsræ   rÛ   Úpreds_originalÚX_precomputedÚpreds_precomputedrÙ  s              ri   Ú;test_search_cv_pairwise_property_equivalence_of_precomputedrê  ˆ	  sû   € ð €IØ€HÝ¨ÀÐCÑCÔC�D€A€qØ  2 $Ð'€Kõ Ñ
 Ô
 €CÝ	�c˜;¨8Ð	4Ñ	4Ô	4€BØ‡F‚Fˆ1ˆa�L„L€LØ—Z’Z ‘]”]€Nõ (¨Ñ*Ô*€MÝ
 mÐ
4Ñ
4Ô
4€CÝ	�c˜;¨8Ð	4Ñ	4Ô	4€BØ‡F‚Fˆ=˜!ÑÔÐØŸ
š
 =Ñ1Ô1ÐàG€LØÐ/Ò/×4Ò4Ñ6Ô6ÐDÐD¸ÑDÔDÐ6ÐDÐDrl   zSearchCV, param_searchr#  r  r˜  rº   c                 óÚ   —  G d„ dt           t          ¦  «        } |  |¦   «         |¦  «        }t          d¬¦  «        \  }}|                     ||d¬¦  «         |j        j        dk    sJ ‚d S )Nc                   ó$   — e Zd Zdd„Zdd„Zd„ ZdS )ú,test_scalar_fit_param.<locals>.TestEstimatorNc                 ó   — || _         d S re   )r#  )rh   r#  s     ri   rj   z5test_scalar_fit_param.<locals>.TestEstimator.__init__¯	  s   € ØˆDŒFˆFˆFrl   c                 ó   — || _         d S re   )Úr_)rh   rs   rË   Úrs       ri   ru   z0test_scalar_fit_param.<locals>.TestEstimator.fit²	  s   € ØˆDŒGˆGˆGrl   c                 óF   — t          j        t          |¦  «        ¬¦  «        S )Nrx   )ro   r  rn   r}   s     ri   r{   z4test_scalar_fit_param.<locals>.TestEstimator.predictµ	  s   € Ý”8¥3 q¡6¤6Ð+Ñ+Ô+Ð+rl   re   ©r�   r‘   r’   rj   ru   r{   r—   rl   ri   rØ  rí  ®	  sK   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	,ð 	,ð 	,ð 	,ð 	,rl   rØ  r–  r  )rñ  )r   r   r   ru   rá   rð  )rô   Úparam_searchrØ  Úmodelrs   rË   s         ri   Útest_scalar_fit_paramrö  ¦	  s�   € ð,ð ,ð ,ð ,ð ,�­ñ ,ô ,ð ,ð ˆH�]�]‘_”_ lÑ3Ô3€EÝ¨BÐ/Ñ/Ô/�D€A€qØ	‡I‚Iˆa��b€IÑÔÐØÔ Ô# rÒ)Ð)Ð)Ð)Ð)Ð)rl   c                 óÆ   — t          t          d¬¦  «        ddiŽ\  }}}} G d„ dt          ¦  «        }d„ } |  |¦   «         |¦  «        }||f|ddœ}	 |j        ||fi |	¤Ž d S )Nr–  r  r  c                   ó(   ‡ — e Zd Z	 	 	 	 dˆ fd„	Zˆ xZS )ú9test_scalar_fit_param_compat.<locals>._FitParamClassifierNc                 óü   •— t          ¦   «                              |||¬¦  «         |dk    sJ ‚t          |¦  «        sJ ‚t          |t          ¦  «        sJ ‚|d         j        dk    sJ ‚|d         j        dk    sJ ‚| S )Nrœ  r   r    rƒ   )r\  ru   ÚcallablerÎ   rÃ   Úndim)rh   rs   rË   r�  Útuple_of_arraysÚscalar_paramÚcallable_paramr•  s          €ri   ru   z=test_scalar_fit_param_compat.<locals>._FitParamClassifier.fitÑ	  s•   ø€ õ ‰GŒG�KŠK˜˜1¨MˆKÑ:Ô:Ð:Ø !Ò#Ð#Ð#Ð#Ý˜NÑ+Ô+Ð+Ð+Ð+õ ˜o­uÑ5Ô5Ð5Ð5Ð5Ø" 1Ô%Ô*¨aÒ/Ð/Ð/Ð/Ø" 1Ô%Ô*¨aÒ/Ð/Ð/Ð/ØˆKrl   ©NNNN)r�   r‘   r’   ru   rd  rr  s   @ri   Ú_FitParamClassifierrù  Ð	  sK   ø€ € € € € ð
 Ø ØØð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	rl   r  c                  ó   — d S re   r—   r—   rl   ri   Ú_fit_param_callablez9test_scalar_fit_param_compat.<locals>._fit_param_callableä	  s   € Øˆrl   )rý  rÿ  rþ  )r=   r   r'   ru   )
rô   rô  ÚX_trainÚX_validr~  Úy_validr  r  rõ  rq  s
             ri   Útest_scalar_fit_param_compatr  ¾	  sÈ   € õ *:Ý	¨"Ð	-Ñ	-Ô	-ð*Ø<>ð*ð *Ñ&€GˆW�g˜wðð ð ð ð �mñ ô ð ð(ð ð ð ˆHÐ(Ð(Ñ*Ô*¨LÑ9Ô9€Eð $ WÐ-Ø-Øðð €Jð
 €E„Iˆg�wÐ-Ð- *Ð-Ð-Ð-Ð-Ð-rl   z)ignore:The total space of parameters 4 isÚ	Predictorc                 ó\  — t           j                             d¦  «        }|                     dd¦  «        t          j        dgdz  dgdz  z   ¦  «        }}t          dt          ¦   «         fd |¦   «         fg¦  «        }dd	gdd	gd
œ} | ||d¬¦  «        }|                     ||¦  «         |j         	                    ¦   «         | 	                    ¦   «         k    sJ ‚| 
                    |¦  «        }t          |¦  «        rNt          |d¦  «         |                     ||¦  «        t          j        t!          ||¦  «        ¦  «        k    sJ ‚d S t#          ||                     ¦   «         ¦  «         |                     ||¦  «        t          j        t'          ||¦  «        ¦  «        k    sJ ‚d S )Nr   é   r    r÷   rƒ   rƒ  ÚtransformerÚ	predictorr«   )Útransformer__paramÚpredictor__paramarù   r  )ro   r*  r+  Úrandnrþ   rE   rW   ru   r  rš  r{   r   r]   r†   r²   r_  r(   rY   rg  r,   )	rô   r  r,  rs   rË   rõ  rŒ   rb  rh  s	            ri   Ú1test_search_cv_using_minimal_compatible_estimatorr  ø	  s¥  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�9Š9�R˜ÑÔ�RœX q c¨A¡g°°°b±Ñ&8Ñ9Ô9€q€AåØ
Õ+Ñ-Ô-Ð	.°¸i¸i¹k¼kÐ0JÐKñô €Eð
  ! "˜gØ ˜Wðð €Fð ˆX�e˜V°Ð9Ñ9Ô9€FØ
‡J‚Jˆq�!ÑÔÐàÔ×#Ò#Ñ%Ô%¨¯ª©¬Ò6Ð6Ð6Ð6à�^Š^˜AÑÔ€FÝ�VÑÔð HÝ˜6 1Ñ%Ô%Ð%Ø�|Š|˜A˜qÑ!Ô!¥V¤]µ>À!ÀVÑ3LÔ3LÑ%MÔ%MÒMÐMÐMÐMÐMÐMå˜ §¢¡¤Ñ)Ô)Ð)Ø�|Š|˜A˜qÑ!Ô!¥V¤]µ8¸A¸vÑ3FÔ3FÑ%GÔ%GÒGÐGÐGÐGÐGÐGrl   c                 ód  — t          dddd¬¦  «        \  }}t          d¬¦  «        }ddgi}t          ||d	d
d
|¬¦  «                             ||¦  «         |                      ¦   «         j        }|rt          j        d|¦  «        }nt          j        d|¦  «        }t          |¦  «        d
k    sJ ‚dS )zkCheck that search cv with verbose>2 shows the score for single
    metrics. non-regression test for #19658.rö   r    r  r   r  r  rÌ   r  r  rº   )rä   rÜ   rÛ   r8  z$score=\(train=[\d\.]+, test=[\d.]+\)zscore=[\d\.]+N)	r   rL   r0   ru   Ú
readouterrÚoutr`  Úfindallrn   )Úcapsysr8  rs   rË   ræ   r¥   Úcapturedr±   s           ri   Útest_search_cv_verbose_3r  
  sÈ   € õ ¨¸À#ÐTUÐVÑVÔV�D€A€qÝ
 Ð
#Ñ
#Ô
#€CØ�#�ˆ<€DåØØØØØØ-ðñ ô ÷ 
‚cˆ!ˆQ�i„i€iØ× Ò Ñ"Ô"Ô&€HØð 7Ý”
ÐBÀHÑMÔMˆˆå”
Ð+¨XÑ6Ô6ˆÝˆu‰:Œ:˜Š?ˆ?ˆ?ˆ?ˆ?ˆ?rl   rð  c                 ól  — t          d¬¦  «        \  }}t          ¦   «         gdgdœ}|d         d         j        }t          dt	          ¦   «         fdg¦  «        }||i} | |fd	d
ddœ|¤Ž                     ||¦  «        }|d         d         j        |k    sJ ‚|j        j        d         j        dk    sJ ‚d S )Nr–  r  r˜  )ræ   Úclf__Cræ   r   Útrs)ræ   NTr    r  ©r6  rÛ   rä   )r   rL   rÌ   rE   rW   ru   rá   Únamed_steps)	rô   rô  rs   rË   rŒ   Úorig_Crð   Úparam_grid_searchr/  s	            ri   Útest_search_estimator_paramr  /
  sá   € õ ¨BÐ/Ñ/Ô/�D€A€qå‘k”k�]¨t¨fÐ5Ð5€FØ�EŒ]˜1ÔÔ€Få�eÕ/Ñ1Ô1Ð2°MÐBÑCÔC€Dà% vÐ.ÐØ	ˆ�$Ð	R˜d q°*Ð	RÐ	RÐ@QÐ	RÐ	R×	VÒ	VØ	ˆ1ñ
ô 
€Bð
 �%Œ=˜ÔÔ Ò'Ð'Ð'Ð'àÔÔ)¨%Ô0Ô2°dÒ:Ð:Ð:Ð:Ð:Ð:rl   c            	      ó~  — dddœ} t          dt          ¦   «         fdt          ¦   «         fg¦  «        }t          || dddd	d¬
¦  «        }g d¢}g d¢}|                     ||¦  «         |j        d         }t          j        dt          ¬¦  «        }g d¢|d d …<   t          j	         
                    |j        |¦  «         d S )N)r¡  ©rƒ   r    )Úl1Úl2)Úvect__ngram_rangeÚ
vect__normÚvectræ   rº   r   r    rƒ   )ré  rð  r­   r  r  rÜ   rÛ   )Úoner)  ÚthreeÚfourÚfive)r   r   rƒ   r   rƒ   Úparam_vect__ngram_rangerU  )r!  r!  r¡  )rE   r"   rA   r:   ru   râ   ro   rÖ   ÚobjectrŠ  r]   rã   )Úparameter_gridÚpipeliner9  Ú
data_trainÚdata_targetÚresultÚexpected_datas          ri   Útest_search_with_2d_arrayr3  M
  só   € ð .Ø"ðð €Nõ à•_Ñ&Ô&Ð'Ø•L‘N”NÐ#ð	
ñô €Hõ 'ØØ*ØØØØØðñ ô €Mð 9Ð8Ð8€JØ!�/�/€KØ×Ò�j +Ñ.Ô.Ð.ØÔ&Ð'@ÔA€FÝ”H˜Q¥fÐ-Ñ-Ô-€MØ/Ð/Ð/€M�!�!�!ÑÝ„J×!Ò! &¤+¨}Ñ=Ô=Ð=Ð=Ð=rl   c                  ó  — t          d¬¦  «        \  } }t          dt          ¦   «         fdt          ¦   «         fg¦  «        }dt          ¦   «         t	          ¦   «         gi}t          ||d¬¦  «        }t          d¬¦  «        5  |                     ¦   «         }d	|v sJ ‚	 d
d
d
¦  «         n# 1 swxY w Y   |                     | |¦  «         t          d¬¦  «        5  |                     ¦   «         }d	|v sJ ‚	 d
d
d
¦  «         n# 1 swxY w Y   t          ||d¬¦  «        }|                     | |¦  «         t          d¬¦  «        5  |                     ¦   «         }d	|vsJ ‚d|v sJ ‚	 d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z5Test different HTML representations for GridSearchCV.r–  r  rM  ræ   F)rñ   r6  Údiagram)Údisplayz<div>DummyClassifier</div>NTz<div>LogisticRegression</div>)	r   rE   rJ   r   r%   r0   r   Ú_repr_html_ru   )rs   rË   r.  rñ   r¦  Ú	repr_htmls         ri   Útest_search_html_reprr9  k
  sq  € å¨BÐ/Ñ/Ô/�D€A€qå˜'¥>Ñ#3Ô#3Ð4°u½oÑ>OÔ>OÐ6PÐQÑRÔR€HØ�/Ñ+Ô+Õ-?Ñ-AÔ-AÐBÐC€Jõ ˜X°*ÀEÐJÑJÔJ€IÝ	 	Ð	*Ñ	*Ô	*ð 9ð 9Ø×)Ò)Ñ+Ô+ˆ	Ø+¨yÐ8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð
 ‡M‚M�!�QÑÔÐÝ	 	Ð	*Ñ	*Ô	*ð 9ð 9Ø×)Ò)Ñ+Ô+ˆ	Ø+¨yÐ8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ
 ˜X°*ÀDÐIÑIÔI€IØ‡M‚M�!�QÑÔÐÝ	 	Ð	*Ñ	*Ô	*ð <ð <Ø×)Ò)Ñ+Ô+ˆ	Ø+°9Ð<Ð<Ð<Ð<Ø.°)Ð;Ð;Ð;Ð;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <ð <s6   ÂB)Â)B-Â0B-ÃDÄDÄ	DÅ!E4Å4E8Å;E8)Úenable_metadata_routingc           	      ó,  — t          d¬¦  «        \  }}t          |¦  «        }t          j                             d¦  «        }|                     |¦  «        }|                     |¦  «        }t          ¦   «         }|ddgii}	t          ¦   «         }
t          |
¬¦  «         	                    dd¬	¦  «        }t          |d
¬¦  «        } | |fd
d|dœ|	¤Ž                     ||||¬¦  «         t          |
¦  «        sJ ‚|
D ]}t          |ddd	||¬¦  «         ŒdS )zMTest that *SearchCV forwards metadata correctly when passed multiple metrics.r–  r  r   rÌ   rƒ   )ÚregistryÚscore_weightsÚscore_metadata)r�  Úmetadatar  )Ú	my_scorerr  r    r  )r=  r>  r†   Ú_score)Úobjr‘  ÚparentÚsplit_paramsr�  r?  N)r   ra   ro   r*  r+  r¬  rL   rN   rM   Úset_score_requestrâ  ru   rn   rO   )rô   rô  rs   rË   r  r,  r=  r>  rÓ  r  Úscorer_registryÚscorerrä   Ú_scorers                 ri   Ú*test_multi_metric_search_forwards_metadatarI  ‹
  s]  € õ ¨BÐ/Ñ/Ô/�D€A€qÝ˜Q‘”€IÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ—H’H˜YÑ'Ô'€MØ—X’X˜iÑ(Ô(€Nå
‰+Œ+€CØ%¨¨a¨S zÐ2Ðå‘k”k€OÝ oÐ6Ñ6Ô6×HÒHØ%Ð0@ð Iñ ô €Fõ ˜V¨jÐ9Ñ9Ô9€GØ€HˆSÐO˜
 q°'ÐOÐOÐ=NÐOÐO×SÒSØ	ˆ1˜M¸.ð Tñ ô ð õ ˆÑÔÐÐÐØ"ð 
ð 
ˆÝØØØØ6Ø'Ø#ð	
ñ 	
ô 	
ð 	
ð 	
ð
ð 
rl   c                 ó,  — t          d¬¦  «        \  }}t          ¦   «         }|ddgii} | |fddi|¤Ž                     ||¦  «        }t          j        t
          d¬¦  «        5  |                     ||d¬	¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z{*SearchCV should reject **params when metadata routing is not enabled
    since this is added only when routing is enabled.r–  r  rÌ   rƒ   rÛ   r    zis only supported ifr°   )r?  N)r   rL   ru   r²   r³   rå   r†   )rô   rô  rs   rË   rÓ  r  r/  s          ri   Ú1test_score_rejects_params_with_no_routing_enabledrK  ²
  sñ   € õ ¨BÐ/Ñ/Ô/�D€A€qÝ
‰+Œ+€CØ%¨¨a¨S zÐ2Ðà	ˆ�#Ð	1Ð	1˜!Ð	1Ð0Ð	1Ð	1×	5Ò	5°a¸Ñ	;Ô	;€Bå	Œ•zÐ)?Ð	@Ñ	@Ô	@ð #ð #Ø
�Š��A ˆÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   Á#B	Â	BÂBc                  óP  —  G d„ dt           t          ¦  «        } dddiddigdddggd	digd
dgdœ}t           | t          ¦   «         ¦  «        |d¬¦  «        }t	          d¬¦  «        \  }}|                     ||¦  «         |D ]"}|j        d|› �         j        t          k    sJ ‚Œ#dS )zQNon-regression test for https://github.com/scikit-learn/scikit-learn/issues/29074c                   ó,   — e Zd Z	 	 	 	 dd„Zdd„Zd„ ZdS )ú8test_cv_results_dtype_issue_29074.<locals>.MetaEstimatorNc                 óL   — || _         || _        || _        || _        || _        d S re   )Úbase_clfÚ
parameter1Ú
parameter2Ú
parameter3Ú
parameter4)rh   rP  rQ  rR  rS  rT  s         ri   rj   zAtest_cv_results_dtype_issue_29074.<locals>.MetaEstimator.__init__Ï
  s+   € ð %ˆDŒMØ(ˆDŒOØ(ˆDŒOØ(ˆDŒOØ(ˆDŒOˆOˆOrl   c                 ó<   — | j                              ||¦  «         | S re   )rP  ru   r�  s      ri   ru   z<test_cv_results_dtype_issue_29074.<locals>.MetaEstimator.fitÝ
  s   € ØŒM×Ò˜a Ñ#Ô#Ð#ØˆKrl   c                 ó8   — | j                              ||¦  «        S re   )rP  r†   r�  s      ri   r†   z>test_cv_results_dtype_issue_29074.<locals>.MetaEstimator.scoreá
  s   € Ø”=×&Ò& q¨!Ñ,Ô,Ð,rl   r   re   )r�   r‘   r’   rj   ru   r†   r—   rl   ri   ÚMetaEstimatorrN  Î
  sY   € € € € € ð ØØØð	)ð 	)ð 	)ð 	)ð	ð 	ð 	ð 	ð	-ð 	-ð 	-ð 	-ð 	-rl   rW  NÚoptionÚAÚBrƒ   r    r#  Ústr1Ústr2)rQ  rR  rS  rT  rº   r9  r   r  Úparam_)	r   r   r0   r%   r   ru   râ   r  r,  )rW  rñ   rç   rs   rË   r  s         ri   Ú!test_cv_results_dtype_issue_29074r^  Ë
  s	  € ð-ð -ð -ð -ð -�¥ñ -ô -ð -ð2 ˜h¨˜_¨x¸¨oÐ>Ø˜a ˜V�nØ˜Q�x�jØ˜vÐ&ð	ð €Jõ Ø�-Õ 2Ñ 4Ô 4Ñ5Ô5ØØðñ ô €Kõ  1Ð%Ñ%Ô%�D€A€qØ‡O‚O�A�qÑÔÐØð Ið IˆØÔ&Ð'7°Ð'7Ð'7Ô8Ô>Å&ÒHÐHÐHÐHÐHðIð Irl   c                  óþ  — t          j        d¦  «        } |                      g d¢g d¢g d¢dœ¦  «        }|                     dd¬¦  «        }|d         }t	          d	t          d
¬¦  «        dgfgd¬¦  «        }t          d	|fdt          ¦   «         fg¦  «        }dt          d
¬¦  «        t          ¦   «         gi}t          ||d¬¦  «        }| 
                    ||¦  «         |j        d         j        t          k    sJ ‚dS )zNCheck cv_results_ for estimators with a `dtype` parameter, e.g. OneHotEncoder.rÒ  )rƒ   r    rº   r»   r÷   )r#  r#  r#  r#  r#  )r„   gffffff@r4  g      @r„   )Ú	numeric_1Úobject_1Útargetrb  rƒ   rÄ  ÚencF)Úsparse_outputra  Úpassthrough)Ú	remainderrë   Úenc__encr    rì   Úparam_enc__encN)r²   ÚimportorskiprÉ  Údropr   rG   rE   r$   rH   r0   ru   râ   r  r,  )ÚpdÚdfrs   rË   rc  rð   ræ  rç   s           ri   Ú'test_search_with_estimators_issue_29157rm  ø
  s:  € å	Ô	˜XÑ	&Ô	&€BØ	�Šà(˜˜Ø1Ð1Ð1Ø/Ð/Ð/ð	
ð 	
ñ
ô 
€Bð 	�Š�˜qˆÑ!Ô!€AØ
ˆ8Œ€AÝ
Ø
•¨UÐ3Ñ3Ô3°j°\Ð	BÐCØðñ ô €Cõ à�CˆLØÕ*Ñ,Ô,Ð-ð	
ñô €Dð 	Ý¨Ð.Ñ.Ô.ÝÑÔð
ð€Kõ ˜t [°QÐ7Ñ7Ô7€KØ‡O‚O�A�qÑÔÐØÔ"Ð#3Ô4Ô:½fÒDÐDÐDÐDÐDÐDrl   c                  óJ  ‡— dŠt          d¬¦  «        \  } }t          t          d¬¦  «        t          ¦   «         ¦  «        }ˆfd„dD ¦   «         }ˆfd„|D ¦   «         }t	          |d|i¬	¦  «        }|                     | |¦  «         |j        d
         j        t          k    sJ ‚dS )zwCheck that GridSearchCV works with params that are arrays of different sizes.

    Non-regression test for #29277.
    r«   rË  Úperiodic)Úextrapolationc                 ó   •— g | ]}‰|z  ‘ŒS r—   r—   )r£   r¤   rO  s     €ri   r¦   z4test_cv_results_multi_size_array.<locals>.<listcomp>&  s   ø€ Ð9Ð9Ð9 q�J ‘NÐ9Ð9Ð9rl   )r«   r³  é   c                 ó€   •— g | ]:}t          j        d t           j        dz  |¦  «                             d‰f¦  «        ‘Œ;S )r   r    rž   )ro   ÚlinspaceÚpirý   )r£   Ún_knotsrO  s     €ri   r¦   z4test_cv_results_multi_size_array.<locals>.<listcomp>'  sP   ø€ ð ð ð àõ 	Œ�A•r”u˜q‘y 'Ñ*Ô*×2Ò2°B¸
Ð3CÑDÔDðð ð rl   Úsplinetransformer__knotsr“  Úparam_splinetransformer__knotsN)	r   rF   rI   r%   r0   ru   râ   r  r,  )rs   rË   Úspline_reg_pipeÚn_knots_listÚ
knots_listÚspline_reg_pipe_cvrO  s         @ri   Ú test_cv_results_multi_size_arrayr}    sç   ø€ ð
 €JÝ¨"Ð-Ñ-Ô-�D€A€qå#Ý¨
Ð3Ñ3Ô3ÝÑÔñô €Oð
 :Ð9Ð9Ð9¨LÐ9Ñ9Ô9€Lðð ð ð à#ðñ ô €Jõ &Ø!à&¨
ð
ðñ ô Ðð ×Ò˜1˜aÑ Ô Ð àÔ&Ð'GÔHÔNÕRXÒXÐXÐXÐXÐXÐXrl   z(array_namespace, device_name, dtype_namec                 ó(  — t          |||¦  «        \  }}t          j        d¦  «                             d¦  «        }|                     |¦  «        }|                     ||¬¦  «        }t          j        dgdz  dgdz  z   ¦  «        }	|                     |	|¬¦  «        }
t          d¬¦  «        5   | t          ¦   «         d	g d
¢idd¬¦  «        }| 	                    ||
¦  «         | 
                    ||
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrö   )r«   r«   )Údevicer   r÷   rƒ   T)Úarray_api_dispatchÚtol)r˜  rÌ  g-Cëâ6?gñhãˆµøä>g�íµ ÷Æ°>gH¯¼šò×z>r    rù   rú   )rX   ro   rü   rý   ÚastypeÚasarrayrþ   r   r   ru   r†   )rô   Úarray_namespaceÚdevice_nameÚ
dtype_nameÚxpr  rs   ÚX_npÚX_xpÚy_npÚy_xpr  s               ri   Ú#test_array_api_search_cv_classifierrŒ  8  sd  € õ & o°{ÀJÑOÔO�J€Bˆå
Œ	�#‰Œ×Ò˜xÑ(Ô(€AØ�8Š8�JÑÔ€DØ�:Š:�d 6ˆ:Ñ*Ô*€Dõ Œ8�Q�C˜!‘G˜q˜c A™gÑ%Ñ&Ô&€DØ�:Š:�d 6ˆ:Ñ*Ô*€Då	¨4Ð	0Ñ	0Ô	0ð #ð #Ø�8Ý&Ñ(Ô(ØÐ8Ð8Ð8Ð9ØØð	
ñ 
ô 
ˆð 	�Š�T˜4Ñ Ô Ð Ø�Š�t˜TÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   Â.ADÄDÄD)rC  r  r!  )rº   r»   )Úcandidate_paramsÚexpectedÚ	param_foozsimple numeric, single param)Úidr¿   r¹   Ú	param_bar)rº   r»   r   )FFTrB  z1simple numeric, one param is missing in one roundrU  zlists of different lengthszlists tuplesrÑ  c                 ó>  — t          t          | ¦  «        ¦  «        }t          ||¦  «        D ]o\  \  }}\  }}||k    sJ ‚|j        |j        k    sJ ‚t          j                             ||¦  «         t          j                             |j        |j        ¦  «         Œpd S re   )r§   r?   r”  r  ro   rŠ  r]   rC  )r�  rŽ  r1  r�  rD  Úexpected_keyÚexpected_values          ri   Ú&test_yield_masked_array_for_each_paramr•  a  s°   € õl Õ4Ð5EÑFÔFÑGÔG€FÝ8;¸FÀHÑ8MÔ8Mð Gð GÑ4‰ˆˆeÑ4�| ^Ø�lÒ"Ð"Ð"Ð"ØŒ{˜nÔ2Ò2Ð2Ð2Ð2Ý
Œ
×%Ò% e¨^Ñ<Ô<Ð<Ý
Œ
×%Ò% e¤j°.Ô2EÑFÔFÐFÐFð	Gð Grl   c                  óü   — d„ t          d¦  «        D ¦   «         } t          j        ¦   «         5  t          j        dt          ¦  «         t          t          | ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — g | ]}d |i‘ŒS )r  r—   )r£   r¤   s     ri   r¦   z>test_yield_masked_array_no_runtime_warning.<locals>.<listcomp>¡  s   € Ð:Ð:Ð:¨˜ !˜Ð:Ð:Ð:rl   r+  Úerror)r¨   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr§   r?   )r�  s    ri   Ú*test_yield_masked_array_no_runtime_warningr�  Ÿ  sÎ   € à:Ð:­e°D©k¬kÐ:Ñ:Ô:ÐÝ	Ô	 Ñ	"Ô	"ð Cð CÝÔ˜g¥~Ñ6Ô6Ð6ÝÕ/Ð0@ÑAÔAÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs   ­7A1Á1A5Á8A5c                 ó0  — t           | ¦   «         dg d¢id|¬¦  «        t           | ¦   «         dt          dd¦  «        idd|d¬	¦  «        t           | ¦   «         dg d¢idd
|¬¦  «        t	           | ¦   «         dt          dd¦  «        idd
|d¬¦  «        gS )NrÌ  r¹   r    ©rÛ   rä   rƒ   r»   rº   r–  )rÛ   r­   rä   r  T)rÛ   Úaggressive_eliminationrä   )rÛ   r   rä   r  )r0   r:   r   r3   r4   )ré  rä   s     ri   Ú_searchcv_callback_test_casesr¡  §  sÑ   € å�Y�Y‘[”[ :¨y¨y¨yÐ"9¸aÈÐQÑQÔQÝØˆI‰KŒKØ�  A™œÐ'ØØØØð	
ñ 	
ô 	
õ 	ØˆI‰KŒKØ˜˜˜Ð#ØØ#'Øð	
ñ 	
ô 	
õ 	ØˆI‰KŒKØ�  A™œÐ'ØØ#'ØØð	
ñ 	
ô 	
ð#ð rl   r6  rb  r  c                 óv  ‡
— t          ¦   «         t          ¦   «         g} t          | ¦  «                             |¬¦  «        j        |Ž                      t          t          ¦  «        } d}d}| j        Š
d| j	        j
        v r6| j        }t          ˆ
fd„| j        D ¦   «         ¦  «        }|||z   z   |z   |z   }nd}|‰
z  }|||z   z   |z   }|D ]n}	|	                     d¦  «        dk    sJ ‚|	                     d¦  «        |k    sJ ‚|	                     d¦  «        |k    sJ ‚|	                     d	¦  «        dk    sJ ‚Œod
S )zLCheck number of hook calls when the sub-estimator doesn't support callbacks.r5  rƒ   ÚHalvingc              3   ó"   •K  — | ]	}|‰z  V — Œ
d S re   r—   ©r£   r  r'  s     €ri   rÈ   z7test_search_callbacks_no_propagation.<locals>.<genexpr>Ö  ó(   øè è € ÐQÐQ°&˜F XÑ-ÐQÐQÐQÐQÐQÐQrl   rº   ÚsetupÚon_fit_task_beginÚon_fit_task_endÚteardownN)r   r   r   r�   Úset_callbacksru   rs   rË   r^  r•  r�   Ún_iterations_ÚsumÚn_candidates_Úcount_hooks)rb  r6  Ú	callbacksÚrootÚsearch_taskÚn_halving_roundsÚn_evaluationsrŽ  rG  Úcallbackr'  s             @ri   Ú$test_search_callbacks_no_propagationr¶  Ä  s‚  ø€ õ #Ñ$Ô$Õ&EÑ&GÔ&GÐH€IØ@�U�6‰]Œ]×%Ò%¨EÐ%Ñ2Ô2Ô@À)ÐL×PÒPÕQRÕTUÑVÔV€Fð €DØ€KØÔ€Hà�FÔ$Ô-Ð-Ð-Ø!Ô/ÐÝÐQÐQÐQÐQ¸FÔ<PÐQÑQÔQÑQÔQˆØ˜;¨Ñ.Ñ/Ð2BÑBÀ]ÑRˆˆàˆØ$ xÑ/ˆØ˜;¨Ñ.Ñ/°-Ñ?ˆð ð 5ð 5ˆØ×#Ò# GÑ,Ô,°Ò1Ð1Ð1Ð1Ø×#Ò#Ð$7Ñ8Ô8¸HÒDÐDÐDÐDØ×#Ò#Ð$5Ñ6Ô6¸(ÒBÐBÐBÐBØ×#Ò# JÑ/Ô/°1Ò4Ð4Ð4Ð4Ð4ð	5ð 5rl   Úr2c                 ó€  ‡— t          ¦   «         t          ¦   «         g} t          | ¦  «                             |¬¦  «        j        |Ž                      t          t          ¦  «        } d}d}| j        Šd| j	        j
        v r6| j        }t          ˆfd„| j        D ¦   «         ¦  «        }|||z   z   |z   |z   }nd}|‰z  }|||z   z   |z   }|D ]ó}	|	                     d¦  «        dk    sJ ‚|	j	        j
        dk    r7|	                     d¦  «        |k    sJ ‚|	                     d	¦  «        |k    sJ ‚ntt          ˆfd
„| j        d         D ¦   «         ¦  «        }
|r| j        j        nd}||
z   |z   }|	                     d¦  «        |k    sJ ‚|	                     d	¦  «        |k    sJ ‚|	                     d¦  «        dk    sJ ‚ŒôdS )zICheck number of hook calls when the sub-estimator does support callbacks.r5  rƒ   r£  c              3   ó"   •K  — | ]	}|‰z  V — Œ
d S re   r—   r¥  s     €ri   rÈ   z4test_search_callbacks_propagation.<locals>.<genexpr>÷  r¦  rl   rº   r§  r   r¨  r©  c              3   óL   •K  — | ]}t          ‰¦  «        D ]}|d          V — ŒŒdS )rÌ  N)r¨   )r£   rÇ   rì  r'  s      €ri   rÈ   z4test_search_callbacks_propagation.<locals>.<genexpr>	  sX   øè è € ð %ð %àÝ˜x™œð%ð %ð ð �*”ð%ð %ð %ð %ð %ð %ð %rl   rŒ   r   rª  N)r   r   r   r�   r«  ru   rs   rË   r^  r•  r�   r¬  r­  r®  r¯  râ   rá   Ún_iter_)rb  r6  r°  r±  r²  r³  r´  Úsearchcv_tasksrG  rµ  Úsearch_inner_tasksÚrefit_inner_tasksrŽ  r'  s                @ri   Ú!test_search_callbacks_propagationr¿  å  s@  ø€ õ #Ñ$Ô$Õ&EÑ&GÔ&GÐH€IØ@�U�6‰]Œ]×%Ò%¨EÐ%Ñ2Ô2Ô@À)ÐL×PÒPÕQRÕTUÑVÔV€Fð €DØ€KØÔ€Hà�FÔ$Ô-Ð-Ð-Ø!Ô/ÐÝÐQÐQÐQÐQ¸FÔ<PÐQÑQÔQÑQÔQˆØ ¨uÑ!4Ñ5Ð8HÑHÈ=ÑXˆˆàˆØ$ xÑ/ˆØ ¨uÑ!4Ñ5¸ÑEˆàð 5ð 5ˆØ×#Ò# GÑ,Ô,°Ò1Ð1Ð1Ð1ØÔÔ&Ð*=Ò=Ð=à×'Ò'Ð(;Ñ<Ô<ÀÒNÐNÐNÐNØ×'Ò'Ð(9Ñ:Ô:¸nÒLÐLÐLÐLÐLõ "%ð %ð %ð %ð %àÔ+¨HÔ5ð%ñ %ô %ñ "ô "Ðð
 CHÐ N Ô 6Ô >Ð >ÈQÐØ%Ð(:Ñ:Ð=NÑNˆHØ×'Ò'Ð(;Ñ<Ô<ÀÒHÐHÐHÐHØ×'Ò'Ð(9Ñ:Ô:¸hÒFÐFÐFÐFØ×#Ò# JÑ/Ô/°1Ò4Ð4Ð4Ð4Ð4ð)5ð 5rl   c                  óT  — t          ¦   «         } t          t          ¦   «         dg d¢idd¬¦  «                             | ¦  «        }t          j                             d¦  «                             ddt          j	        d         ¬¦  «        }| 
                    t          t          |¬	¦  «         d
„ | j        D ¦   «         }|sJ ‚d„ | j        D ¦   «         }|sJ ‚|D ]}d|d         d         v sJ ‚Œ|D ]8}d|d         d         v sJ ‚|d         d         d         }t          ||¦  «         Œ9dS )z”Test that `sample_weight` gets passed to `callback.on_fit_task_*`.

    Note this tests all *SearchCV classes that inherit from `BaseSearchCV`.
    rÌ  r¹   r    r  rŸ  r   r÷   r¦  rœ  c                 ó4   — g | ]}|d          j         dk    ¯|‘ŒS )Úcontextzcandidate-split-evaluation©Ú	task_name©r£   Úentrys     ri   r¦   z?test_search_callbacks_receive_sample_weight.<locals>.<listcomp>"  s6   € ð ð ð àØ�ÔÔ%Ð)EÒEÐEð 	àEÐEÐErl   c                 ó4   — g | ]}|d          j         dk    ¯|‘ŒS )rÂ  zrefit-with-best-paramsrÃ  rÅ  s     ri   r¦   z?test_search_callbacks_receive_sample_weight.<locals>.<listcomp>(  s6   € ð ð ð àØ�ÔÔ%Ð)AÒAÐAð 	àAÐAÐArl   r�  r^  r?  N)r   r0   r   r«  ro   r*  r+  r   rË   ry   ru   rs   Úrecordr]   )rµ  rb  r�  Úevaluation_recordsÚrefit_recordsrÆ  Úpassed_weightss          ri   Ú+test_search_callbacks_receive_sample_weightrÌ    sv  € õ !Ñ"Ô"€HÝÝÑÔ˜Z¨¨¨Ð3¸À:ðñ ô ç‚m�HÑÔð õ ”I×)Ò)¨!Ñ,Ô,×4Ò4°Q¸ÅÄÈÄ
Ð4ÑKÔK€MØ
‡J‚J�q•! =€JÑ1Ô1Ð1ðð à”_ðñ ô Ðð
 ÐÐÐðð à”_ðñ ô €Mð
 ÐÐˆ=à#ð >ð >ˆØ %¨¤/°*Ô"=Ð=Ð=Ð=Ð=Ð=àð :ð :ˆØ %¨¤/°*Ô"=Ð=Ð=Ð=Ð=Ø˜xœ¨Ô4°_ÔEˆÝ˜>¨=Ñ9Ô9Ð9Ð9ð:ð :rl   c                 óÎ   — t          ¦   «         }t          | ¦  «                             |¦  «                             t          t
          ¦  «        } |j        D ]}|d         | u sJ ‚ŒdS )zHTest that all hooks receive the search instance as `estimator` argument.ré  N)r   r   r«  ru   rs   rË   rÈ  )rb  rµ  rÆ  s      ri   Ú-test_search_callbacks_receive_search_instancerÎ  8  sl   € õ !Ñ"Ô"€HÝ�6‰]Œ]×(Ò(¨Ñ2Ô2×6Ò6µq½!Ñ<Ô<€Fà”ð ,ð ,ˆØ�[Ô! VÐ+Ð+Ð+Ð+Ð+ð,ð ,rl   c                  óÐ  —  G d„ dt           t          ¦  «        } t          ¦   «         }t           | ¦   «         dddgiddd¬¦  «                             |¦  «        }t          j        t          d	¬
¦  «        5  |                     t          t          ¦  «         ddd¦  «         n# 1 swxY w Y   d}|                     d¦  «        |k    sJ ‚|                     d¦  «        |k    sJ ‚dS )zÈCheck callbacks hooks are called when some candidate fits fail.

    When error_score != "raise" and not all fit fail, the whole search doesn't raise so
    all callback invocations are expected.
    c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )úJtest_search_callbacks_with_partial_fit_failures.<locals>.MayFailClassifierFc                 ó   — || _         d S re   )Úfail)rh   rÓ  s     ri   rj   zStest_search_callbacks_with_partial_fit_failures.<locals>.MayFailClassifier.__init__O  s   € ØˆDŒIˆIˆIrl   c                 ód   — t          j        |¦  «        | _        | j        rt	          d¦  «        ‚| S )NzMayFailClassifier.fit failed)ro   rp   rq   rÓ  ÚRuntimeErrorr�  s      ri   ru   zNtest_search_callbacks_with_partial_fit_failures.<locals>.MayFailClassifier.fitR  s0   € ÝœI a™LœLˆDŒMØŒyð CÝ"Ð#AÑBÔBÐBØˆKrl   c                 óR   — t          j        t          |¦  «        t          ¬¦  «        S )NrU  )ro   r  rn   rÅ  r}   s     ri   r{   zRtest_search_callbacks_with_partial_fit_failures.<locals>.MayFailClassifier.predictX  s   € Ý”8�C ™FœF­#Ð.Ñ.Ô.Ð.rl   Nr�   ró  r—   rl   ri   ÚMayFailClassifierrÑ  N  sF   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð	/ð 	/ð 	/ð 	/ð 	/rl   r×  rÓ  FTr    r…   )rÛ   r6  rû   z"2 fits failed out of a total of 4.r°   NrÁ   r¨  r©  )r   r   r   r0   r«  r²   r   r    ru   rs   rË   r¯  )r×  rµ  rb  Úexpected_n_taskss       ri   Ú/test_search_callbacks_with_partial_fit_failuresrÙ  F  sT  € ð/ð /ð /ð /ð /�O­]ñ /ô /ð /õ !Ñ"Ô"€HÝØÐÑÔØ	�%˜�ÐØØØðñ ô ÷ ‚m�HÑÔð õ 
ŒÕ&Ð.RÐ	SÑ	SÔ	Sð ð Ø�
Š
•1•aÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð !ÐØ×ÒÐ 3Ñ4Ô4Ð8HÒHÐHÐHÐHØ×ÒÐ 1Ñ2Ô2Ð6FÒFÐFÐFÐFÐFÐFs   Á6!B#Â#B'Â*B')r—   (  r“   rì  r`  rß   r™  Úcollections.abcr   r   Ú	functoolsr   Úior   Ú	itertoolsr   r   rÕ  r	   Únumpyro   r²   Úscipy.statsr
   r   r   r   rÞ   r   Úsklearn.baser   r   r   r   Úsklearn.callback.tests._utilsr   r   r   r   r   Úsklearn.clusterr   Úsklearn.composer   Úsklearn.datasetsr   r   r   Úsklearn.discriminant_analysisr   Úsklearn.dummyr   Úsklearn.ensembler   Úsklearn.exceptionsr    Úsklearn.experimentalr!   Úsklearn.feature_extraction.textr"   Úsklearn.imputer#   Úsklearn.linear_modelr$   r%   r&   r'   Úsklearn.metricsr(   r)   r*   r+   r,   r-   r.   Úsklearn.metrics.pairwiser/   Úsklearn.model_selectionr0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   Úsklearn.model_selection._searchr>   r?   Ú$sklearn.model_selection.tests.commonr@   Úsklearn.naive_bayesrA   Úsklearn.neighborsrB   rC   rD   Úsklearn.pipelinerE   rF   Úsklearn.preprocessingrG   rH   rI   rJ   Úsklearn.svmrK   rL   Ú%sklearn.tests.metadata_routing_commonrM   rN   rO   Úsklearn.treerP   rQ   Úsklearn.utils._array_apirR   Úsklearn.utils._mockingrS   rT   Úsklearn.utils._testingrU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   Úsklearn.utils.estimator_checksr_   Úsklearn.utils.fixesr`   Úsklearn.utils.validationra   rc   r™   rþ   rs   rË   r©   ÚmarkÚparametrizer  r·   rØ   ré   ró   r  r  r#  r1  r7  r:  rK  rS  r\  r^  rc  rk  rv  r�  r„  r†  Úfilterwarningsr“  rŸ  r¤  rª  r¯  r¼  rÄ  rÇ  rØ  rä  rí  rþ  r  r  rJ  rQ  ri  rn  rv  rl  rt  r—  r¤  r¾  rÊ  rÎ  rÔ  rÚ  rê  rñ  rö  rú  r  r  r  r  r!  r2  r:  r<  rJ  rM  rk  ry  Úthread_unsafer‚  r‹  r�  r­  r´  r¸  r¿  rÅ  rÉ  rÏ  rÚ  rã  rê  rö  r  r  r  r  r3  r9  rI  rK  r^  rm  r}  rŒ  Úone_hot_encoderÚordinal_encoderr  r  rÖ   r,  Úma_with_tuplesr  r•  r�  r¡  r¶  r¿  rÌ  rÎ  rÙ  r—   rl   ri   ú<module>r     sÔ  ðØ Ð à €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :à "Ð "Ð "Ð "Ð "Ð "Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mðð ð ð ð ð ð ð ð ð ð ð ð ð ð #Ð "Ð "Ð "Ð "Ð "Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð
 EÐ DÐ DÐ DÐ DÐ DØ )Ð )Ð )Ð )Ð )Ð )Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø /Ð /Ð /Ð /Ð /Ð /Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð AÐ @Ð @Ð @Ð @Ð @Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð 'Ð &Ð &Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð
 GÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ DÐ DÐ Dðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ DØ .Ð .Ð .Ð .Ð .Ð .Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ð
$ð $ð $ð $ð $�_ mñ $ô $ð $ðNð ð ð ð �yñ ô ð ð €B„Hˆr�2ˆh˜˜R˜ 1 a &¨1¨a¨&Ð1Ñ2Ô2€Ø€B„Hˆ\ˆ\ˆ\ÑÔ€ð=ð =ð =ð „×Ò˜ =°'°'Ð:JÐSUÐ2VÑ2VÔ2VÐ"WÑXÔXØ„×ÒØ&à	
ˆIÐKÐLØ�1�#ˆ,˜Ð	˜IÐ'JÐKà�AˆJØðFð	
ð	ñô ðð ñô ñ YÔXðð
!/ð !/ð !/ðHð ð ð2<ð <ð <ð$ „×Ò˜ lÐ4FÐ%GÑHÔHð<ð <ñ IÔHð<ð$(ð (ð (ð07ð 7ð 7ð8ð ð ð>0ð 0ð 0ð2	1ð 	1ð 	1ð(ð (ð (ðVð ð ðFð Fð Fð6ð 6ð 6ð%ð %ð %ðP „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð* „×Ò˜¨.Ñ9Ô9ð!(ð !(ñ :Ô9ð!(ðH*ð *ð *ð:!ð !ð !ð$ð $ð $ð $ð $�}ñ $ô $ð $ð „×ÒÐOÑPÔPð
ð 
ñ QÔPð
ð*+ð *+ð *+ðZð ð ð0 „×ÒÐ*¨R°¨GÑ4Ô4Ø„×Ò˜Ð'9¸<Ð&HÑIÔIðð ñ JÔIñ 5Ô4ðð0+ð +ð +ð:/ð /ð /ð*/ð /ð /ð/ð /ð /ð3ð 3ð 3ð>7ð 7ð 7ð8$ð $ð $ð"8ð 8ð 8ð4Bð Bð Bð,Vð Vð Vð VðW!ð W!ð W!ðtBð Bð BðJ „×ÒØ"à	˜ s¨Q°¨G nÐ5Ð6Ø	°c¸A¸r¸7°^ÈqÐQÐQÐRðñô ð5)ð 5)ñô ð5)ðp ?ð  ?ð  ?ðF
ð 
ð 
ð@#ð #ð #ðLFð Fð Fð& „×ÒØàÐØ,Ð,Ñ.Ô.Ø!,¨q°"¨gÐ 6ð	
ñ 	
ô 	
ð 	ˆØ,Ð,Ñ.Ô.¸KÈ!ÈRÈÐ;Qð	
ñ 	
ô 	
ðñô ð7ð 7ñô ð7ð .ð .ð .ð@ „×ÒØàˆÐ1Ð1Ñ3Ô3ÀÀlÀlÀlÐ@SÐTÑTÔTØÐØ�e‘g”g°G¸^¸^¸^Ð3Lð	
ñ 	
ô 	
ðñô ð>Bð >Bñô ð>BðB „×ÒØàÐØ(Ð(°Ð6Ñ6Ô6Ø!.°°B°Ð 8Øð	
ñ 	
ô 	
ð
 	ˆØ(Ð(°Ð6Ñ6Ô6Ø%¨¨2 wÐ/Øð	
ñ 	
ô 	
ðñô ðð ñô ððDNð Nð NðDUð Uð Uð „×ÒÐIÑJÔJð%'ð %'ñ KÔJð%'ðP"Að "Að "AðJð ð ð$+ð +ð +ð\,ð ,ð ,ðJð Jð Jðð ð ð ð ˜ñ ô ð ð&N3ð N3ð N3ðbð ð ð,ð ð ð*%ð %ð %ðP-ð -ð -ð@ð ð ð\Lð \Lð \Lð~(ð (ð (ð6ð 6ð 6ðr;ð ;ð ;ð, „Ôð2ð 2ñ Ôð2ð62ð 2ð 2ð2 „×ÒÐ-°°t¨}Ñ=Ô=Ø„×ÒØ"à	˜ {°L°L°LÐ&AÐBÐCàØ%0°,°,°,Ð$?È1ÐMÐMð	
ðñ	ô 	ð*Uð *Uñ	ô 	ñ >Ô=ð*UðZ9ð 9ð 9ð.Pð Pð Pð4Pð Pð Pð8ð ð ð*Bð Bð Bð8ð ð ð<+ð +ð +ð" „×Ò˜ d¨E ]Ñ3Ô3ðOð Oñ 4Ô3ðOð*
ð 
ð 
ð:Eð Eð Eð< „×ÒØØ�S˜3 ˜+Ð&Ð'Ð*<¸sÀGÀGÈAÈqÁMÄMÐ>RÐ)SÐTñô ð*ð *ñ	ô ð*ð( „×ÒØà	˜ # t Ð-Ð.Ø	˜g w w¨t°SÑ'9Ô'9Ð:Ð;ðñô ð..ð ..ñô ð..ðf „×ÒÐGÑHÔHØ„×Ò˜ lÐ4FÐ%GÑHÔHØ„×Ò˜Ð'7Ð9JÐ&KÑLÔLðHð Hñ MÔLñ IÔHñ IÔHðHð8 „×ÒÐ-°°e¨}Ñ=Ô=ðð ñ >Ô=ðð. „×ÒØà	�|Ð$Ø	Ð2Ð3Ø	˜lÐ+ðñô ð;ð ;ñô ð;ð, „Ôð>ð >ñ Ôð>ð:<ð <ð <ð@ „×ÒØà	�|Ð$Ø	Ð2Ð3ðñô ð €¨Ð-Ñ-Ô-ð
ð 
ñ .Ô-ñô ð
ð> „×ÒØà	�|Ð$Ø	Ð2Ð3Ø	˜lÐ+ðñô ð
#ð 
#ñô ð
#ð"*Ið *Ið *IðZEð Eð EðBð ð ð> „×ÒØ.Ø-Ð-Ñ/Ô/ñô ð „×Ò˜ lÐ4FÐ%GÑHÔHð#ð #ñ IÔHñ	ô ð
#ð4  �-‘/”/€Ø �.Ñ"Ô"€ð ”×"Ò" 8 2¤8¨A¡;¤;°TÀÐ"ÑHÔH€Ø€ˆqÑ Ø€ˆqÑ ð „×ÒØ$àˆŒØ�QˆZ˜% ˜Ð$à˜bœe×/Ò/°°´¸!¸Q¸Ñ0@Ô0@ÑAÔAÐBðð .ð	
ñ 	
ô 	
ð 	ˆŒØ˜qÐ!Ð!¨1°QÐ#7Ð#7¸%À¸ÐDà˜bœe×/Ò/°°´¸¸¸Ñ0CÔ0CÑDÔDÐEàØ”E×%Ò% h b¤h¨y¨y¨yÑ&9Ô&9Ð@TÐ@TÐ@TÐ%ÑUÔUððð Cð
	
ñ 
	
ô 
	
ð 	ˆŒØ�q�c˜A˜3  �_Ð%¨°°°a°S¨zÐ':Ð;ð  Ø”E×%Ò%¨¨¨a¨S°1°# ¸!¸¸q¸c¸
Ð&CÈ6Ð%ÑRÔRððð ,ð		
ñ 		
ô 		
ð 	ˆŒØ�Vˆ_˜u f˜oÐ.ð  Ø"ððð ð		
ñ 		
ô 		
ð 	ˆŒØ�_Ð%¨¨Ð'?Ð@ð  Ø”E×%Ò% ¸Ð&HÐPVÐ%ÑWÔWððð ð		
ñ 		
ô 		
ðO1ñ4ô 4ðjGð Gñk4ô 4ðjGðCð Cð Cðð ð ð: „×Ò˜ 4¨ -Ñ0Ô0Ø„×ÒØØ!Ð!Ð"5°zÑBÔBñô ð ð5ð 5ñ Ôñ	ô ñ 1Ô0ð5ð6 „×Ò˜ 4¨ -Ñ0Ô0Ø„×ÒØØ!Ð!Ð"2°DÑ9Ô9ñô ð ð'5ð '5ñ Ôñ	ô ñ 1Ô0ð'5ðT ð:ð :ñ Ôð:ðD „×ÒØØ!Ð!Ð"2°DÑ9Ô9ñô ð ð,ð ,ñ Ôñ	ô ñ
,ð ð"Gð "Gñ Ôñ"Gð "Gð "Grl   