§
    ¨éUgÇm ã                   óp  — 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 dd	lmZ dd
l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l(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@ ddlAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZN ddlOmPZPmQZQ ddlRmSZS ddlTmUZU ddlVmWZWmXZXmYZY ddlZm[Z[m\Z\ ddl]m^Z^m_Z_m`Z`maZa ddlbmcZcmdZd ddlemfZfmgZgmhZh dd limjZjmkZk dd!llmmZmmnZn dd"lompZpmqZqmrZrmsZsmtZtmuZumvZvmwZw dd#lxmyZy dd$lzm{Z{  G d%„ d&¦  «        Z| G d'„ d(ed¦  «        Z} ej~        d)d)gd*d)gd+d+gd,d+gg¦  «        Z ej~        g d-¢¦  «        Z€d.„ Z�ej‚         ƒ                    d/eI e	eJd0¬1¦  «        g¦  «        ej‚         ƒ                    d2de„d3fd4dgidge„d5fd4die„d6fg¦  «        d7„ ¦   «         ¦   «         Z…d8„ Z†d9„ Z‡d:„ Zˆej‚         ƒ                    d;eBeKg¦  «        d<„ ¦   «         Z‰ewd=„ ¦   «         ZŠd>„ Z‹d?„ ZŒd@„ Z�dA„ ZŽdB„ Z�dC„ Z�dD„ Z‘dE„ Z’dF„ Z“ej‚         ƒ                    dGey¦  «        dH„ ¦   «         Z”ej‚         ƒ                    dGey¦  «        dI„ ¦   «         Z•dJ„ Z–dK„ Z— G dL„ dMe¦  «        Z˜ewdN„ ¦   «         Z™dO„ ZšdP„ Z›ej‚         ƒ                    dQd)d,g¦  «        ej‚         ƒ                    dReKeBg¦  «        dS„ ¦   «         ¦   «         ZœdT„ Z�dU„ ZždV„ ZŸdW„ Z ewdX„ ¦   «         Z¡dY„ Z¢dZ„ Z£d[„ Z¤d\„ Z¥dÆd^„Z¦d_„ Z§d`„ Z¨ej‚         ƒ                    daeBdbdcd+d0giifeKdcd+d0gid,ddœfg¦  «        de„ ¦   «         Z©df„ Zªdg„ Z«dh„ Z¬di„ Z­ej‚         ƒ                    dR eK ej¦   «         djdkd0gi¬l¦  «         eB ej¦   «         djdkd0gi¬m¦  «        g¦  «        dn„ ¦   «         Z®ej‚         ƒ                    dR eK eYdo¬p¦  «        dqdkd0gidr¬s¦  «         eB eYdo¬p¦  «        dqdkd0gidr¬t¦  «        g¦  «        du„ ¦   «         Z¯dv„ Z°dw„ Z± ew¦   «         dx„ ¦   «         Z²dy„ Z³dz„ 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ÂdŠ„ ZÃd‹„ ZÄej‚         ƒ                    dŒd�dog¦  «        ej‚         ƒ                    daeBdbdjg dŽ¢iifeKdjg dŽ¢id�ddœfg¦  «        d�„ ¦   «         ¦   «         ZÅd‘„ ZÆd’„ ZÇd“„ ZÈd”„ ZÉd•„ ZÊd–„ ZËd—„ ZÌej‚         ƒ                    d˜dod�g¦  «        d™„ ¦   «         ZÍdš„ ZÎd›„ ZÏej‚         ƒ                    dœeBd�dždŸgifeKd� ed+d ¦  «        ifg¦  «        d¡„ ¦   «         ZÐej‚         ƒ                    dœeBd¢dždŸgifeKd¢ edŸdž¦  «        ifg¦  «        d£„ ¦   «         ZÑej‚         Ò                    d¤¦  «        ej‚         ƒ                    d;eBeKg¦  «        ej‚         ƒ                    d¥eqepg¦  «        d¦„ ¦   «         ¦   «         ¦   «         ZÓej‚         ƒ                    dŒdod�g¦  «        d§„ ¦   «         ZÔej‚         ƒ                    dœeBdbfeKd¨feEdbfg¦  «        d©„ ¦   «         ZÕdª„ ZÖd«„ Z×ej‚         ƒ                    d;eBeKg¦  «        d¬„ ¦   «         ZØej‚         Ù                    d­¦  «        ej‚         ƒ                    dœeBdbfeKd¨fg¦  «        d®„ ¦   «         ¦   «         ZÚej‚         ƒ                    dœeBdbfeKd¨feEdbfg¦  «        d¯„ ¦   «         ZÛd°„ ZÜd±„ ZÝd²„ ZÞ e^¦   «         Zß e_¦   «         Zàejá         â                     ejã        d,¦  «        doeä¬³¦  «        Zåd´eåd<   dµeåd+<   ej‚         ƒ                    d¶ ejæ        d4d+id4d,igd·ejá         â                     ej~        d+d,g¦  «        ¦  «        fgd¸¬¹¦  «         ejæ        d+d dºœd,d�dºœd4d igd·ejá         â                     ej~        g d»¢¦  «        ¦  «        fd¼ejá         â                     ej~        g d½¢¦  «        g d¾¢¬¿¦  «        fgdÀ¬¹¦  «         ejæ        d4d+gd,gd ggid4d+gd,ggigd·ejá         â                    d+gd,gd ggd+gd,gggeä¬Á¦  «        fgdÂ¬¹¦  «         ejæ        d4d´id4dµigd·eåfgdÃ¬¹¦  «         ejæ        d4eàid4eßigd·ejá         â                    eàeßgeä¬Á¦  «        fgdÄ¬¹¦  «        g¦  «        dÅ„ ¦   «         ZçdS )ÇzTest the search moduleé    N)ÚIterableÚSized)Úpartial)ÚStringIO)ÚchainÚproduct)ÚGeneratorType)Ú	bernoulliÚexponÚuniform)Úconfig_context)ÚBaseEstimatorÚClassifierMixinÚis_classifier)ÚKMeans)ÚColumnTransformer)Ú
make_blobsÚmake_classificationÚmake_multilabel_classification)Ú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Ú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)ÚCheckingClassifierÚMockDataFrame)ÚMinimalClassifierÚMinimalRegressorÚMinimalTransformerÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Ú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)ÚselfrZ   s     úh/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/model_selection/tests/test_search.pyÚ__init__zMockClassifier.__init__h   ó   € Ø"ˆŒˆˆó    c                 ó|   — t          |¦  «        t          |¦  «        k    sJ ‚t          j        |¦  «        | _        | S rX   )ÚlenÚnpÚuniqueÚclasses_©r[   ÚXÚYs      r\   ÚfitzMockClassifier.fitk   s3   € Ý�1‰vŒv�˜Q™œÒÐÐÐÝœ	 !™œˆŒØˆr_   c                 ó   — |j         d         S ©Nr   ©Úshape)r[   ÚTs     r\   ÚpredictzMockClassifier.predictp   s   € ØŒw�qŒzÐr_   c                 ó   — || j         z   S rX   rY   ©r[   rf   s     r\   Ú	transformzMockClassifier.transforms   ó   € Ø�4”>Ñ!Ð!r_   c                 ó   — || j         z
  S rX   rY   rp   s     r\   Úinverse_transformz MockClassifier.inverse_transformv   rr   r_   Nc                 ó&   — | j         dk    rd}nd}|S )Né   ç      ð?ç        rY   )r[   rf   rg   Úscores       r\   ry   zMockClassifier.score}   s    € ØŒ>˜AÒÐØˆEˆEàˆEØˆr_   Fc                 ó   — d| j         iS ©NrZ   rY   )r[   Údeeps     r\   Ú
get_paramszMockClassifier.get_params„   s   € Ø˜Tœ^Ð,Ð,r_   c                 ó    — |d         | _         | S r{   rY   )r[   Úparamss     r\   Ú
set_paramszMockClassifier.set_params‡   s   € Ø Ô,ˆŒØˆr_   )r   ©NN)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r]   rh   rn   rq   rt   Úpredict_probaÚpredict_log_probaÚdecision_functionry   r}   r€   © r_   r\   rV   rV   e   s´   € € € € € ØBÐBð#ð #ð #ð #ðð ð ð
ð ð ð"ð "ð "ð"ð "ð "ð €MØÐØÐðð ð ð ð-ð -ð -ð -ðð ð ð ð r_   rV   c                   ó(   — e Zd ZdZed„ ¦   «         ZdS )ÚLinearSVCNoScorez0A LinearSVC classifier that has no score method.c                 ó   — t           ‚rX   )ÚAttributeError©r[   s    r\   ry   zLinearSVCNoScore.score�   s   € åÐr_   N)r‚   rƒ   r„   r…   Úpropertyry   r‰   r_   r\   r‹   r‹   Œ   s3   € € € € € Ø:Ð:àðð ñ „Xðð ð r_   r‹   éÿÿÿÿéþÿÿÿrv   é   )rv   rv   r’   r’   c                 ó~   ‡ — t          ‰ ¦  «        ˆ fd„t          t          ‰ ¦  «        ¦  «        D ¦   «         k    sJ ‚d S )Nc                 ó    •— g | ]
}‰|         ‘ŒS r‰   r‰   )Ú.0ÚiÚgrids     €r\   ú
<listcomp>z3assert_grid_iter_equals_getitem.<locals>.<listcomp>™   s   ø€ Ð<Ð<Ð< a˜$˜qœ'Ð<Ð<Ð<r_   )ÚlistÚrangera   )r—   s   `r\   Úassert_grid_iter_equals_getitemr›   ˜   sC   ø€ Ý�‰:Œ:Ð<Ð<Ð<Ð<­5µ°T±´Ñ+;Ô+;Ð<Ñ<Ô<Ò<Ð<Ð<Ð<Ð<Ð<r_   Ú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       r\   Ú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    ©rv   r’   é   r¬   é   r’   )ÚhamÚspamÚeggs©r    Úbaré   c           	   3   ó€   K  — | ]9}t          t          t          |                     ¦   «         ¦  «        Ž ¦  «        V — Œ:d S rX   )Útupler   ÚsortedÚitems©r•   Úps     r\   ú	<genexpr>z&test_parameter_grid.<locals>.<genexpr>¿   s?   è è € ÐGÐG¸A•U�5¥6¨!¯'ª'©)¬)Ñ#4Ô#4Ð6Ñ7Ô7ÐGÐGÐGÐGÐGÐGr_   c              3   ó(   K  — | ]\  }}d |d|fV — ŒdS )r²   r    Nr‰   )r•   ÚxÚys      r\   rº   z&test_parameter_grid.<locals>.<genexpr>À   s@   è è € ð 
ð 
Ù%) Q¨ˆU�A�u˜aÐ ð
ð 
ð 
ð 
ð 
ð 
r_   r²   rv   ÚCr�   ç      à?)r/   Ú
isinstancer   r   ra   r›   rš   Úsetr   r™   r¤   r¥   Ú
IndexError)Úparams1Úgrid1Úparams2Úgrid2r–   ÚpointsÚemptyÚ	has_emptys           r\   Ú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 )NrZ   r«   r¬   ©ÚcvÚverboser’   Úparam_foo_paramÚsklearn)rV   r(   ÚsysÚstdoutr   rh   rf   r½   Úbest_estimator_rZ   rQ   Úcv_results_Údatary   r†   rˆ   rq   Úscoringr¤   r¥   Ú
ValueError)ÚclfÚgrid_searchÚ
old_stdouts      r\   Ú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   rv   Úcoef_)r<   r   r   r(   rh   rf   r½   rÔ   rÀ   ÚhasattrrÓ   )ÚpipeÚ
param_gridrÙ   Úregressor_resultss       r\   Ú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Ñ;Ô;Ð;Ð;Ð;Ð;Ð;r_   Ú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   é   rv   r¯   r°   )Úexpected_fit_paramsrZ   r«   r’   Úraise©rÍ   Úerror_scorez0Expected fit parameter\(s\) \['eggs'\] not seen.r¢   )r¯   z)Fit parameter spam has length 1; expected)r¯   r°   )rb   ÚarangeÚreshapeÚarrayrI   r¤   r¥   ÚAssertionErrorrh   ÚonesÚzeros)ræ   rf   r½   rØ   ÚsearcherÚerr_msgs         r\   Ú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©çš™™™™™¹?rv   r�   r¾   Úaccuracy©rÖ   z
no scoringr¢   rv   )
rC   r   r‹   r(   rh   Úbest_params_ry   r¤   r¥   Ú	TypeError)rØ   rf   r½   ÚCsÚclf_no_scorerÙ   Úgrid_search_no_scores          r\   Ú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_aucrw   )r   rC   r(   rh   r‹   ry   rO   )rf   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               r\   Útest_grid_search_score_methodr  *  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Ð6r_   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¾   rv   ©Ún_splitsz*The 'groups' parameter should not be None.rÞ   r¢   )Úgroups)rb   ÚrandomÚRandomStater   ÚrandintrC   r-   r.   r)   r*   r(   r¤   r¥   r×   rh   r2   r3   )Úrngrf   r½   r  rØ   r—   Ú	group_cvsÚ	error_msgrÍ   ÚgsÚnon_group_cvss              r\   Útest_grid_search_groupsr#  F  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é   rv   rü   rø   r¾   Úalpharw   ç       @rd   F)Úrefit)rb   rî   rï   rð   r(   rC   rh   rQ   rÓ   rd   r   rá   )rf   r½   r  rÙ   s       r\   Útest_classes__propertyr(  e  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Ñ/Ô/Ð/Ð/Ð/Ð/Ð/r_   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 )NrZ   rv   r¬   rÞ   rÔ   r   )rŸ   rÍ   )rV   r(   rh   rf   r½   rá   r1   )rØ   rÙ   Úrandom_searchs      r\   Ú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�ÑÔÐÝ�; Ñ.Ô.Ð.Ð.Ð.Ð.Ð.r_   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þ   Ú	precisionrZ   r«   Fr¬   ©r'  rÍ   rÓ   Úbest_index_r   )rn   r†   r‡   rq   rt   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)r'  rÖ   )rV   r(   rh   rf   r½   rá   r¤   r¥   r�   ÚgetattrrÀ   ÚvalueÚ	__cause__Ústrr×   )	rØ   rÖ   rÙ   Úfn_nameÚ	outer_msgÚ	inner_msgÚ	exec_infor   r'  s	            r\   Útest_no_refitr<  Š  sd  € å
Ñ
Ô
€CØ˜: {Ð3Ð4ð ?ñ ?ˆÝ" 3¨°i°i°iÐ(@ÈÐRSÐTÑTÔTˆØ�Š��1ÑÔÐå˜Ð%6Ñ7Ô7ð	
å˜ ]Ñ3Ô3ð	
õ ˜ ^Ñ4Ô4ð	
ð 	
ð 	
ð
ð 	?ð 	?ˆ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ý   rw   é´   )r   rC   r(   r¤   r¥   r×   rh   )ÚX_Úy_rØ   rÍ   s       r\   Útest_grid_search_errorrD  µ  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 )Nr>  rè   r   r?  rw   Úrbfrý   )r¾   ÚkernelÚgammaÚauto©rH  )r   rB   r(   rh   rQ   Ú
dual_coef_rÓ   )rB  rC  Ú
param_dictrØ   rÍ   s        r\   Útest_grid_search_one_grid_pointrM  ¿  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ÐEr_   c                  óÎ   — t          ¦   «         } d }t          | dt          dd¦  «        id¬¦  «        }|                     t          t
          ¦  «         |j        j        dk    sJ ‚d S )NrZ   rv   r­   r¬   rÞ   r’   )rV   r(   rš   rh   rf   r½   rÓ   rZ   )rØ   rÙ   s     r\   Ú/test_grid_search_when_param_grid_includes_rangerO  Í  sd   € å
Ñ
Ô
€CØ€KÝ˜s [µ%¸¸1±+´+Ð$>À1ÐEÑEÔE€KØ‡O‚O•A•qÑÔÐØÔ&Ô0°AÒ5Ð5Ð5Ð5Ð5Ð5r_   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   r?  r¾   rv   rI  rJ  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   rB   ÚreÚescaper(   r¤   r¥   r  rh   r×   rb   rò   )rf   r½   rL  rØ   r   Úsearchs         r\   Útest_grid_search_bad_param_gridrT  Ö  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 )
Nr>  rè   r   r?  r¾   rý   rw   rA  gÍÌÌÌÌÌì?)
r   rC   r(   rh   rn   rÓ   r¾   Útocoorb   Úmean)	rU  rB  rC  rØ   rÍ   Úy_predr¾   Úy_pred2ÚC2s	            r\   Útest_grid_search_sparser\  þ  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ˆ7r_   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 )Nr>  rè   r   r?  r¾   rý   rw   Úf1rÿ   rA  c                 ó$   — t          | |¦  «         S rX   )r"   )Úy_true_Úy_pred_s     r\   Úf1_lossz0test_grid_search_sparse_scoring.<locals>.f1_loss,  s   € Ý˜ 'Ñ*Ô*Ð*Ð*r_   F)Úgreater_is_better)	r   rC   r(   rh   rn   rÓ   r¾   rQ   r#   )rU  rB  rC  rØ   rÍ   rY  r¾   rZ  r[  rb  ÚF1LossÚy_pred3ÚC3s                r\   Útest_grid_search_sparse_scoringrg    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Ñ'Ô'Ð'Ð'Ð'r_   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 )Nr>  rè   r   r?  rA  Úprecomputed©rG  r¾   rý   rw   )r   rb   Údotrm   rB   r(   rh   Úbest_score_rn   rX  r¤   r¥   r×   Útolist)	rB  rC  ÚK_trainÚy_trainrØ   rÍ   ÚK_testÚy_testrY  s	            r\   Ú#test_grid_search_precomputed_kernelrr  9  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�   ri  rj  r¾   rý   rw   )	rb   ró   rò   rB   r(   r¤   r¥   r×   rh   )rn  ro  rØ   rÍ   s       r\   Ú3test_grid_search_precomputed_kernel_error_nonsquareru  V  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 rX   ©Ú	parameter©r[   rz  s     r\   r]   zBrokenClassifier.__init__d  r^   r_   c                 ó8   — t          | d¦  «        rJ ‚d| _        d S )NÚhas_been_fit_T)rá   r}  ©r[   rf   r½   s      r\   rh   zBrokenClassifier.fitg  s&   € Ý˜4 Ñ1Ô1Ð1Ð1Ð1Ø!ˆÔÐÐr_   c                 ó@   — t          j        |j        d         ¦  «        S rj   ©rb   ró   rl   rp   s     r\   rn   zBrokenClassifier.predictk  ó   € ÝŒx˜œ œ
Ñ#Ô#Ð#r_   rX   )r‚   rƒ   r„   r…   r]   rh   rn   r‰   r_   r\   rw  rw  a  sL   € € € € € Ø4Ð4ð#ð #ð #ð #ð"ð "ð "ð$ð $ð $ð $ð $r_   rw  c                  ó  — 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é   rv   rz  r-  T©rÖ   r'  )rb   rî   rï   rð   r(   rw  rh   )rf   r½   rØ   s      r\   Ú
test_refitr„  o  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€Mr_   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­   é*   r?  rø   r¾   ©ç{®Gáz„?rý   rv   r-  Trƒ  r   Úmean_test_score)r   r(   rC   rh   r/  rÔ   ÚkeysÚargmin)Ú
cv_resultsrf   r½   rØ   Úkeys        r\   Úrefit_callablez+test_refit_callable.<locals>.refit_callableƒ  sÁ   € õ #¨S¸QÈRÐPÑPÔP‰ˆˆ1ÝÝ 2Ð&Ñ&Ô&Ø�.�.�.Ð!ØØð	
ñ 
ô 
ˆð 	�Š��1‰ŒˆàŒ !Ò#Ð#Ð#Ð#ð ”?×'Ò'Ñ)Ô)ð 	%ð 	%ˆCØ˜*Ð$Ð$Ð$Ð$Ð$àÐ+Ô,×3Ò3Ñ5Ô5Ð5r_   rè   r­   r‡  r?  rø   r¾   rˆ  r-  rƒ  r   rl  N)r   r(   rC   rh   r/  rá   )r�  rf   r½   rØ   s       r\   Ú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Ñ*Ô*Ð*Ð*Ð*Ð*Ð*r_   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    r\   Úrefit_callable_invalid_typezEtest_refit_callable_invalid_type.<locals>.refit_callable_invalid_type°  s	   € ð ˆtr_   rè   r­   r‡  r?  rø   r¾   rý   rv   r-  rƒ  z&best_index_ returned is not an integerr¢   N)r   r(   rC   r¤   r¥   r  rh   )r”  rf   r½   rØ   s       r\   Ú 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    €r\   Úrefit_callable_out_boundz?test_refit_callable_out_bound.<locals>.refit_callable_out_boundÊ  s   ø€ ð Ðr_   rè   r­   r‡  r?  rø   r¾   rý   rv   r-  rƒ  zbest_index_ index out of ranger¢   N)r   rC   r¤   r¥   rÂ   rh   )r–  r—  rš  rf   r½   rØ   s   `     r\   Ú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    r\   r�  z8test_refit_callable_multi_metric.<locals>.refit_callableá  s-   € ð   :Ð-Ð-Ð-Ð-ØÐ*Ô+×2Ò2Ñ4Ô4Ð4r_   rè   r­   r‡  r?  r-  )ÚAccuracyr3  rø   r¾   rˆ  rƒ  r   rl  N)r   r#   r    r(   rC   rh   r/  rá   )r�  rf   r½   rÖ   rØ   s        r\   Ú 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Ñ*Ô*Ð*Ð*Ð*Ð*Ð*r_   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 )Nrv   )ré   r¬   r’   rk   ©r¼   s    r\   Úcheck_Xz#test_gridsearch_nd.<locals>.check_Xþ  s   € ØŒw�q�r�rŒ{˜iÒ'Ð'r_   c                 ó(   — | j         dd …         dk    S )Nrv   )r£  r¤  rk   r¦  s    r\   Úcheck_yz#test_gridsearch_nd.<locals>.check_y  s   € ØŒw�q�r�rŒ{˜gÒ%Ð%r_   rh   )r§  r©  Úmethods_to_checkrZ   r«   rÔ   )
rb   rî   rï   rI   r(   rh   ry   rf   r½   rá   )ÚX_4dÚy_3dr§  r©  rØ   rÙ   s         r\   Útest_gridsearch_ndr­  ù  sß   € åŒ9�^Ñ$Ô$×,Ò,¨R°°A°qÑ9Ô9€DÝŒ9�[Ñ!Ô!×)Ò)¨"¨a°Ñ4Ô4€Dð(ð (ð (ð&ð &ð &õ ØØØ˜ðñ ô €Cõ
 ˜s [°)°)°)Ð$<Ñ=Ô=€KØ‡O‚O�D˜$ÑÔ×%Ò%¥a­Ñ+Ô+Ð+Ý�; Ñ.Ô.Ð.Ð.Ð.Ð.Ð.r_   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é   rv   c                 ó,   — t          | t          ¦  «        S rX   ©rÀ   r™   r¦  s    r\   ú<lambda>z test_X_as_list.<locals>.<lambda>  ó   € �* Q­Ñ-Ô-€ r_   rh   )r§  rª  r¬   r  rZ   r«   rÞ   rÔ   ©rb   rî   rï   rð   rI   r,   r(   rh   rm  ry   rá   ©rf   r½   rØ   rÍ   rÙ   s        r\   Ú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Ñ.Ô.Ð.Ý�; Ñ.Ô.Ð.Ð.Ð.Ð.Ð.r_   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é   rv   c                 ó,   — t          | t          ¦  «        S rX   r°  r¦  s    r\   r±  z test_y_as_list.<locals>.<lambda>#  r²  r_   rh   )r©  rª  r¬   r  rZ   r«   rÞ   rÔ   r³  r´  s        r\   Ú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Ñ.Ô.Ð.Ý�; Ñ.Ô.Ð.Ð.Ð.Ð.Ð.r_   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é   rv   c                 ó$   •— t          | ‰¦  «        S rX   ©rÀ   )r¼   ÚInputFeatureTypes    €r\   Úcheck_dfz#test_pandas_input.<locals>.check_df>  s   ø€ Ý˜aÐ!1Ñ2Ô2Ð2r_   c                 ó$   •— t          | ‰¦  «        S rX   r½  )r¼   Ú
TargetTypes    €r\   Úcheck_seriesz'test_pandas_input.<locals>.check_seriesA  s   ø€ Ý˜a Ñ,Ô,Ð,r_   )r§  r©  rZ   r«   rÔ   )rJ   Úpandasrº  r»  ÚappendÚImportErrorrb   rî   rï   rð   rI   r(   rh   ry   rn   rá   )Útypesrº  r»  rf   r½   ÚX_dfÚy_serr¿  rÂ  rØ   rÙ   r¾  rÁ  s              @@r\   Ú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  rv   )rù   ÚinitÚn_initÚadjusted_rand_scoreÚfowlkes_mallows_score)rÏ  rÐ  )r’   r¬   r­   )Ú
n_clusters)rã   rÖ   r'  rÑ  r¬   ©rã   rÖ   )rã   r­   )r   r   r(   Údictrh   r   )rf   r½   ÚkmrÖ   r'  rÙ   s         r\   Útest_unsupervised_grid_searchrÕ  L  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Ð6r_   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)Ú	estimatorrf   s     r\   Úcustom_scoringz2test_gridsearch_no_predict.<locals>.custom_scoringk  s   € ØÔ(¨CÒ/Ð/ˆrˆr°QÐ6r_   rý   rv   r   )Úcluster_stdrù   rû   rˆ  rØ  rÒ  rÙ  r‡  )r   r(   r9   rÓ  rh   r   rl  )rÛ  rf   Ú_rS  s       r\   Útest_gridsearch_no_predictrÞ  h  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ØÔ Ò#Ð#Ð#Ð#Ð#Ð#r_   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 )NrF  Úlinearr   rv   )rG  r¾   r�   )Úparam_distributionsrŸ   rù   c                 ó   — g | ]}|‘ŒS r‰   r‰   ©r•   r¼   s     r\   r˜   z&test_param_sampler.<locals>.<listcomp>  s   € Ð"Ð"Ð"�QˆqÐ"Ð"Ð"r_   rG  )rF  rà  r¾   )r   rv   r’   r¬   r­   ré   r³   r£  é   é	   r�   r¬   c                 ó   — g | ]}|‘ŒS r‰   r‰   rã  s     r\   r˜   z&test_param_sampler.<locals>.<listcomp>Š  ó   € ÐÐÐ�!ˆAÐÐÐr_   c                 ó   — g | ]}|‘ŒS r‰   r‰   rã  s     r\   r˜   z&test_param_sampler.<locals>.<listcomp>Š  ó   € Ð#7Ð#7Ð#7¨! AÐ#7Ð#7Ð#7r_   c                 ó   — g | ]}|‘ŒS r‰   r‰   rã  s     r\   r˜   z&test_param_sampler.<locals>.<listcomp>�  rç  r_   c                 ó   — g | ]}|‘ŒS r‰   r‰   rã  s     r\   r˜   z&test_param_sampler.<locals>.<listcomp>�  ré  r_   )r   r0   ra   )rá  ÚsamplerÚsamplesÚsamples       r\   Útest_param_samplerrï  y  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Ð7r_   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 rX   ©rÀ   rb   ÚmaÚMaskedArray)r•   Úparamr�  s     €r\   rº   z/check_cv_results_array_types.<locals>.<genexpr>˜  s7   øè è € ÐXÐXÀE�z˜* UÔ+­R¬UÔ->Ñ?Ô?ÐXÐXÐXÐXÐXÐXr_   c                 ó6   •— i | ]}|‰|         j         j        “ŒS r‰   )ÚdtypeÚkind©r•   rŽ  r�  s     €r\   ú
<dictcomp>z0check_cv_results_array_types.<locals>.<dictcomp>™  s2   ø€ ð ð ð Ø,/ˆˆZ˜Œ_Ô"Ô'ðð ð r_   c              3   ób   •K  — | ])}t          ‰|         t          j        j        ¦  «        V — Œ*d S rX   rò  rù  s     €r\   rº   z/check_cv_results_array_types.<locals>.<genexpr>œ  s6   øè è € ÐXÐXÀc•:˜j¨œo­r¬uÔ/@ÑAÔAÐXÐXÐXÐXÐXÐXr_   c              3   óx   •K  — | ]4}|                      d ¦  «        °‰|         j        t          j        k    V — Œ5dS )ÚrankN)Ú
startswithr÷  rb   Úfloat64rù  s     €r\   rº   z/check_cv_results_array_types.<locals>.<genexpr>�  sW   øè è € ð ð àØ�~Š~˜fÑ%Ô%ðØ�3ŒÔ¥¤Ò+ðð ð ð ð ð r_   ry   zrank_test_%s)	rÔ   ÚallÚanyÚmultimetric_Úscorer_r‹  r÷  rb   Úint32)rS  Ú
param_keysÚ
score_keysÚexpected_cv_results_kindsÚscorer_keysrŽ  r�  s         @r\   Ú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r_   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 rX   rk   )r•   rŽ  r�  Ún_cands     €€r\   rº   z(check_cv_results_keys.<locals>.<genexpr>­  s1   øè è € ÐUÐU°cˆz˜#ŒÔ$¨¨	Ò1ÐUÐUÐUÐUÐUÐUr_   )rQ   r¶   r‹  r   )r�  r  r  r  Ú
extra_keysÚall_keyss   `  `  r\   Ú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ÐUr_   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‡  r?  r³   rF  rv   r�   rý   ©rG  r¾   rH  Úpolyr’   ©rG  Ú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     €r\   rº   z.test_grid_search_cv_results.<locals>.<genexpr>Ý  s?   øè è € ÐRÐR¨¸1Ð@QÒ;QÐ;Q�C�
˜1” Ò"Ñ#Ô#Ð;QÐ;QÐ;QÐ;QÐRÐRr_   c              3   ó^   •K  — | ]'}d |v¯|dk    ¯t          ‰|         dk    ¦  «        V — Œ(dS )Útimer  rv   Nr+  r,  s     €r\   rº   z.test_grid_search_cv_results.<locals>.<genexpr>Þ  sT   øè è € ð ð àØ˜ˆ?ˆ?˜qÐ$5Ò5Ð5õ 	ˆJ�qŒM˜QÒÑÔà5Ð5Ð5Ð5ðð r_   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     €r\   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Ð2r_   c                 óª   •— g | ]O}‰d          |         dk    ¯‰d         j         |          o&‰d         j         |          o‰d         j         |         ‘ŒPS )r  rF  r  r  r  r3  r5  s     €r\   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Ð1r_   )r   rÓ  r(   rB   rh   rÔ   r   r	  r  rš   ra   )rf   r½   Ún_grid_pointsr   r  r  Ún_candidatesrS  r  Úpoly_resultsÚrbf_resultsr�  s              @r\   Útest_grid_search_cv_resultsr;  °  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Ò Ð Ð Ð Ð Ð r_   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‡  r?  é   rF  r�   )Úscalerý   r  r  r’   r¬   r  r  r  T)rŸ   rÍ   rá  r)  r0  r–   r1  c              3   ó°   •K  — | ]P}‰d          |         dk    ¯‰d         j         |         o&‰d         j         |         o‰d         j         |          V — ŒQdS )r  r  r  r  r  Nr3  r5  s     €r\   rº   z0test_random_search_cv_results.<locals>.<genexpr>;  s‚   øè è € ð ð ð Ø�nÔ% aÔ(¨FÒ2Ð2ð �yÔ!Ô& qÔ)ð 7Ø˜=Ô)Ô.¨qÔ1ð7à˜~Ô.Ô3°AÔ6Ð6ð 3Ð2Ð2Ð2ðð r_   c              3   ó²   •K  — | ]Q}‰d          |         dk    ¯‰d         j         |          o&‰d         j         |          o‰d         j         |         V — ŒRdS )r  rF  r  r  r  Nr3  r5  s     €r\   rº   z0test_random_search_cv_results.<locals>.<genexpr>D  s…   øè è € ð ð ð Ø�nÔ% aÔ(¨EÒ1Ð1ð ˜9Ô%Ô*¨1Ô-Ð-ð 3Ø˜}Ô-Ô2°1Ô5Ð5ð3à˜>Ô*Ô/°Ô2ð 2Ð1Ð1Ð1ðð r_   )
r   r   r1   rB   rh   rÔ   r	  r  r   rš   )
rf   r½   Ún_search_iterr   r  r  r8  rS  r  r�  s
            @r\   Útest_random_search_cv_resultsrB  
  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Ýð ð ð ð õ �|Ñ$Ô$ðñ ô ñ ô ð ð ð õ ð ð ð ð õ �|Ñ$Ô$ðñ ô ñ ô ð ð ð ð ð r_   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   rv   rý   FéP   )rû   rù   rÜ  Úshuffler	  ©r÷  r’   T)rÚ  rÍ   r)  c                 ó<   •— g | ]}‰j         d |z           d         ‘ŒS )úsplit%d_test_scorer   ©rÔ   ©r•   ÚsrS  s     €r\   r˜   z+test_search_default_iid.<locals>.<listcomp>o  s<   ø€ ð 	
ð 	
ð 	
àð ÔÐ3°aÑ7Ô8¸Ô;ð	
ð 	
ð 	
r_   rŠ  r#  c                 ó<   •— g | ]}‰j         d |z           d         ‘ŒS )zsplit%d_train_scorer   rI  rJ  s     €r\   r˜   z+test_search_default_iid.<locals>.<listcomp>x  s<   ø€ ð 	
ð 	
ð 	
àð ÔÐ4°qÑ8Ô9¸!Ô<ð	
ð 	
ð 	
r_   r  r$  r  gUUUUUUÕ?r‰   )r   rb   rò   rl   ÚboolÚwhererB   rh   rð   rš   Ú	n_splits_rÔ   rN   r¤   ÚapproxrX  Ústd)ræ   Úspecialized_paramsrf   r½   r4  rÍ   Úcommon_paramsÚtest_cv_scoresÚ	test_meanÚtest_stdÚtrain_cv_scoresÚ
train_meanÚ	train_stdrS  s                @r\   Útest_search_default_iidrZ  O  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Ñ(Ô(Ò(Ð(Ð(Ð(Ð(Ð(r_   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‡  r?  r¬   rF  rv   r�   rý   r  r  r’   r  ©rþ   r1  rþ   r1  F)rÍ   rã   rÖ   r'  )
r   rÓ  r#   r    r%   r(   rB   rh   rÄ  Ú*compare_cv_results_multimetric_with_single)rf   r½   r  r   Úgrid_searchesrÖ   rÙ   s          r\   Ú'test_grid_search_cv_results_multimetricr_  Ž  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ÑÔÐØ×Ò˜[Ñ)Ô)Ð)Ð)å.°Ð>Ð>Ð>Ð>r_   c                  óö  — t          ddd¬¦  «        \  } }d}d}t          t          j        ddd¦  «        t          j        d	d
dd¬¦  «        ¬¦  «        }dD ]¡}g }dD ]t}|rd}t	          |t
          ¦  «        rdn|}nd}t          |d¬¦  «        }	t          |	|||||d
¬¦  «        }
|
                     | |¦  «         | 	                    |
¦  «         Œut          |Ž  t          |d
         |d         |¦  «         Œ¢d S )NrË  r­   r‡  r?  r¬   r=  éüÿÿÿrv   éûÿÿÿr   rý   )Úbase)r¾   rH  ©TF)r\  rþ   r1  Trþ   F)Úprobabilityrù   )rŸ   rÍ   rá  rÖ   r'  rù   )r   rÓ  rb   ÚlogspacerÀ   rµ   rB   r1   rh   rÄ  r]  Ú)compare_refit_methods_when_refit_with_acc)rf   r½   r  rA  r   r'  Úrandom_searchesrÖ   re  rØ   r*  s              r\   Ú)test_random_search_cv_results_multimetricri  ±  sO  € Ý¨¸ÈÐKÑKÔK�D€A€qà€HØ€Mõ •B”K  A qÑ)Ô)µ´¸RÀÀAÈCÐ1PÑ1PÔ1PÐQÑQÔQ€FØð 
ð 
ˆØˆØEð 	2ð 	2ˆGàð $Ø"�Ý&0°½%Ñ&@Ô&@ÐK˜
˜
Àe��à#�Ý +¸BÐ?Ñ?Ô?ˆCÝ.ØØ$ØØ$*ØØØðñ ô ˆMð ×Ò˜a Ñ#Ô#Ð#Ø×"Ò" =Ñ1Ô1Ð1Ð1å2°OÐDÐDÝ1Ø˜AÔ °Ô 2°Eñ	
ô 	
ð 	
ð 	
ð/
ð 
r_   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 searchr\  c                 óB   — i | ]\  }}t          j        d d|¦  «        |“ŒS )ú_score$Ú	_accuracy©rQ  Úsub©r•   r-  Úvs      r\   rú  z>compare_cv_results_multimetric_with_single.<locals>.<dictcomp>Ý  s9   € ð ð ð Ù15°°A�Œˆy˜+ qÑ)Ô)¨1ðð ð r_   c                 óB   — i | ]\  }}t          j        d d|¦  «        |“ŒS )rl  Ú_recallrn  rp  s      r\   rú  z>compare_cv_results_multimetric_with_single.<locals>.<dictcomp>á  s,   € ÐWÐWÐW±°°1�Œ�	˜9 aÑ	(Ô	(¨!ÐWÐWÐWr_   c              3   óT   •K  — | ]"}t          j        ‰|         d k    ¦  «        V — Œ#dS )rv   N)rb   r   )r•   r-  Úcv_results_multis     €r\   rº   z=compare_cv_results_multimetric_with_single.<locals>.<genexpr>ç  sL   øè è € ð 	
ð 	
àõ ŒFÐ# AÔ&¨!Ò+Ñ,Ô,ð	
ð 	
ð 	
ð 	
ð 	
ð 	
r_   )r'  r(  r%  r&  c                 óD   — i | ]\  }}|                      d ¦  «        °||“ŒS ©Ú_time©Úendswithrp  s      r\   rú  z>compare_cv_results_multimetric_with_single.<locals>.<dictcomp>ö  s/   € ÐNÐNÐN‘$�!�Q¸!¿*º*ÀWÑ:MÔ:MÐNˆˆAÐNÐNÐNr_   c                 óD   — i | ]\  }}|                      d ¦  «        °||“ŒS rw  ry  rp  s      r\   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ÐPr_   N)r  rQ   r¶   r  rÔ   r·   Úupdater   rb   ÚtestingÚassert_equal)Úsearch_multiÚ
search_accÚ
search_recÚcv_results_acc_recru  s       @r\   r]  r]  Õ  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ñô ð ð ð r_   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‡  r?  )rn   r†   r‡   )r/  rl  r   )r'  r   rO   r4  ry   )r  r€  r'  rf   r½   ÚmethodrŽ  s          r\   rg  rg  û  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r_   Ú	max_depthré   )rÚ  rá  ©rÚ  rã   c                 ó�  — t          ddd¬¦  «        \  }}|                      ||¦  «         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‡  r?  r0  z"' has no attribute 'score_samples'z@'DecisionTreeClassifier' object has no attribute 'score_samples'r¢   )r   rh   Ú	__class__r‚   r¤   r¥   r�   Úscore_samplesrÀ   r5  r6  r7  )r—  rf   r½   r9  r:  r;  s         r\   Ú"test_search_cv_score_samples_errorrŠ    s  € õ  °ÀÐCÑCÔC�D€A€qØ‡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   ÁA;Á;A?ÂA?T)ÚnoveltyÚn_neighborsr-  )rÚ  rá  rÖ   )rÚ  rã   rÖ   c           	      óü  — 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	  r@  rû   rÜ  rù   iúÿÿÿr³   )ÚlowÚhighÚsize©Úaxisrv   r�   )rb   r  r  Úintr   Úconcatenater   rð   rh   rN   r‰  rÓ   )r—  r  r	  Úoutliers_fractionÚ
n_outliersÚ	n_inliersrf   Úy_trues           r\   Ú#test_search_cv_score_samples_methodr™  )  s.  € õ" Œ)×
Ò
 Ñ
#Ô
#€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ñô ð ð ð r_   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¾   )rv   gj¼t“ð?çü©ñÒMbP?T)rã   r)  r¬   )rŸ   rá  r)  rŠ  r   rv   r  r’   r  )rv   rv   r¬   )	r   r(   rB   r1   rh   rÔ   rO   rb   Úallclose)rf   r½   rã   rÙ   r*  rS  r�  s          r\   Ú(test_search_cv_results_rank_tie_breakingr�  Y  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r_   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 )Nrv   r’   r¬   r­   ré   )r   r   r   r   rv   rù   r   rÞ   Úparam_random_state)rH   rG   r,   r(   rh   rQ   rÔ   )rf   r½   Ú
estimatorsÚest_parametersrÍ   ÚestrÙ   s          r\   Ú!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r_   c                  ó¦  — 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ø   rv   r’   r¬   r­   )r   rv   rv   r   r¾   rì   )rÍ   rí   rŸ   )r%  r&  )r'  r(  rx   Úrefit_time_)rC   r(   r1   rh   rb   r   rÔ   rá   rÀ   r¥  Úfloat)Úsvcrf   r½   r!  ÚrsrS  rŽ  s          r\   Ú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Ò&Ð&Ð&Ð&Ð&ð'ð 'r_   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ü   )r^  r  r¾   )rÖ   rÍ   )rŠ  r  c              3   ó    K  — | ]	}d |z  V — Œ
dS )rH  Nr‰   )r•   Úcv_is     r\   rº   z9test_grid_search_correct_score_results.<locals>.<genexpr>¿  sA   è è € ð G
ð G
Ø,0Ð  4Ñ'ðG
ð G
ð G
ð G
ð G
ð G
r_   r  )r¾   c                 ó<   •— g | ]}‰j         d |z           ‰         ‘ŒS ©rH  rI  )r•   rK  Úcandidate_irÙ   s     €€r\   r˜   z:test_grid_search_correct_score_results.<locals>.<listcomp>É  s<   ø€ ð ð ð àð  Ô+Ð,@À1Ñ,DÔEÀkÔRðð ð r_   r^  r  )rC   r   r(   rh   rÔ   r™   r‹  rµ   rš   r   rb   Úisinr2   rO  Ú	enumerater€   rð   Úsplitr"   rn   rˆ   r&   rO   )r  rØ   rf   r½   r  ry   r�  Úresult_keysÚexpected_keysrÍ   r¾   Ú	cv_scoresr–   ÚtrainÚtestÚcorrect_scoreÚdecr¯  rÙ   s                    @@r\   Ú&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r_   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 )NrZ   r«   Tr¬   r.  )r'  rŸ   rÍ   )rV   r(   rh   rf   r½   ÚpickleÚloadsÚdumpsrP   rn   r1   )rØ   rÙ   Úgrid_search_pickledr*  Úrandom_search_pickleds        r\   Útest_picklerÁ  Ø  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ñô ð ð ð r_   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…  )rv   r’   r¬   r­   rø   rÞ   r   rH  r¬   )rÍ   rŸ   r‰   )r   r,   rH   rG   r(   rh   rÔ   rš   ra   r€   r±  r²  ry   rO   r1   )rf   r½   r¡  rÍ   r   r¢  rÙ   Ú
res_paramsÚcand_ir–   r¶  r·  r¸  r*  s                 r\   Ú&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ñô ð ð ðð		ð	ð r_   c                  óî   — t          j        d¦  «                             dd¦  «        } g d¢}t          d¬¦  «        }t	          |i d¬¦  «                             | |¦  «        }t          |d	¦  «        rJ ‚d S )
Nrt  ré   r�   ©r   r   rv   rv   rv   F)re  r’   rÞ   r†   )rb   rî   rï   rB   r(   rh   rá   ©rf   r½   rØ   r!  s       r\   Útest_predict_proba_disabledrÊ    sx   € å
Œ	�"‰Œ×Ò˜a Ñ$Ô$€AØˆˆ€AÝ
˜%Ð
 Ñ
 Ô
 €CÝ	�c˜2 !Ð	$Ñ	$Ô	$×	(Ò	(¨¨AÑ	.Ô	.€BÝ�r˜?Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r_   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 )Nrt  rF  ré   r�   r’   rÈ  ÚimputerrX  )ÚstrategyÚmissing_valuesÚ
classifierÚclassifier__foo_paramr«   rÞ   )
rb   rî   rÿ  rï   Únanr<   r   rV   r(   rh   )rf   r½   r¹   s      r\   Ú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ÐIr_   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 rX   ry  r{  s     r\   r]   zFailingClassifier.__init__4  r^   r_   c                 óN   — | j         t          j        k    rt          d¦  «        ‚d S )Nz%Failing classifier failed as required)rz  rÔ  ÚFAILING_PARAMETERr×   r~  s      r\   rh   zFailingClassifier.fit7  s+   € ØŒ>Õ.Ô@Ò@Ð@ÝÐDÑEÔEÐEð AÐ@r_   c                 ó@   — t          j        |j        d         ¦  «        S rj   r€  rp   s     r\   rn   zFailingClassifier.predict;  r�  r_   c                 ó   — dS )Nrx   r‰   re   s      r\   ry   zFailingClassifier.score>  s   € Øˆsr_   rX   r�   )	r‚   rƒ   r„   r…   r×  r]   rh   rn   ry   r‰   r_   r\   rÔ  rÔ  /  so   € € € € € Ø6Ð6àÐð#ð #ð #ð #ðFð Fð Fð Fð$ð $ð $ðð ð ð ð ð r_   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 )Nrt  r�   r   r?  rz  ©r   rv   r’   rþ   Frx   ©rÖ   r'  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®  rI  )r•   rK  r!  r–   s     €€r\   r˜   zPtest_grid_search_failing_classifier.<locals>.get_cand_scores.<locals>.<listcomp>f  s+   ø€ ÐVÐVÐV¸QˆRŒ^Ð0°1Ñ4Ô5°aÔ8ÐVÐVÐVr_   )rb   rð   rš   rO  )r–   r!  s   `€r\   Úget_cand_scoresz<test_grid_search_failing_classifier.<locals>.get_cand_scoresd  s<   øø€ ÝŒxØVÐVÐVÐVÐVÅ%ÈÌÑBUÔBUÐVÑVÔVñ
ô 
ð 	
r_   c              3   óœ   •K  — | ]F}‰j         d          |         t          j        k    ¯#t          j         ‰|¦  «        dk    ¦  «        V — ŒGdS )Úparam_parameterrx   N)rÔ   rÔ  r×  rb   r   ©r•   rÅ  rá  r!  s     €€r\   rº   z6test_grid_search_failing_classifier.<locals>.<genexpr>j  sp   øè è € ð 	
ð 	
àØŒ~Ð/Ô0°Ô8Ý Ô2ò3ð 3õ ŒF�?�? 6Ñ*Ô*¨cÒ1Ñ2Ô2ð3ð 3ð 3ð 3ð	
ð 	
r_   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×  rb   r   Úisnanrä  s     €€r\   rº   z6test_grid_search_failing_classifier.<locals>.<genexpr>ƒ  su   øè è € ð ð àØŒ>Ð+Ô,¨VÔ4ÝÔ.ò/ð /õ 	Œ�rŒx˜˜¨Ñ/Ô/Ñ0Ô0Ñ1Ô1ð/ð /ð /ð /ðð r_   r  r’   rv   r¬   )r   rÔ  r(   rQ  ÚcompileÚDOTALLr¤   Úwarnsr   rh   ra   rÔ   r   rš   r¦  r×  r/  )rf   r½   rØ   Úwarning_messager8  Úranksrá  r!  s         @@r\   Ú#test_grid_search_failing_classifierrì  B  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 )Nrt  r�   r   r?  rz  r¬   rx   ©rí   zrAll the 15 fits failed.+15 fits failed with the following error.+ValueError.+Failing classifier failed as requiredrÝ  r¢   ©r   rÔ  r(   r×  rQ  rç  rè  r¤   r¥   r×   rh   )rf   r½   rØ   r!  rê  s        r\   Ú)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 )Nrt  r�   r   r?  rz  rÛ  rþ   Frë   rÜ  )r   rÔ  r(   r¤   r¥   r×   rh   rÉ  s       r\   Ú)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   rv   )Ú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¢   iè  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     r\   r˜   z7test_parameters_sampler_replacement.<locals>.<listcomp>Ü  s0   € ÐPÐPÐPÀ1˜ q¨¤v¨q°¬v°q¸´vÐ&>Ñ>ÐPÐPÐPr_   r¿   r£  )
r0   r¤   ré  ÚUserWarningr™   ra   r/   rš   rÁ   r
   )	r   rì  rŸ   Ú	grid_sizeÚexpected_warningrí  rû  Úhashable_samplesÚparams_distributions	            r\   Ú#test_parameters_sampler_replacementr  ¾  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   rv   rv   rv   Úhinge)r  r¬   ©rÚ  rã   rÍ   r†   )	rb   rî   rï   r(   r   rá   rh   r†   r‡   )rã   rf   r½   rØ   s       r\   Ú#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Ñ,Ô,Ð,Ð,Ð,Ð,Ð,r_   c                  óÖ   — t          j        d¦  «                             dd¦  «        } g d¢}t          d¬¦  «        }t	          |dddgid	¬
¦  «        }|                     | |¦  «         d S )Nr³   r�   r  r   rø   r¾   rý   r  r¬   )rã   rÍ   )rb   rî   rï   rC   r(   rh   rÉ  s       r\   Ú%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€Lr_   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Í   r)  r  )r  rE  rù   c                 ó:   — dD ]}|                       |¦  «         Œ| S )N)r%  r&  r'  r(  )Úpop)r�  rŽ  s     r\   Ú_pop_time_keysz>test_grid_search_cv_splits_consistency.<locals>._pop_time_keys:  s0   € ð
ð 	 ð 	 ˆCð �NŠN˜3ÑÔÐÐØÐr_   c                 óD   — i | ]\  }}|                      d ¦  «        °||“ŒS rw  ry  rp  s      r\   rú  z:test_grid_search_cv_splits_consistency.<locals>.<dictcomp>Q  s/   € ÐLÐLÐL‘$�!�Q¸¿
º
À7Ñ8KÔ8KÐLˆˆAÐLÐLÐLr_   c                 óD   — i | ]\  }}|                      d ¦  «        °||“ŒS rw  ry  rp  s      r\   rú  z:test_grid_search_cv_splits_consistency.<locals>.<dictcomp>R  s/   € ÐMÐMÐM‘$�!�Q¸¿ºÀGÑ9LÔ9LÐMˆˆAÐMÐMÐMr_   )rý   rý   r  r  )r  rE  )r¶  r·  r­   c                 ó@   •— g | ]}‰j         d |‰fz           ‰         ‘ŒS )zsplit%d_%s_scorerI  )r•   rK  r!  Úparam_iÚ
score_types     €€€r\   r˜   z:test_grid_search_cv_splits_consistency.<locals>.<listcomp>e  s?   ø€ ð )ð )ð )àð ”Ð1°Q¸
°OÑCÔDÀWÔMð)ð )ð )r_   rv   r’   r¬   )r   r(   rC   r7   rh   r,   rÀ   r²  r	   rb   r}  r~  rÔ   r·   rš   rP   )r	  r  rf   r½   Úgs2Úgs3Úgs4r  Úper_param_scoresr!  r  r  s            @@@r\   Ú&test_grid_search_cv_splits_consistencyr    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r_   c                  ó  — t          ¦   «         } t          | dg d¢idd¬¦  «        }|                     t          t          ¦  «         |                     |                     t          ¦  «        ¦  «        }t          t          |¦  «         d S )NrZ   r«   r¬   rÌ   )rV   r(   rh   rf   r½   rt   rq   rQ   )rØ   rÙ   ÚX_round_trips      r\   Ú+test_transform_inverse_transform_round_tripr  n  sw   € Ý
Ñ
Ô
€CÝ˜s [°)°)°)Ð$<ÀÈAÐNÑNÔN€Kà‡O‚O•A•qÑÔÐØ×0Ò0°×1FÒ1FÅqÑ1IÔ1IÑJÔJ€LÝ•q˜,Ñ'Ô'Ð'Ð'Ð'r_   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 )Nrx  r1  z	Checking )rõ   )
rÔ   r¶   r‹  rz  rb   Ú
asanyarrayr÷  rø  rQ   rN   )ÚresultsÚgscvÚexp_resultsr-  s       r\   Úcheck_resultsz-test_custom_run_search.<locals>.check_resultsx  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r_   c                 óP   •— t          ‰| d¬¦  «                             ‰‰¦  «        S )NT©r)  )r(   rh   )rã   rf   rØ   r½   s    €€€r\   Úfit_gridz(test_custom_run_search.<locals>.fit_grid†  s(   ø€ Ý˜C ÀÐEÑEÔE×IÒIÈ!ÈQÑOÔOÐOr_   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 rX   ©Úsuperr]   ©r[   rÚ  Úkwargsrˆ  s      €r\   r]   z7test_custom_run_search.<locals>.CustomSearchCV.__init__Š  ó(   ø€ Ø�E‰GŒGÔ˜YÐ1Ð1¨&Ð1Ð1Ð1Ð1Ð1r_   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…  rv   r’   Úmin_samples_splitré   r�   r‰   )r[   Úevaluater"  r%  r(  s      €€r\   Ú_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ñô ð ð ð r_   )r‚   rƒ   r„   r]   r4  Ú__classcell__)rˆ  r%  r(  s   @€€r\   ÚCustomSearchCVr*  ‰  sW   øø€ € € € € ð	2ð 	2ð 	2ð 	2ð 	2ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r_   r6  r   rø   rè   r­   )r	  Ún_informativerù   Tr'  r…  rv   r’   r2  ré   r�   r�   rÝ  >   r  rd   rÔ   r¥  rÓ   zAttribute %s not equal)r5   rH   r   rh   rÔ   ÚdirÚislowerr4  )
r6  Úmycvr#  r"  Úattrrf   r%  rØ   r(  r½   s
        @@@@@r\   Útest_custom_run_searchr<  w  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Ñ/ñ >Ô=Ð=øðð r_   c                  óŽ  —  G d„ dt           ¦  «        }  | t          ¦   «         ¦  «                             t          t          ¦  «          G d„ dt           ¦  «        }t          j        t          d¬¦  «        5   |t          ¦   «         ¦  «                             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 rX   r,  r.  s      €r\   r]   zDtest__custom_fit_no_run_search.<locals>.NoRunSearchSearchCV.__init__²  r0  r_   Nc                 ó   — | S rX   r‰   )r[   rf   r½   r  Ú
fit_paramss        r\   rh   z?test__custom_fit_no_run_search.<locals>.NoRunSearchSearchCV.fitµ  s   € ØˆKr_   r�   )r‚   rƒ   r„   r]   rh   r5  ©rˆ  s   @r\   ÚNoRunSearchSearchCVr?  ±  sL   ø€ € € € € ð	2ð 	2ð 	2ð 	2ð 	2ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r_   rD  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 rX   r,  r.  s      €r\   r]   z<test__custom_fit_no_run_search.<locals>.BadSearchCV.__init__¼  r0  r_   )r‚   rƒ   r„   r]   r5  rC  s   @r\   ÚBadSearchCVrF  »  s8   ø€ € € € € ð	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2r_   rH  z_run_search not implemented.r¢   )r5   rB   rh   rf   r½   r¤   r¥   ÚNotImplementedError)rD  rH  s     r\   Útest__custom_fit_no_run_searchrJ  °  s  € ðð ð ð ð �lñ ô ð ð Ð�™œÑÔ×"Ò"¥1¥aÑ(Ô(Ð(ð2ð 2ð 2ð 2ð 2•lñ 2ô 2ð 2õ 
ŒÕ*Ð2PÐ	QÑ	QÔ	Qð %ð %àˆ•C‘E”EÑÔ×Ò�q¥!Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s   Á76B:Â:B>ÃB>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     r\   r˜   z0test_empty_cv_iterator_error.<locals>.<listcomp>Ë  s   € €O€O€Oˆ1€Q€O€O€Or_   rè   r%  ©r›  r‰  rý   r­   ©rÍ   Ún_jobszNNo fits were performed. Was the CV iterator empty\? Were there no candidates\?r¢   )
r,   r²  rf   r1   r   r¤   r¥   r×   rh   r½   )rÍ   Ú
train_sizeÚridges      r\   Útest_empty_cv_iterator_errorrS  Ä  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 )Nrv   r‰   )r[   ÚargsÚkws      r\   Úget_n_splitsz;test_random_search_bad_cv.<locals>.BrokenKFold.get_n_splitsá  s   € Ø�1r_   N)r‚   rƒ   r„   rZ  r‰   r_   r\   ÚBrokenKFoldrV  à  s#   € € € € € ð	ð 	ð 	ð 	ð 	r_   r[  r¬   r  rè   r%  rN  r­   rO  zXcv.split and cv.get_n_splits returned inconsistent results. Expected \d+ splits, got \d+r¢   )	r,   r1   r   r¤   r¥   r×   rh   rf   r½   )r[  rÍ   rQ  rR  s       r\   Útest_random_search_bad_cvr\  Ý  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"r)  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 rj   )Ún_countsrŽ   s    r\   r]   zQtest_searchcv_raise_warning_with_non_finite_score.<locals>.FailingScorer.__init__  s   € ØˆDŒMˆMˆMr_   c                 óZ   — | xj         dz  c_         | j         dz  dk    rt          j        S dS )Nrv   ré   r   )ra  rb   rÑ  )r[   rÚ  rf   r½   s       r\   Ú__call__zQtest_searchcv_raise_warning_with_non_finite_score.<locals>.FailingScorer.__call__  s0   € ØˆMŒM˜QÑˆMŒMØŒ}˜qÑ  AÒ%Ð%Ý”v�Ø�1r_   N)r‚   rƒ   r„   r…   r]   rc  r‰   r_   r\   ÚFailingScorerr_  
  s8   € € € € € Ø?Ð?ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r_   rd  r¬   )rÖ   rÍ   r)  r·  r¶  zOne or more of the z scores are non-finiter  rŠ  )r   rG   r¤   ré  rþ  rh   ra   Úzipr7  ÚmessagerÔ   Úmaxrb   ræ  rQ   r   )ræ   rR  r)  rf   r½   rd  r—   Úwarn_msgÚset_with_warningÚmsgÚdatasetÚ	last_rankÚnon_finite_masks                r\   Ú1test_searchcv_raise_warning_with_non_finite_scorern  ö  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   rv   )rv   r   ©rv   rv   ©ÚtnÚfpÚfnÚtp)rn   r!   )rØ   rf   r½   rY  Úcms        r\   Úcustom_scorerzAtest_callable_multimetric_confusion_matrix.<locals>.custom_scorer1  sB   € Ø—’˜Q‘”ˆÝ˜a Ñ(Ô(ˆØ˜”h b¨¤h°b¸´hÀbÈÄhÐOÐOÐOr_   é(   r­   r‡  r?  rø   r¾   rý   rv   ru  rƒ  rs  zmean_test_{}rq  )r   rC   r(   rh   ÚformatrÔ   rn   r!   ry   r¤   rP  )	ry  rf   r½   r¢  rS  Úscore_namesÚnamerY  rx  s	            r\   Ú*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Ð8r_   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)r1  rþ   )rn   r%   r    ©r¢  rf   r½   rY  s       r\   ry  zHtest_callable_multimetric_same_as_list_of_strings.<locals>.custom_scorerG  s:   € Ø—’˜Q‘”ˆå" 1 fÑ-Ô-Ý& q¨&Ñ1Ô1ð
ð 
ð 	
r_   rz  r­   r‡  r?  rø   r¾   rý   rv   r1  rƒ  rþ   ©	r   rC   r(   rh   rl  r¤   rP  r/  ry   )ry  rf   r½   r¢  Úsearch_callableÚ
search_strs         r\   Ú1test_callable_multimetric_same_as_list_of_stringsr…  E  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ÐOr_   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 rX   )rn   r%   r�  s       r\   ry  zHtest_callable_single_metric_same_as_single_string.<locals>.custom_scorera  s!   € Ø—’˜Q‘”ˆÝ˜A˜vÑ&Ô&Ð&r_   rz  r­   r‡  r?  rø   r¾   rý   rv   Trƒ  r1  r‚  )ry  rf   r½   r¢  rƒ  r„  Úsearch_list_strs          r\   Ú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ÐOr_   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_namerv   r‰   ©r¢  rf   r½   s      r\   Ú
bad_scorerzBtest_callable_multimetric_error_on_invalid_key.<locals>.bad_scorer}  s   € Ø˜AˆÐr_   rz  r­   r‡  r?  rø   r¾   rý   rv   Ú	good_namerƒ  z`For multi-metric scoring, the parameter refit must be set to a scorer key or a callable to refitr¢   )r   r(   rC   r¤   r¥   r×   rh   )rŽ  rf   r½   rØ   rj  s        r\   Ú.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 ©Nr2  rv   r‰   r�  s      r\   ry  zBtest_callable_multimetric_error_failing_clf.<locals>.custom_scorer“  ó   € Ø�qˆzÐr_   rt  r�   r   r?  rz  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)rv   rv   rý   )r   rÔ  r(   rQ  rç  rè  r¤   ré  r   rh   rN   rÔ   )ry  rf   r½   rØ   r!  rê  s         r\   Ú+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      r\   ry  zBtest_callable_multimetric_clf_all_fits_fail.<locals>.custom_scorer®  r”  r_   rt  r�   r   r?  rz  r¬   Frý   rÜ  z1ValueError: Failing classifier failed as requiredz5All the 15 fits failed.+your model is misconfigured.+rÝ  r¢   rï  )ry  rf   r½   rØ   r!  Úindividual_fit_error_messager¨   s          r\   Ú+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­   ©r@  Úmax_iterr¬   rv   rž   Ún_features_in_)r   r   r(   r1   rá   rh   rž  )r@  rf   r½   Úgbdtrã   r!  r¨  s          r\   Útest_n_features_inr   Ê  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ØÔ 
Ò*Ð*Ð*Ð*ØÔ 
Ò*Ð*Ð*Ð*Ð*Ð*r_   Úpairwisec                 óÀ   ‡ —  G ˆ fd„dt           ¦  «        } |¦   «         }d}t          |ddgi¦  «        }‰ |                     ¦   «         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 make sure pairwise tag is delegated to the base estimator.

    Non-regression test for issue #13920.
    c                   ó   •— e Zd Zˆ fd„ZdS )úStest_search_cv_pairwise_property_delegated_to_base_estimator.<locals>.TestEstimatorc                 ó   •— d‰iS ©Nr¡  r‰   ©r[   r¡  s    €r\   Ú
_more_tagsz^test_search_cv_pairwise_property_delegated_to_base_estimator.<locals>.TestEstimator._more_tagsæ  s   ø€ Ø Ð)Ð)r_   N)r‚   rƒ   r„   r¨  ©r¡  s   €r\   ÚTestEstimatorr¤  å  s.   ø€ € € € € ð	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*r_   rª  z.BaseSearchCV pairwise tag must match estimatorrŒ  r�   r¡  N)r   r(   Ú	_get_tags)r¡  rª  r¢  Úattr_messagerÍ   s   `    r\   Ú<test_search_cv_pairwise_property_delegated_to_base_estimatorr­  Û  s‹   ø€ ð*ð *ð *ð *ð *ð *ð *�ñ *ô *ð *ð ˆ-‰/Œ/€CØC€LÝ	�c˜M¨B¨4Ð0Ñ	1Ô	1€BØ�r—|’|‘~”~ jÔ1Ò1Ð1Ð1°<Ñ1Ô1Ð1Ð1Ð1r_   c                  óð   —  G d„ dt           ¦  «        }  | ¦   «         }d}dD ]S}|                     |¬¦  «         t          |ddgi¦  «        }||                     ¦   «         d         k    s
J |¦   «         ‚ŒTd	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d„ ZdS )úXtest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwiseTc                 ó   — || _         d S rX   r©  r§  s     r\   r]   zatest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwise.__init__ù  s   € Ø$ˆDŒMˆMˆMr_   c                 ó   — d| j         iS r¦  r©  rŽ   s    r\   r¨  zctest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwise._more_tagsü  s   € Ø ¤Ð.Ð.r_   N)T)r‚   rƒ   r„   r]   r¨  r‰   r_   r\   ÚEstimatorPairwiser°  ø  s7   € € € € € ð	%ð 	%ð 	%ð 	%ð	/ð 	/ð 	/ð 	/ð 	/r_   r³  z4BaseSearchCV _pairwise property must match estimatorrd  r©  rŒ  r�   r¡  N)r   r€   r(   r«  )r³  r¢  r¬  Ú_pairwise_settingrÍ   s        r\   Ú=test_search_cv__pairwise_property_delegated_to_base_estimatorrµ  ï  s³   € ð/ð /ð /ð /ð /�Mñ /ô /ð /ð Ð
Ñ
Ô
€CØI€Là*ð Mð MÐØ�ŠÐ 1ˆÑ2Ô2Ð2Ý˜# °¨tÐ4Ñ5Ô5ˆØ  B§L¢L¡N¤N°:Ô$>Ò>Ð>Ð>ÀÑ>Ô>Ð>Ð>ðMð Mr_   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Þ   ri  )Úmetricz2GridSearchCV not identical with precomputed metricN)r   r:   r(   rh   rn   r'   r   )r	  r  rf   r½   Úgrid_paramsrØ   rÍ   Úpreds_originalÚX_precomputedÚpreds_precomputedr¬  s              r\   Ú;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ÐDÐDÐDr_   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 rX   )rô  )r[   rô  s     r\   r]   z5test_scalar_fit_param.<locals>.TestEstimator.__init__/	  s   € ØˆDŒFˆFˆFr_   c                 ó   — || _         d S rX   )Úr_)r[   rf   r½   Úrs       r\   rh   z0test_scalar_fit_param.<locals>.TestEstimator.fit2	  s   € ØˆDŒGˆGˆGr_   c                 óF   — t          j        t          |¦  «        ¬¦  «        S )Nrk   )rb   ró   ra   rp   s     r\   rn   z4test_scalar_fit_param.<locals>.TestEstimator.predict5	  s   € Ý”8¥3 q¡6¤6Ð+Ñ+Ô+Ð+r_   rX   )r‚   rƒ   r„   r]   rh   rn   r‰   r_   r\   rª  r¿  .	  sK   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	,ð 	,ð 	,ð 	,ð 	,r_   rª  r‡  rø   )rÃ  )r   r   r   rh   rÓ   rÂ  )ræ   Úparam_searchrª  Úmodelrf   r½   s         r\   Útest_scalar_fit_paramrÇ  &	  s�   € ð,ð ,ð ,ð ,ð ,�­ñ ,ô ,ð ,ð ˆH�]�]‘_”_ lÑ3Ô3€EÝ¨BÐ/Ñ/Ô/�D€A€qØ	‡I‚Iˆa��b€IÑÔÐØÔ Ô# rÒ)Ð)Ð)Ð)Ð)Ð)r_   r%  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 )N)Úsample_weightr   r’   rv   )r-  rh   ÚcallablerÀ   rµ   Úndim)r[   rf   r½   rÌ  Útuple_of_arraysÚscalar_paramÚcallable_paramrˆ  s          €r\   rh   z=test_scalar_fit_param_compat.<locals>._FitParamClassifier.fitQ	  s•   ø€ õ ‰GŒG�KŠK˜˜1¨MˆKÑ:Ô:Ð:Ø !Ò#Ð#Ð#Ð#Ý˜NÑ+Ô+Ð+Ð+Ð+õ ˜o­uÑ5Ô5Ð5Ð5Ð5Ø" 1Ô%Ô*¨aÒ/Ð/Ð/Ð/Ø" 1Ô%Ô*¨aÒ/Ð/Ð/Ð/ØˆKr_   ©NNNN)r‚   rƒ   r„   rh   r5  rC  s   @r\   Ú_FitParamClassifierrÊ  P	  sK   ø€ € € € € ð
 Ø ØØð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r_   rÓ  c                  ó   — d S rX   r‰   r‰   r_   r\   Ú_fit_param_callablez9test_scalar_fit_param_compat.<locals>._fit_param_callabled	  s   € Øˆr_   )rÏ  rÑ  rÐ  )r4   r   r   rh   )
ræ   rÅ  ÚX_trainÚX_validro  Úy_validrÓ  rÕ  rÆ  rB  s
             r\   Útest_scalar_fit_param_compatrÙ  >	  sÈ   € õ *:Ý	¨"Ð	-Ñ	-Ô	-ð*Ø<>ð*ð *Ñ&€GˆW�g˜wðð ð ð ð �mñ ô ð ð(ð ð ð ˆHÐ(Ð(Ñ*Ô*¨LÑ9Ô9€Eð $ WÐ-Ø-Øðð €Jð
 €E„Iˆg�wÐ-Ð- *Ð-Ð-Ð-Ð-Ð-r_   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é   rv   rt  ÚtransformerÚ	predictorr�   )Útransformer__paramÚpredictor__paramarë   rî  )rb   r  r  Úrandnrð   r<   rM   rh   r   r‹  rn   r   rQ   ry   r¤   rP  r    rN   rX  r$   )	ræ   rÚ  r  rf   r½   rÆ  r   rS  rY  s	            r\   Ú1test_search_cv_using_minimal_compatible_estimatorrâ  x	  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ÐGr_   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Í   r)  z$score=\(train=[\d\.]+, test=[\d.]+\)zscore=[\d\.]+N)	r   rC   r(   rh   Ú
readouterrÚoutrQ  Úfindallra   )Úcapsysr)  rf   r½   rØ   r—   Úcapturedr£   s           r\   Ú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‰:Œ:˜Š?ˆ?ˆ?ˆ?ˆ?ˆ?r_   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þ   ©r'  rÍ   rÖ   )r   rC   r¾   r<   rM   rh   rÓ   Únamed_steps)	ræ   rÅ  rf   r½   r   Úorig_Crâ   Úparam_grid_searchr!  s	            r\   Ú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Ò:Ð:Ð:Ð:Ð:Ð:r_   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)rr  ©rv   r’   )Úl1Úl2)Úvect__ngram_rangeÚ
vect__normÚvectrØ   r¬   r   r’   rv   )rÚ  rá  rŸ   rù   rP  rÎ   rÍ   )Úonerú  ÚthreeÚfourÚfive)r   r   rv   r   rv   Úparam_vect__ngram_rangerF  )ró  ró  rr  )r<   r   r8   r1   rh   rÔ   rb   rÈ   Úobjectr}  rQ   rÕ   )Úparameter_gridÚpipeliner*  Ú
data_trainÚdata_targetÚresultÚexpected_datas          r\   Útest_search_with_2d_arrayr  Ë	  sñ   € à-Ø"ðð €Nõ à•_Ñ&Ô&Ð'Ø•L‘N”NÐ#ð	
ñô €Hõ 'ØØ*ØØØØØðñ ô €Mð 9Ð8Ð8€JØ!�/�/€KØ×Ò�j +Ñ.Ô.Ð.ØÔ&Ð'@ÔA€FÝ”H˜Q¥fÐ-Ñ-Ô-€MØ/Ð/Ð/€M�!�!�!ÑÝ„J×!Ò! &¤+¨}Ñ=Ô=Ð=Ð=Ð=r_   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ø   r>  rØ   F)rã   r'  Údiagram)Údisplayz<pre>DummyClassifier()</pre>NTz<pre>LogisticRegression()</pre>)	r   r<   rA   r   r   r(   r   Ú_repr_html_rh   )rf   r½   r   rã   r—  Ú	repr_htmls         r\   Útest_search_html_reprr  è	  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Ý	 	Ð	*Ñ	*Ô	*ð ;ð ;Ø×)Ò)Ñ+Ô+ˆ	Ø-°Ð:Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð
 ‡M‚M�!�QÑÔÐÝ	 	Ð	*Ñ	*Ô	*ð ;ð ;Ø×)Ò)Ñ+Ô+ˆ	Ø-°Ð:Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;õ
 ˜X°*ÀDÐIÑIÔI€IØ‡M‚M�!�QÑÔÐÝ	 	Ð	*Ñ	*Ô	*ð >ð >Ø×)Ò)Ñ+Ô+ˆ	Ø-°YÐ>Ð>Ð>Ð>Ø0°IÐ=Ð=Ð=Ð=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s6   ÂB)Â)B-Â0B-ÃDÄDÄ	DÅ!E4Å4E8Å;E8c                 ó  — t          ¦   «         } | |dg d¢idd¬¦  «        }|                     t          t          ¦  «                             t          ¦  «        }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          j
        d	¬
¦  «        5  t          j        d¦  «         |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrZ   r«   r¬   rÌ   z$Missing required positional argumentr¢   z$Cannot use both X and Xt. Use X only)rf   ÚXtT)ÚrecordÚerrorzXt was renamed X in version 1.5)r  )rV   rh   rf   r½   rq   r¤   r¥   r  rt   ÚwarningsÚcatch_warningsÚsimplefilterré  ÚFutureWarning)ræ   rØ   rS  ÚX2s       r\   Ú%test_inverse_transform_Xt_deprecationr  
  su  € å
Ñ
Ô
€CØˆX�c˜K¨¨¨Ð3¸À1ÐEÑEÔE€Fà	�Š•A•qÑ	Ô	×	#Ò	#¥AÑ	&Ô	&€Bå	Œ•yÐ(NÐ	OÑ	OÔ	Oð #ð #Ø× Ò Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ 
Œ•yÐ(NÐ	OÑ	OÔ	Oð .ð .Ø× Ò  2¨"Ð Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð %ð %ÝÔ˜gÑ&Ô&Ð&Ø× Ò  Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ 
Œ•mÐ+LÐ	MÑ	MÔ	Mð (ð (Ø× Ò  BÐ Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (sH   Á5BÂBÂBÂ<C Ã C$Ã'C$Ä *D6Ä6D:Ä=D:ÅF Æ FÆFÚenable_slep006c                 ó*  — 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S )zMTest that *SearchCV forwards metadata correctly when passed multiple metrics.r‡  rø   r   r¾   rv   )ÚregistryÚscore_weightsÚscore_metadata)rÌ  Úmetadatarþ   )Ú	my_scorerrþ   r’   rí  )r  r  ry   )Úobjr„  Úsplit_paramsrÌ  r  N)r   rT   rb   r  r  ÚrandrC   rE   rD   Úset_score_requestrÓ  rh   ra   rF   )ræ   rÅ  rf   r½   r	  r  r  r  r¢  rð  Úscorer_registryÚscorerrÖ   Ú_scorers                 r\   Ú*test_multi_metric_search_forwards_metadatar$  
  sZ  € õ ¨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Ø'Ø#ð	
ñ 	
ô 	
ð 	
ð 	
ð
ð 
r_   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¾   rv   rÍ   r’   zis only supported ifr¢   )r  N)r   rC   rh   r¤   r¥   r×   ry   )ræ   rÅ  rf   r½   r¢  rð  r!  s          r\   Ú1test_score_rejects_params_with_no_routing_enabledr&  D
  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 rX   )Úbase_clfÚ
parameter1Ú
parameter2Ú
parameter3Ú
parameter4)r[   r+  r,  r-  r.  r/  s         r\   r]   zAtest_cv_results_dtype_issue_29074.<locals>.MetaEstimator.__init__a
  s+   € ð %ˆDŒMØ(ˆDŒOØ(ˆDŒOØ(ˆDŒOØ(ˆDŒOˆOˆOr_   c                 ó<   — | j                              ||¦  «         | S rX   )r+  rh   r~  s      r\   rh   z<test_cv_results_dtype_issue_29074.<locals>.MetaEstimator.fito
  s   € ØŒM×Ò˜a Ñ#Ô#Ð#ØˆKr_   c                 ó8   — | j                              ||¦  «        S rX   )r+  ry   r~  s      r\   ry   z>test_cv_results_dtype_issue_29074.<locals>.MetaEstimator.scores
  s   € Ø”=×&Ò& q¨!Ñ,Ô,Ð,r_   rÒ  rX   )r‚   rƒ   r„   r]   rh   ry   r‰   r_   r\   ÚMetaEstimatorr)  `
  sY   € € € € € ð ØØØð	)ð 	)ð 	)ð 	)ð	ð 	ð 	ð 	ð	-ð 	-ð 	-ð 	-ð 	-r_   r2  NÚoptionÚAÚBrv   r’   rô  Ústr1Ústr2)r,  r-  r.  r/  r¬   r
  r   rø   Úparam_)	r   r   r(   r   r   rh   rÔ   r÷  rþ  )r2  rã   rÙ   rf   r½   rõ  s         r\   Ú!test_cv_results_dtype_issue_29074r9  ]
  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r_   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Ã  )rv   r’   r¬   r­   ré   )rô  rô  rô  rô  rô  )rw   gffffff@r&  g      @rw   )Ú	numeric_1Úobject_1Útargetr=  rv   r‘  ÚencF)Úsparse_outputr<  Úpassthrough)Ú	remainderrÝ   Úenc__encr’   rÞ   Úparam_enc__encN)r¤   Úimportorskiprº  Údropr   r>   r<   r   r?   r(   rh   rÔ   r÷  rþ  )ÚpdÚdfrf   r½   r>  râ   r¸  rÙ   s           r\   Ú'test_search_with_estimators_issue_29157rH  Š
  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ÐDr_   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–   r@  s     €r\   r˜   z4test_cv_results_multi_size_array.<locals>.<listcomp>¸
  s   ø€ Ð9Ð9Ð9 q�J ‘NÐ9Ð9Ð9r_   )r�   r¤  é   c                 ó€   •— g | ]:}t          j        d t           j        dz  |¦  «                             d‰f¦  «        ‘Œ;S )r   r’   r�   )rb   ÚlinspaceÚpirï   )r•   Ún_knotsr@  s     €r\   r˜   z4test_cv_results_multi_size_array.<locals>.<listcomp>¹
  sP   ø€ ð ð ð àõ 	Œ�A•r”u˜q‘y 'Ñ*Ô*×2Ò2°B¸
Ð3CÑDÔDðð ð r_   Úsplinetransformer__knotsr†  Úparam_splinetransformer__knotsN)	r   r=   r@   r   r(   rh   rÔ   r÷  rþ  )rf   r½   Úspline_reg_pipeÚn_knots_listÚ
knots_listÚspline_reg_pipe_cvr@  s         @r\   Ú test_cv_results_multi_size_arrayrX  «
  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ÐXr_   )r4  r÷  ró  )r¬   r­   )Úcandidate_paramsÚexpectedÚ	param_foozsimple numeric, single param)Úidr±   r«   Ú	param_bar)r¬   r­   r   )FFTr3  z1simple numeric, one param is missing in one roundrF  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 rX   )r™   r6   re  r÷  rb   r}  rQ   r4  )rY  rZ  r  rŽ  r5  Úexpected_keyÚexpected_values          r\   Ú&test_yield_masked_array_for_each_paramra  Ö
  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r_   )r‰   )èr…   r¼  rQ  rÑ   r  Úcollections.abcr   r   Ú	functoolsr   Úior   Ú	itertoolsr   r   rÆ  r	   Únumpyrb   r¤   Úscipy.statsr
   r   r   rÐ   r   Úsklearn.baser   r   r   Úsklearn.clusterr   Úsklearn.composer   Úsklearn.datasetsr   r   r   Ú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_selectionr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Úsklearn.model_selection._searchr5   r6   Ú$sklearn.model_selection.tests.commonr7   Úsklearn.naive_bayesr8   Úsklearn.neighborsr9   r:   r;   Úsklearn.pipeliner<   r=   Úsklearn.preprocessingr>   r?   r@   rA   Úsklearn.svmrB   rC   Ú%sklearn.tests.metadata_routing_commonrD   rE   rF   Úsklearn.treerG   rH   Úsklearn.utils._mockingrI   rJ   Úsklearn.utils._testingrK   rL   rM   rN   rO   rP   rQ   rR   Úsklearn.utils.fixesrS   Úsklearn.utils.validationrT   rV   r‹   rð   rf   r½   r›   ÚmarkÚparametrizer  r©   rÊ   rÛ   rå   rö   r  r  r#  r(  r+  r<  rD  rM  rO  rT  r\  rg  rr  ru  rw  r„  r�  r•  r›  r   r­  rµ  r¸  rÉ  rÕ  rÞ  rï  r	  r  r;  rB  rZ  r_  ri  r]  rg  rŠ  r™  r�  r£  r©  rº  rÁ  rÆ  rÊ  rÒ  rÔ  rì  rð  rò  r  r  r  r  r  r<  rJ  rS  r\  rn  r~  r…  r‰  r�  r–  rš  r   r­  rµ  r¼  rÇ  rÙ  Úfilterwarningsrâ  ré  rñ  r  r  r  Úusefixturesr$  r&  r9  rH  rX  Úone_hot_encoderÚordinal_encoderró  rô  rÈ   rþ  Úma_with_tuplesrõ  ra  r‰   r_   r\   ú<module>rŠ     s–  ðØ Ð à €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à "Ð "Ð "Ð "Ð "Ð "Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ "Ð "Ð "Ð "Ð "Ð "Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð
 *Ð )Ð )Ð )Ð )Ð )Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø /Ð /Ð /Ð /Ð /Ð /Ø 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Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð /Ð .Ð .Ð .Ð .Ð .Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ð
$ð $ð $ð $ð $ñ $ô $ð $ð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	/ð 	/ð 	/ð(ð (ð (ðVð ð ðFð Fð Fð6ð 6ð 6ð%ð %ð %ðP „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð* „×Ò˜¨.Ñ9Ô9ð!(ð !(ñ :Ô9ð!(ðH*ð *ð *ð:!ð !ð !ð$ð $ð $ð $ð $�}ñ $ô $ð $ð ð
ð 
ñ „ð
ð*+ð *+ð *+ð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!
ð !
ð !
ðH#ð #ð #ðLFð Fð Fð& „×ÒØàÐØ,Ð,Ñ.Ô.Ø!,¨q°"¨gÐ 6ð	
ñ 	
ô 	
ð 	ˆØ,Ð,Ñ.Ô.¸KÈ!ÈRÈÐ;Qð	
ñ 	
ô 	
ðñô ð7ð 7ñô ð7ð „×ÒØàÐØ(Ð(°Ð6Ñ6Ô6Ø!.°°B°Ð 8Øð	
ñ 	
ô 	
ð
 	ˆØ(Ð(°Ð6Ñ6Ô6Ø%¨¨2 wÐ/Øð	
ñ 	
ô 	
ðñô ðð ñô ððBNð Nð NðDUð Uð Uð €ÑÔð%'ð %'ñ Ôð%'ð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ð2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ð@ð @ñ 4Ô3ð@ð&Mð Mð Mð2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Ð+ðñô ð;ð ;ñô ð;ð(>ð >ð >ð:>ð >ð >ð: „×Ò˜ lÐ4FÐ%GÑHÔHð(ð (ñ IÔHð(ð0 „×ÒÐ)Ñ*Ô*Ø„×ÒØà	�|Ð$Ø	Ð2Ð3ðñô ð
ð 
ñô ñ +Ô*ð
ð< „×ÒØà	�|Ð$Ø	Ð2Ð3Ø	˜lÐ+ðñô ð
#ð 
#ñô ð
#ð"*Ið *Ið *IðZEð Eð EðBð ð ðB  �-‘/”/€Ø �.Ñ"Ô"€ð ”×"Ò" 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ð Gð Gr_   