Ë
    8Ò^j¢ ã                   óø  — d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	 ddl
mZ ddlmZmZ ddlmZ ddlZddlZddlmZmZmZmZ dd	lmZ dd
lmZmZmZmZ ddl m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@ ddlAmBZBmCZCmDZDmEZEmFZFmGZGmHZH ddlImJZJ ddlKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY ddlZm[Z[m\Z\ ddl]m^Z^ ddl_m`Z` ddlambZbmcZcmdZd ddlemfZfmgZg ddlhmiZimjZjmkZkmlZl dd lmmnZnmoZo dd!lpmqZqmrZrmsZs dd"ltmuZumvZv dd#lwmxZx dd$lymzZzm{Z{ dd%l|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z† dd&l‡mˆZˆ dd'l‰mŠZŠ dd(l‹mŒZŒ  G d)„ d*ee«      Z� G d+„ d,eo«      ZŽ e�j                  d-d-gd.d-gd/d/gd0d/gg«      Z� e�j                  g d1¢«      Z‘d2„ Z’e�j&                  �j)                  d3eT e	eUd4¬5«      g«      e�j&                  �j)                  d6de•d7fd8dgidge•d9fd8die•d:fg«      d;„ «       «       Z–d<„ Z—d=„ Z˜d>„ Z™e�j&                  �j)                  d?eLeVg«      d@„ «       ZšdA„ Z›dB„ ZœdC„ Z�dD„ ZždE„ ZŸdF„ Z dG„ Z¡dH„ Z¢dI„ Z£dJ„ Z¤e�j&                  �j)                  dKeŠ«      dL„ «       Z¥e�j&                  �j)                  dKeŠ«      dM„ «       Z¦dN„ Z§dO„ Z¨ G dP„ dQe«      Z©e�j&                  �jU                  dR«      dS„ «       Z«dT„ Z¬dU„ Z­e�j&                  �j)                  dVd-d0g«      e�j&                  �j)                  dWeVeLg«      dX„ «       «       Z®dY„ Z¯dZ„ Z°d[„ Z±d\„ Z²d]„ Z³d^„ Z´d_„ Zµd`„ Z¶da„ Z·dÜdb„Z¸dc„ Z¹dd„ Zºe�j&                  �j)                  deeLdfdgd/d4giifeVdgd/d4gid0dhœfg«      di„ «       Z»dj„ Z¼dk„ Z½dl„ Z¾dm„ Z¿e�j&                  �j)                  dW eV eu«       dndod4gi¬p«       eL eu«       dndod4gi¬q«      g«      dr„ «       ZÀds„ ZÁe�j&                  �j)                  dt eL e>«       dgg du¢i¬q«       eV e?«       dvg dw¢i¬p«      g«      dx„ «       ZÂe�j&                  �j)                  dW eV eddy¬z«      d{dod4gid|¬}«       eL eddy¬z«      d{dod4gid|¬~«      g«      d„ «       ZÃd€„ ZÄd�„ ZÅe�j&                  �jU                  d‚«      dƒ„ «       ZÆd„„ ZÇd…„ ZÈd†„ ZÉd‡„ ZÊdˆ„ ZË G d‰„ dŠe«      ZÌd‹„ ZÍdŒ„ ZÎd�„ ZÏdŽ„ ZÐd�„ ZÑd�„ ZÒd‘„ ZÓd’„ ZÔd“„ ZÕd”„ ZÖe�j&                  �j®                  d•„ «       ZØd–„ ZÙe�j&                  �j)                  d—d˜dyg«      e�j&                  �j)                  deeLdfdng d™¢iifeVdng d™¢idšdhœfg«      d›„ «       «       ZÚdœ„ ZÛd�„ ZÜdž„ ZÝdŸ„ ZÞd „ Zßd¡„ Zàd¢„ Záe�j&                  �j)                  d£dyd˜g«      d¤„ «       Zâd¥„ Zãd¦„ Zäe�j&                  �j)                  d§eLd¨d©dªgifeVd¨ ed/d««      ifg«      d¬„ «       Zåe�j&                  �j)                  d§eLdvd©dªgifeVdv edªd©«      ifg«      d­„ «       Zæe�j&                  �jU                  d®«      e�j&                  �j)                  d?eLeVg«      e�j&                  �j)                  d¯e~e}g«      d°„ «       «       «       Zçe�j&                  �j)                  d—dyd˜g«      d±„ «       Zèe�j&                  �j)                  d§eLdffeVd²feOdffg«      d³„ «       Zée�j&                  �j®                  d´„ «       Zêdµ„ Zëe�j&                  �j)                  d§eLdffeVd²fg«       edy¬¶«      d·„ «       «       Zìe�j&                  �j)                  d§eLdffeVd²feOdffg«      d¸„ «       Zíd¹„ Zîdº„ Zïd»„ Zðe�j&                  �j)                  d¼ ex«       «      e�j&                  �j)                  d?eLeVg«      d½„ «       «       Zñ ei«       Zò ej«       Zóe�jè                  �jë                   e�jì                  d0«      dye÷¬¾«      Zød¿eød<   dÀeød/<   e�j&                  �j)                  dÁ e�jò                  d8d/id8d0igdÂe�jè                  �jë                   e�j                  d/d0g«      «      fgdÃ¬Ä«       e�jò                  d/d«dÅœd0dšdÅœd8d«igdÂe�jè                  �jë                   e�j                  g dÆ¢«      «      fdÇe�jè                  �jë                   e�j                  g dÈ¢«      g dÉ¢¬Ê«      fgdË¬Ä«       e�jò                  d8d/gd0gd«ggid8d/gd0ggigdÂe�jè                  �jë                  d/gd0gd«ggd/gd0ggge÷¬Ì«      fgdÍ¬Ä«       e�jò                  d8d¿id8dÀigdÂeøfgdÎ¬Ä«       e�jò                  d8eóid8eòigdÂe�jè                  �jë                  eóeòge÷¬Ì«      fgdÏ¬Ä«      g«      dÐ„ «       ZúdÑ„ ZûdÒ„ Züe�j&                  �j)                  dÓdyd˜g«      e�j&                  �j)                  dÔ eüe"dÕ«      «      e%dÖ„ «       «       «       Zýe�j&                  �j)                  dÓdyd˜g«      e�j&                  �j)                  dÔ eüe!d×«      «      e%dØ„ «       «       «       Zþe%dÙ„ «       Zÿe�j&                  �j)                  dÔ eüe!d×«      «      e%dÚ„ «       «       �Z e%dÛ„ «       �Zy)ÝzTest the search moduleé    N)ÚIterableÚSized)Úpartial)ÚStringIO)ÚchainÚproduct)ÚGeneratorType)Ú	bernoulliÚexponÚrandintÚuniform)Úconfig_context)ÚBaseEstimatorÚClassifierMixinÚcloneÚis_classifier)ÚMaxIterEstimatorÚNoCallbackEstimatorÚRecordingAutoPropagatedCallbackÚRecordingCallbackÚskip_callback_test_if_wasm)ÚKMeans)ÚColumnTransformer)Ú
make_blobsÚmake_classificationÚmake_multilabel_classification)ÚLinearDiscriminantAnalysis)ÚDummyClassifier)ÚHistGradientBoostingClassifier)ÚFitFailedWarning)Úenable_halving_search_cv)ÚTfidfVectorizer)ÚSimpleImputer)ÚLinearRegressionÚLogisticRegressionÚRidgeÚSGDClassifier)Úaccuracy_scoreÚconfusion_matrixÚf1_scoreÚmake_scorerÚr2_scoreÚrecall_scoreÚroc_auc_score)Úeuclidean_distances)ÚGridSearchCVÚ
GroupKFoldÚGroupShuffleSplitÚHalvingGridSearchCVÚHalvingRandomSearchCVÚKFoldÚLeaveOneGroupOutÚLeavePGroupsOutÚParameterGridÚParameterSamplerÚRandomizedSearchCVÚStratifiedKFoldÚStratifiedShuffleSplitÚtrain_test_split)ÚBaseSearchCVÚ"_yield_masked_array_for_each_param)ÚOneTimeSplitter)ÚComplementNB)ÚKernelDensityÚKNeighborsClassifierÚLocalOutlierFactor)ÚPipelineÚmake_pipeline)ÚOneHotEncoderÚOrdinalEncoderÚSplineTransformerÚStandardScaler)ÚSVCÚ	LinearSVC)ÚConsumingScorerÚ	_RegistryÚcheck_recorded_metadata)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Ú)yield_namespace_device_dtype_combinations)ÚCheckingClassifierÚMockDataFrame)
ÚMinimalClassifierÚMinimalRegressorÚMinimalTransformerÚ_array_api_for_testsÚassert_allcloseÚassert_allclose_dense_sparseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚset_random_state)Ú_enforce_estimator_tags_y)ÚCSR_CONTAINERS)Ú_num_samplesc                   óR   — 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y)ÚMockClassifierz8Dummy classifier to test the parameter search algorithmsc                 ó   — || _         y ©N©Ú	foo_param)Úselfrg   s     út/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/model_selection/tests/test_search.pyÚ__init__zMockClassifier.__init__w   ó	   € Ø"ˆ�ó    c                 ól   — t        |«      t        |«      k(  sJ ‚t        j                  |«      | _        | S re   )ÚlenÚnpÚuniqueÚclasses_©rh   ÚXÚYs      ri   ÚfitzMockClassifier.fitz   s,   € Ü�1‹vœ˜Q›ÒÐÐÜŸ	™	 !›ˆŒØˆrl   c                 ó    — |j                   d   S ©Nr   ©Úshape)rh   ÚTs     ri   ÚpredictzMockClassifier.predict   s   € Ø�w‰w�q‰zÐrl   c                 ó    — || j                   z   S re   rf   ©rh   rs   s     ri   Ú	transformzMockClassifier.transform‚   ó   € Ø�4—>‘>Ñ!Ð!rl   c                 ó    — || j                   z
  S re   rf   r}   s     ri   Úinverse_transformz MockClassifier.inverse_transform…   r   rl   Nc                 ó0   — | j                   dkD  rd}|S d}|S )Né   ç      ð?ç        rf   )rh   rs   rt   Úscores       ri   r†   zMockClassifier.scoreŒ   s&   € Ø�>‰>˜AÒØˆEð ˆð ˆEØˆrl   c                 ó   — d| j                   iS ©Nrg   rf   )rh   Údeeps     ri   Ú
get_paramszMockClassifier.get_params“   s   € Ø˜TŸ^™^Ð,Ð,rl   c                 ó   — |d   | _         | S rˆ   rf   )rh   Úparamss     ri   Ú
set_paramszMockClassifier.set_params–   s   € Ø Ñ,ˆŒØˆrl   )r   ©NN©F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rj   ru   r{   r~   r�   Úpredict_probaÚpredict_log_probaÚdecision_functionr†   rŠ   r�   © rl   ri   rc   rc   t   s@   „ ÙBó#òò
ò"ò"ð €MØÐØÐóó-órl   rc   c                   ó    — e Zd ZdZed„ «       Zy)ÚLinearSVCNoScorez0A LinearSVC classifier that has no score method.c                 ó   — t         ‚re   )ÚAttributeError©rh   s    ri   r†   zLinearSVCNoScore.scorež   s   € äÐrl   N)r�   r‘   r’   r“   Úpropertyr†   r—   rl   ri   r™   r™   ›   s   „ Ù:àñó ñrl   r™   éÿÿÿÿéþÿÿÿrƒ   é   )rƒ   rƒ   r    r    c                 ót   — t        | «      t        t        | «      «      D �cg c]  }| |   ‘Œ	 c}k(  sJ ‚y c c}w re   )ÚlistÚrangern   )ÚgridÚis     ri   Úassert_grid_iter_equals_getitemr¦   §   s/   € Ü�‹:¬5´°T³Ó+;Ö< a˜$˜q›'Ò<Ò<Ð<Ñ<ùÒ<s   ¡5Ú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                 ól   — t        j                  ||¬«      5   | |«       d d d «       y # 1 sw Y   y xY w)N©Úmatch)ÚpytestÚraises)r§   ÚinputÚ
error_typeÚerror_messages       ri   Útest_validate_parameter_inputr´   «   s.   € ô 
�‰�z¨Ô	7ñ ÙˆeŒ÷÷ ñ ús   ˜	*ª3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        d	„ |D «       «      }|t        d
„ t        |d   |d   «      D «       «      k(  rŒ;J ‚ t        |«       t        i «      }t	        |«      dk(  sJ ‚t        |«      i gk(  sJ ‚t        |«       t        j                  t        «      5  |d    d d d «       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        |«       y # 1 sw Y   ŒTxY w)Nr«   ©rƒ   r    é   r·   é   r    )ÚhamÚspamÚeggs©r«   Úbaré   c           	   3   ól   K  — | ],  }t        t        t        |j                  «       «      Ž «      –— Œ. y ­wre   )Útupler   ÚsortedÚitems)Ú.0Úps     ri   ú	<genexpr>z&test_parameter_grid.<locals>.<genexpr>Î   s%   è ø€ ÒG¸A”Uœ5¤6¨!¯'©'«)Ó#4Ð6×7ÑGùs   ‚24c              3   ó.   K  — | ]  \  }}d |d|f–— Œ y­w)r½   r«   Nr—   )rÃ   ÚxÚys      ri   rÅ   z&test_parameter_grid.<locals>.<genexpr>Ï   s"   è ø€ ò 
Ù%) Q¨ˆU�A�u˜aÔ ñ
ùs   ‚r½   rƒ   ÚCr¨   ç      à?)r8   Ú
isinstancer   r   rn   r¦   r£   Úsetr   r¢   r¯   r°   Ú
IndexError)Úparams1Úgrid1Úparams2Úgrid2r¥   ÚpointsÚemptyÚ	has_emptys           ri   Útest_parameter_gridrÕ   ¾   s�  € à’iÐ €GÜ˜'Ó"€EÜ�eœXÔ&Ð&Ð&Ü�eœUÔ#Ð#Ð#Üˆu‹:˜Š?Ðˆ?Ü# EÔ*à˜!�fÒ%<Ñ=€GÜ˜'Ó"€EÜˆu‹:˜Š?Ðˆ?ô �1‹Xò 
ˆäÑGÀÔGÓGˆØœñ 
Ü-4°W¸U±^ÀWÈUÁ^Ó-Tô
ó 
ó 
ð 	
ð 
ð
ô $ EÔ*ô ˜"Ó€EÜˆu‹:˜Š?Ðˆ?Ü�‹;˜2˜$ÒÐÐÜ# EÔ*Ü	�‰”zÓ	"ñ ØˆaŠ÷ô   a¨ W˜~¨r°C¸#¸°<Ð@ÓA€IÜˆy‹>˜QÒÐÐÜ�	‹?  Q˜x¨#¨r¨°B¸¸c¸
ÐCÒCÐCÐCÜ# IÕ.÷ð ús   ÄE2Å2E;c                  óž  — t        «       } t        | dg d¢idd¬«      }t        j                  }t	        «       t        _        |j                  t        t        «       |t        _        |j                  j                  dk(  sJ ‚t        |j                  d   j                  g d¢«       |j                  t        t        «       |j                  t        «       |j                  t        «       |j!                  t        «       d|_        t%        j&                  t(        «      5  |j                  t        t        «       d d d «       y # 1 sw Y   y xY w)Nrg   r¶   r    r·   ©ÚcvÚverboseÚparam_foo_paramÚsklearn)rc   r0   ÚsysÚstdoutr   ru   rs   rÈ   Úbest_estimator_rg   r]   Úcv_results_Údatar†   r”   r–   r~   Úscoringr¯   r°   Ú
ValueError)ÚclfÚgrid_searchÚ
old_stdouts      ri   Útest_grid_searchræ   â   sñ   € ä
Ó
€CÜ˜s [²)Ð$<ÀÈAÔN€Kä—‘€JÜ“„C„JØ‡O�O”A”qÔØ„C„JØ×&Ñ&×0Ñ0°AÒ5Ð5Ð5ä�{×.Ñ.Ð/@ÑA×FÑFÊ	ÔRð ×Ñ”aœÔØ×ÑœaÔ Ø×!Ñ!¤!Ô$Ø×Ñœ!Ôð $€KÔÜ	�‰”zÓ	"ñ Ø�‰œœ1Ô÷÷ ñ ús   ÄEÅEc                  óþ  — t        dt        «       fg«      } dt        «       t        «       gi}t        | |d¬«      }|j	                  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 ‚y )NÚ	regressorr    ©rØ   Úparam_regressorr   rƒ   Úcoef_)rE   r$   r&   r0   ru   rs   rÈ   rß   rË   ÚhasattrrÞ   )ÚpipeÚ
param_gridrä   Úregressor_resultss       ri   Útest_grid_search_pipeline_stepsrð   û   s  € ä�kÔ#3Ó#5Ð6Ð7Ó8€DØÔ 0Ó 2´E³GÐ<Ð=€JÜ˜t Z°AÔ6€KØ‡O�O”A”qÔØ#×/Ñ/Ð0AÑBÐÜÐ'¨Ñ*Ô,<Ô=Ð=Ð=ÜÐ'¨Ñ*¬EÔ2Ð2Ð2ÜÐ(¨Ñ+¨WÔ5Ð5Ð5ÜÐ(¨Ñ+¨WÔ5Ð5Ð5Ø˜QÑ {×'BÑ'BÑBÐBÐBØ˜QÑ {×'BÑ'BÑBÐBÐBä�z +Ñ.¨qÑ1°7Ô;Ð;Ð;Ü�z +Ñ.¨qÑ1°7Ô;Ð;Ð;Ð;rl   ÚSearchCVc           	      óÌ  — t        j                  d«      j                  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  |j                  ||t        j                  d«      ¬«       d d d «       d}t        j                  t        |¬«      5  |j                  ||t        j                  d«      t        j                  d«      ¬«       d d d «       |j                  ||t        j                  d«      t        j                  d«      ¬«       y # 1 sw Y   Œ¦xY w# 1 sw Y   ŒQxY w)Néd   r¨   r   é   rƒ   rº   r»   )Úexpected_fit_paramsrg   r¶   r    Úraise©rØ   Úerror_scorez0Expected fit parameter\(s\) \['eggs'\] not seen.r­   )rº   z)Fit parameter spam has length 1; expected)rº   r»   )ro   ÚarangeÚreshapeÚarrayrS   r¯   r°   ÚAssertionErrorru   ÚonesÚzeros)rñ   rs   rÈ   rã   ÚsearcherÚerr_msgs         ri   Útest_SearchCV_with_fit_paramsr    s  € ä
�	‰	�#‹×Ñ˜r 2Ó&€AÜ
�‰�!��q‘˜A˜3 ™7Ñ"Ó#€AÜ
°&¸&Ð1AÔ
B€CÙ˜˜kª9Ð5¸!ÈÔQ€Hð B€GÜ	�‰”~¨WÔ	5ñ -Ø�‰�Q˜¤§¡¨£ˆÔ,÷-ð :€GÜ	�‰”~¨WÔ	5ñ ?Ø�‰�Q˜¤§¡¨£
´·±¸"³ˆÔ>÷?à‡L�L��AœBŸG™G B›K¬b¯h©h°r«l€LÕ;÷-ð -ú÷?ð ?ús   Â(EÃ<EÅEÅE#c                  ó
  — t        d¬«      } t        dd¬«      \  }}g d¢}t        d¬«      }t        | d|id¬«      }|j	                  ||«       t        |d|id¬«      }|j	                  ||«       |j
                  |j
                  k(  sJ ‚|j                  ||«      |j                  ||«      k(  sJ ‚t        |d|i«      }t        j                  t        d	¬
«      5  |j	                  dgg«       d d d «       y # 1 sw Y   y xY w)Nr   ©Úrandom_stater    ©r  Úcenters©çš™™™™™¹?rƒ   r¨   rÉ   Úaccuracy©rá   z
no scoringr­   rƒ   )
rL   r   r™   r0   ru   Úbest_params_r†   r¯   r°   Ú	TypeError)rã   rs   rÈ   ÚCsÚclf_no_scorerä   Úgrid_search_no_scores          ri   Útest_grid_search_no_scorer     sû   € ä
 Ô
#€CÜ 1¨aÔ0�D€A€qÚ	€BÜ#°Ô3€LÜ˜s S¨" I°zÔB€KØ‡O�O�A�qÔä'¨°s¸B°iÈÔTÐà×Ñ˜Q Ô"ð  ×,Ñ,°×0HÑ0HÒHÐHÐHà×Ñ˜Q Ó"Ð&:×&@Ñ&@ÀÀAÓ&FÒFÐFÐFô (¨°s¸B°iÓ@ÐÜ	�‰”y¨Ô	5ñ (Ø× Ñ  1 # Ô'÷(÷ (ñ (ús   ÃC9Ã9Dc                  ó4  — t        dddd¬«      \  } }t        d¬«      }ddgi}t        ||d ¬	«      j                  | |«      }t        ||d
¬	«      j                  | |«      }t        t	        «       |d¬	«      j                  | |«      }t        ||d¬	«      j                  | |«      }|j                  | |«      }|j                  | |«      }	|j                  | |«      }
|j                  | |«      }|dk  sJ ‚|	dk  sJ ‚||	k7  sJ ‚t        |	|«       t        ||
«       y )Nró   r    çš™™™™™É?r   ©Ú	n_samplesÚ	n_classesÚflip_yr  r  rÉ   r  r
  r	  Úroc_aucr„   )r   rL   r0   ru   r™   r†   r[   )rs   rÈ   rã   r¤   Úsearch_no_scoringÚsearch_accuracyÚsearch_no_score_method_aucÚ
search_aucÚscore_no_scoringÚscore_accuracyÚscore_no_score_aucÚ	score_aucs               ri   Útest_grid_search_score_methodr   8  s.  € Ü¨¸À#ÐTUÔV�D€A€qÜ
 Ô
#€CØ�#�ˆ<€Dä$ S¨$¸Ô=×AÑAÀ!ÀQÓGÐÜ" 3¨°jÔA×EÑEÀaÈÓK€OÜ!-ÜÓ˜D¨)ô"ç	�cˆ!ˆQƒið ô ˜c 4°Ô;×?Ñ?ÀÀ1ÓE€Jð )×.Ñ.¨q°!Ó4ÐØ$×*Ñ*¨1¨aÓ0€NØ3×9Ñ9¸!¸QÓ?ÐØ× Ñ   AÓ&€Ið �sŠ?Ðˆ?Ø˜CÒÐÐØ˜Ò&Ð&Ð&ä˜Ð(8Ô9Ü˜	Ð#5Õ6rl   c                  óN  — t         j                  j                  d«      } t        ddd¬«      \  }}| j	                  ddd«      }t        d¬«      }ddgi}t        «       t        d«      t        d¬	«      t        «       g}d
}|D ]Z  }t        |||¬«      }	t        j                  t        |¬«      5  |	j                  ||«       d d d «       |	j                  |||¬«       Œ\ t        «       t!        «       g}
|
D ]"  }t        |||¬«      }	|	j                  ||«       Œ$ y # 1 sw Y   Œ[xY w)Nr   é   r    )r  r  r  r·   r  rÉ   rƒ   ©Ún_splitsz*The 'groups' parameter should not be None.ré   r­   ©Úgroups)ro   ÚrandomÚRandomStater   r   rL   r6   r7   r1   r2   r0   r¯   r°   râ   ru   r;   r<   )Úrngrs   rÈ   r&  rã   r¤   Ú	group_cvsÚ	error_msgrØ   ÚgsÚnon_group_cvss              ri   Útest_grid_search_groupsr.  T  s  € ô �)‰)×
Ñ
 Ó
"€Cä¨°qÀqÔI�D€A€qØ�[‰[˜˜A˜rÓ"€Fä
 Ô
#€CØ�!�ˆ:€Dô 	ÓÜ˜ÓÜ˜AÔÜÓð	€Ið =€IØò $ˆÜ˜#˜t¨Ô+ˆÜ�]‰]œ:¨YÔ7ñ 	Ø�F‰F�1�aŒL÷	à
�‰ˆq�!˜FˆÕ#ð	$ô %Ó&Ô(>Ó(@ÐA€MØò ˆÜ˜#˜t¨Ô+ˆà
�‰ˆq�!�ñ÷	ð 	ús   Â.DÄD$	c                  ón  — t        j                  d«      j                  dd«      } t        j                  dgdz  dgdz  z   «      }g d¢}t	        t        d¬«      d|i«      }|j                  | |«       t        |j                  j                  |j                  «       t	        t        «       d	d
dgi«      }|j                  | |«       t        |d«      rJ ‚t	        t        d¬«      d|i«      }t        |d«      rJ ‚t	        t        d¬«      d|id¬«      }|j                  | |«       t        |d«      rJ ‚y )Nró   r¨   r   rô   rƒ   r  r  rÉ   Úalphar„   ç       @rq   F©Úrefit)ro   rù   rú   rû   r0   rL   ru   r]   rÞ   rq   r&   rì   )rs   rÈ   r  rä   s       ri   Útest_classes__propertyr4  s  s  € ä
�	‰	�#‹×Ñ˜r 2Ó&€AÜ
�‰�!��q‘˜A˜3 ™7Ñ"Ó#€AÚ	€Bäœy°aÔ8¸3À¸)ÓD€KØ‡O�O�A�qÔÜ�{×2Ñ2×;Ñ;¸[×=QÑ=QÔRô œu›w¨°3¸°*Ð(=Ó>€KØ‡O�O�A�qÔÜ�{ JÔ/Ð/Ð/ô œy°aÔ8¸3À¸)ÓD€KÜ�{ JÔ/Ð/Ð/ô œy°aÔ8¸3À¸)È5ÔQ€KØ‡O�O�A�qÔÜ�{ JÔ/Ð/Ð/Ð/rl   c                  óþ   — t        «       } t        | ddgid¬«      }|j                  t        t        «       t        |d«      sJ ‚t        | ddgidd¬«      }|j                  t        t        «       t        |d«      sJ ‚y )Nrg   rƒ   r    ré   rß   r   )rª   rØ   )rc   r0   ru   rs   rÈ   rì   r:   )rã   rä   Úrandom_searchs      ri   Útest_trivial_cv_results_attrr7  Œ  st   € ä
Ó
€CÜ˜s [°1°#Ð$6¸1Ô=€KØ‡O�O”A”qÔÜ�; Ô.Ð.Ð.ä& s¨[¸1¸#Ð,>ÀqÈQÔO€MØ×Ñ”aœÔÜ�= -Ô0Ð0Ñ0rl   c            
      óÞ  — t        «       } d ddgfD ]ë  }t        | dg d¢idd¬«      }|j                  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 «       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v rŒ‘J ‚ Œí d}dD ]P  }t        j                  t        |¬«      5  t        | i |dddœ¬«      j                  t        t        «       d d d «       ŒR y # 1 sw Y   Œ®xY w# 1 sw Y   ŒixY w)Nr	  Ú	precisionrg   r¶   Fr    ©r3  rØ   rÞ   Úbest_index_r  )r{   r”   r•   r~   r�   zhas no attribute 'ú'z`refit=False`. z9 is available only after refitting on the best parametersr­   zIFor multi-metric scoring, the parameter refit must be set to a scorer key)TÚrecallr	  )ÚaccÚprec)r3  rá   )rc   r0   ru   rs   rÈ   rì   r¯   r°   r›   ÚgetattrrË   ÚvalueÚ	__cause__Ústrrâ   )	rã   rá   rä   Úfn_nameÚ	outer_msgÚ	inner_msgÚ	exec_infor+  r3  s	            ri   Útest_no_refitrH  ˜  s}  € ä
Ó
€CØ˜: {Ð3Ð4ò ?ˆÜ" 3¨²iÐ(@ÈÐRSÔTˆØ�‰œœ1Ôä˜Ð%6Ô7Ü˜ ]Ô3Ü˜ ^Ô4ð	
ð5ð
ò 	?ˆGð -¨W¨I°QÐ7ˆIà! ' ð +3ð 3ð ô —‘œ~°YÔ?ð 1À9Ø-”˜ WÓ-¬aÔ0÷1ô ˜iŸo™o×7Ñ7¼ÔHÐHÐHØ¤ I§O¡O×$=Ñ$=Ó >Ò>Ð>Ð>ñ!	?ð?ð> 	Tð ð .ò ˆÜ�]‰]œ:¨YÔ7ñ 	ÜØ�R˜u°jÈ+Ñ.Vôç‰c”!”QŒi÷	ð 	ñ÷1ð 1ú÷	ð 	ús   ÂEÄ!+E#ÅE Å#E,	c                  óà   — t        ddd¬«      \  } }t        «       }t        |dddgi«      }t        j                  t
        «      5  |j                  | d d |«       d d d «       y # 1 sw Y   y xY w)	NéÈ   ró   r   ©r  Ú
n_featuresr  rÉ   r  r„   é´   )r   rL   r0   r¯   r°   râ   ru   )ÚX_Úy_rã   rØ   s       ri   Útest_grid_search_errorrP  Ã  se   € ä ¨3¸3ÈQÔO�F€Bˆä
‹+€CÜ	�c˜C # s Ð,Ó	-€BÜ	�‰”zÓ	"ñ Ø
�‰ˆr�$�3ˆx˜Ô÷÷ ñ ús   ÁA$Á$A-c                  ó   — t        ddd¬«      \  } }dgdgdgdœ}t        d	¬
«      }t        ||«      }|j                  | |«       t        ddd¬«      }|j                  | |«       t	        |j
                  |j                  j
                  «       y )NrJ  ró   r   rK  r„   Úrbfr  )rÉ   ÚkernelÚgammaÚauto©rT  )r   rK   r0   ru   r]   Ú
dual_coef_rÞ   )rN  rO  Ú
param_dictrã   rØ   s        ri   Útest_grid_search_one_grid_pointrY  Í  s~   € Ü ¨3¸3ÈQÔO�F€BˆØ�u¨¨¸3¸%Ñ@€Jä
�FÔ
€CÜ	�c˜:Ó	&€BØ‡F�Fˆ2ˆr„Nä
�˜E¨Ô
-€CØ‡G�GˆB�„Oä�s—~‘~ r×'9Ñ'9×'DÑ'DÕErl   c                  óº   — t        «       } d }t        | dt        dd«      id¬«      }|j                  t        t
        «       |j                  j                  dk(  sJ ‚y )Nrg   rƒ   r¸   r    ré   )rc   r0   r£   ru   rs   rÈ   rÞ   rg   )rã   rä   s     ri   Ú/test_grid_search_when_param_grid_includes_ranger[  Û  sP   € ä
Ó
€CØ€KÜ˜s [´%¸¸1³+Ð$>À1ÔE€KØ‡O�O”A”qÔØ×&Ñ&×0Ñ0°AÒ5Ð5Ñ5rl   c                  ó°  — t        ddd¬«      \  } }ddi}t        d¬«      }t        j                  d	«      }t	        ||«      }t        j                  t        |¬
«      5  |j                  | |«       d d d «       dg i}t        «       }t        j                  d«      }t	        ||«      }t        j                  t        |¬
«      5  |j                  | |«       d d d «       ddi}t        d¬«      }t        j                  d«      }t	        ||«      }t        j                  t        |¬
«      5  |j                  | |«       d d d «       dt        j                  d«      i}t        «       }t	        ||«      }t        j                  t        «      5  |j                  | |«       d d d «       y # 1 sw Y   �Œ8xY w# 1 sw Y   ŒßxY w# 1 sw Y   Œ„xY w# 1 sw Y   y xY w)Nr¨   rô   r   rK  rÉ   rƒ   rU  rV  z£Parameter grid for parameter 'C' needs to be a list or a numpy array, but got 1 (of type int) instead. Single values need to be wrapped in a list with one element.r­   zIParameter grid for parameter 'C' need to be a non-empty sequence, got: []z1,2,3z©Parameter grid for parameter 'C' needs to be a list or a numpy array, but got '1,2,3' (of type str) instead. Single values need to be wrapped in a list with one element.)r·   r    )r   rK   ÚreÚescaper0   r¯   r°   r  ru   râ   ro   rý   )rs   rÈ   rX  rã   r+  Úsearchs         ri   Útest_grid_search_bad_param_gridr`  ä  sž  € Ü¨¸ÈÔJ�D€A€qØ�q�€JÜ
�FÔ
€CÜ—	‘	ð	@ó€Iô
 ˜#˜zÓ*€FÜ	�‰”y¨	Ô	2ñ Ø�
‰
�1�aÔ÷ð �r�€JÜ
‹%€CÜ—	‘	ØSó€Iô ˜#˜zÓ*€FÜ	�‰”z¨Ô	3ñ Ø�
‰
�1�aÔ÷ð �w�€JÜ
�FÔ
€CÜ—	‘	ð	.ó€Iô
 ˜#˜zÓ*€FÜ	�‰”y¨	Ô	2ñ Ø�
‰
�1�aÔ÷ð ”r—w‘w˜v“Ð'€JÜ
‹%€CÜ˜#˜zÓ*€FÜ	�‰”zÓ	"ñ Ø�
‰
�1�aÔ÷ð ÷5ñ ú÷ð ú÷ð ú÷ð ús0   ÁF'ÃF4Ä*G ÆGÆ'F1Æ4F=Ç G	ÇGÚcsr_containerc                 ó
  — t        ddd¬«      \  }}t        «       }t        |dddgi«      }|j                  |d d |d d «       |j	                  |dd  «      }|j
                  j                  } | |«      }t        «       }t        |dddgi«      }|j                  |d d j                  «       |d d «       |j	                  |dd  «      }|j
                  j                  }t        j                  ||k(  «      d	k\  sJ ‚||k(  sJ ‚y )
NrJ  ró   r   rK  rÉ   r  r„   rM  gÍÌÌÌÌÌì?)
r   rL   r0   ru   r{   rÞ   rÉ   Útocooro   Úmean)	ra  rN  rO  rã   rØ   Úy_predrÉ   Úy_pred2ÚC2s	            ri   Útest_grid_search_sparserh    s  € ô !¨3¸3ÈQÔO�F€Bˆä
‹+€CÜ	�c˜C # s Ð,Ó	-€BØ‡F�Fˆ2ˆdˆsˆ8�R˜˜�XÔØ�Z‰Z˜˜3˜4˜Ó!€FØ
×Ñ×Ñ€Aá	�rÓ	€BÜ
‹+€CÜ	�c˜C # s Ð,Ó	-€BØ‡F�Fˆ2ˆdˆsˆ8�>‰>Ó˜R  ˜XÔ&Ø�j‰j˜˜C˜D˜Ó"€GØ	×	Ñ	×	Ñ	€Bä�7‰7�6˜WÑ$Ó%¨Ò,Ð,Ð,Ø�Š7€N‰7rl   c                 óÂ  — t        ddd¬«      \  }}t        «       }t        |dddgid¬	«      }|j                  |d d
 |d d
 «       |j	                  |d
d  «      }|j
                  j                  } | |«      }t        «       }t        |dddgid¬	«      }|j                  |d d
 |d d
 «       |j	                  |d
d  «      }|j
                  j                  }t        ||«       ||k(  sJ ‚d„ }	t        |	d¬«      }
t        |dddgi|
¬	«      }|j                  |d d
 |d d
 «       |j	                  |d
d  «      }|j
                  j                  }||k(  sJ ‚t        ||«       y )NrJ  ró   r   rK  rÉ   r  r„   Úf1r
  rM  c                 ó   — t        | |«       S re   )r*   )Úy_true_Úy_pred_s     ri   Úf1_lossz0test_grid_search_sparse_scoring.<locals>.f1_loss:  s   € Ü˜ 'Ó*Ð*Ð*rl   F)Úgreater_is_better)	r   rL   r0   ru   r{   rÞ   rÉ   r]   r+   )ra  rN  rO  rã   rØ   re  rÉ   rf  rg  rn  ÚF1LossÚy_pred3ÚC3s                ri   Útest_grid_search_sparse_scoringrs  "  sk  € ä ¨3¸3ÈQÔO�F€Bˆä
‹+€CÜ	�c˜C # s Ð,°dÔ	;€BØ‡F�Fˆ2ˆdˆsˆ8�R˜˜�XÔØ�Z‰Z˜˜3˜4˜Ó!€FØ
×Ñ×Ñ€Aá	�rÓ	€BÜ
‹+€CÜ	�c˜C # s Ð,°dÔ	;€BØ‡F�Fˆ2ˆdˆsˆ8�R˜˜�XÔØ�j‰j˜˜C˜D˜Ó"€GØ	×	Ñ	×	Ñ	€Bä�v˜wÔ'Ø�Š7€Nˆ7ò+ô ˜°EÔ:€FÜ	�c˜C # s Ð,°fÔ	=€BØ‡F�Fˆ2ˆdˆsˆ8�R˜˜�XÔØ�j‰j˜˜C˜D˜Ó"€GØ	×	Ñ	×	Ñ	€Bà�Š7€Nˆ7Ü�v˜wÕ'rl   c                  óH  — t        ddd¬«      \  } }t        j                  | d d | d d j                  «      }|d d }t	        d¬«      }t        |dd	d
gi«      }|j                  ||«       |j                  dk\  sJ ‚t        j                  | dd  | d d j                  «      }|dd  }|j                  |«      }t        j                  ||k(  «      dk\  sJ ‚t        j                  t        «      5  |j                  |j                  «       |«       d d d «       y # 1 sw Y   y xY w)NrJ  ró   r   rK  rM  Úprecomputed©rS  rÉ   r  r„   )r   ro   Údotrz   rK   r0   ru   Úbest_score_r{   rd  r¯   r°   râ   Útolist)	rN  rO  ÚK_trainÚy_trainrã   rØ   ÚK_testÚy_testre  s	            ri   Ú#test_grid_search_precomputed_kernelr~  G  s  € ô !¨3¸3ÈQÔO�F€Bˆô �f‰f�R˜˜�X˜r $ 3˜xŸz™zÓ*€GØ��#ˆh€Gä
�]Ô
#€CÜ	�c˜C # s Ð,Ó	-€BØ‡F�Fˆ7�GÔà�>‰>˜QÒÐÐô �V‰V�B�s�t�H˜b  #˜hŸj™jÓ)€FØ��ˆX€Fà�Z‰Z˜Ó€Fä�7‰7�6˜VÑ#Ó$¨Ò)Ð)Ð)ô 
�‰”zÓ	"ñ *Ø
�‰ˆw�~‰~Ó Ô)÷*÷ *ñ *ús   Ã.!DÄD!c                  ó  — t        j                  d«      } t        j                  d«      }t        d¬«      }t	        |dddgi«      }t        j                  t        «      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)N)r¨   é   )r¨   ru  rv  rÉ   r  r„   )	ro   rþ   rý   rK   r0   r¯   r°   râ   ru   )rz  r{  rã   rØ   s       ri   Ú3test_grid_search_precomputed_kernel_error_nonsquarer�  d  sm   € ô �h‰h�xÓ €GÜ�g‰g�e‹n€GÜ
�]Ô
#€CÜ	�c˜C # s Ð,Ó	-€BÜ	�‰”zÓ	"ñ !Ø
�‰ˆw˜Ô ÷!÷ !ñ !ús   Á A<Á<Bc                   ó$   — e Zd ZdZdd„Zd„ Zd„ Zy)ÚBrokenClassifierz*Broken classifier that cannot be fit twiceNc                 ó   — || _         y re   ©Ú	parameter©rh   r†  s     ri   rj   zBrokenClassifier.__init__r  rk   rl   c                 ó.   — t        | d«      rJ ‚d| _        y )NÚhas_been_fit_T)rì   r‰  ©rh   rs   rÈ   s      ri   ru   zBrokenClassifier.fitu  s   € Ü˜4 Ô1Ð1Ð1Ø!ˆÕrl   c                 óF   — t        j                  |j                  d   «      S rw   ©ro   rþ   ry   r}   s     ri   r{   zBrokenClassifier.predicty  ó   € Ü�x‰x˜Ÿ™ ™
Ó#Ð#rl   re   )r�   r‘   r’   r“   rj   ru   r{   r—   rl   ri   rƒ  rƒ  o  s   „ Ù4ó#ò"ó$rl   rƒ  z1ignore::sklearn.exceptions.UndefinedMetricWarningc                  óê   — t        j                  d«      j                  dd«      } t        j                  dgdz  dgdz  z   «      }t	        t        «       dddgigdd¬	«      }|j                  | |«       y )
Nró   r¨   r   rô   rƒ   r†  r9  T©rá   r3  )ro   rù   rú   rû   r0   rƒ  ru   )rs   rÈ   rã   s      ri   Ú
test_refitr�  }  so   € ô
 	�	‰	�#‹×Ñ˜r 2Ó&€AÜ
�‰�!��q‘˜A˜3 ™7Ñ"Ó#€Aä
ÜÓ˜k¨A¨q¨6Ð2Ð3¸[ÐPTô€Cð ‡G�GˆAˆq…Mrl   c                  óÈ   — d„ } t        ddd¬«      \  }}t        t        d¬«      dg d¢id	| ¬
«      }|j                  ||«       |j                  dk(  sJ ‚t        |d«      rJ ‚y)z^
    Test refit=callable, which adds flexibility in identifying the
    "best" estimator.
    c                 ó  — t        ddd¬«      \  }}t        t        d¬«      dg d¢idd	¬
«      }|j                  ||«       |j                  dk7  sJ ‚|j
                  j                  «       D ]  }|| v rŒJ ‚ | d   j                  «       S )z–
        A dummy function tests `refit=callable` interface.
        Return the index of a model that has the least
        `mean_test_score`.
        ró   r¸   é*   rK  r  rÉ   ©ç{®Gáz„?r  rƒ   r9  Tr�  r   Úmean_test_score)r   r0   rL   ru   r;  rß   ÚkeysÚargmin)Ú
cv_resultsrs   rÈ   rã   Úkeys        ri   Úrefit_callablez+test_refit_callable.<locals>.refit_callable‘  sš   € ô #¨S¸QÈRÔP‰ˆˆ1ÜÜ 2Ô&Ø’.Ð!ØØô	
ˆð 	�‰��1Œà�‰ !Ò#Ð#Ð#ð —?‘?×'Ñ'Ó)ò 	%ˆCØ˜*Ò$Ð$Ð$ð	%ð Ð+Ñ,×3Ñ3Ó5Ð5rl   ró   r¸   r“  rK  r  rÉ   r”  r9  r�  r   rx  N)r   r0   rL   ru   r;  rì   )r›  rs   rÈ   rã   s       ri   Útest_refit_callablerœ  ‹  so   € ò6ô2 ¨¸ÈÔL�D€A€qÜ
Ü˜rÔ"Ø	ŠnÐØØô	€Cð ‡G�GˆAˆq„Mà�?‰?˜aÒÐÐä�s˜MÔ*Ð*Ð*Ð*rl   c                  óê   — d„ } t        ddd¬«      \  }}t        t        d¬«      ddd	gid
| ¬«      }t        j                  t
        d¬«      5  |j                  ||«       ddd«       y# 1 sw Y   yxY w)zb
    Test implementation catches the errors when 'best_index_' returns an
    invalid result.
    c                  ó   — y)zT
        A dummy function tests when returned 'best_index_' is not integer.
        Nr—   ©r™  s    ri   Úrefit_callable_invalid_typezEtest_refit_callable_invalid_type.<locals>.refit_callable_invalid_type¾  s   € ð rl   ró   r¸   r“  rK  r  rÉ   r  rƒ   r9  r�  z&best_index_ returned is not an integerr­   N)r   r0   rL   r¯   r°   r  ru   )r   rs   rÈ   rã   s       ri   Ú test_refit_callable_invalid_typer¡  ¸  sq   € òô ¨¸ÈÔL�D€A€qä
Ü˜rÔ"Ø	ˆs�AˆhˆØØ)ô	€Cô 
�‰”yÐ(PÔ	Qñ Ø�‰��1Œ÷÷ ñ úó   ÁA)Á)A2Úout_bound_valueÚ	search_cvc                 óê   ‡ — ˆ fd„}t        ddd¬«      \  }} |t        d¬«      ddd	gid
|¬«      }t        j                  t        d¬«      5  |j                  ||«       ddd«       y# 1 sw Y   yxY w)zg
    Test implementation catches the errors when 'best_index_' returns an
    out of bound result.
    c                 ó   •— ‰S )zV
        A dummy function tests when returned 'best_index_' is out of bounds.
        r—   )r™  r£  s    €ri   Úrefit_callable_out_boundz?test_refit_callable_out_bound.<locals>.refit_callable_out_boundØ  s   ø€ ð Ðrl   ró   r¸   r“  rK  r  rÉ   r  rƒ   r9  r�  zbest_index_ index out of ranger­   N)r   rL   r¯   r°   rÍ   ru   )r£  r¤  r§  rs   rÈ   rã   s   `     ri   Útest_refit_callable_out_boundr¨  Ð  sr   ø€ ôô ¨¸ÈÔL�D€A€qá
Ü˜rÔ"Ø	ˆs�AˆhˆØØ&ô	€Cô 
�‰”zÐ)IÔ	Jñ Ø�‰��1Œ÷÷ ñ úr¢  c                  óì   — d„ } t        ddd¬«      \  }}t        t        «      ddœ}t        t	        d¬«      d	g d
¢i|| ¬«      }|j                  ||«       |j                  dk(  sJ ‚t        |d«      rJ ‚y)zC
    Test refit=callable in multiple metric evaluation setting
    c                 ó4   — d| v sJ ‚| d   j                  «       S )z•
        A dummy function tests `refit=callable` interface.
        Return the index of a model that has the least
        `mean_test_prec`.
        Úmean_test_prec)r˜  rŸ  s    ri   r›  z8test_refit_callable_multi_metric.<locals>.refit_callableï  s'   € ð   :Ñ-Ð-Ð-ØÐ*Ñ+×2Ñ2Ó4Ð4rl   ró   r¸   r“  rK  r9  )ÚAccuracyr?  r  rÉ   r”  r�  r   rx  N)r   r+   r(   r0   rL   ru   r;  rì   )r›  rs   rÈ   rá   rã   s        ri   Ú test_refit_callable_multi_metricr­  ê  s~   € ò
5ô ¨¸ÈÔL�D€A€qÜ&¤~Ó6ÀÑL€GÜ
Ü˜rÔ"Ø	ŠnÐØØô	€Cð ‡G�GˆAˆq„Mà�?‰?˜aÒÐÐä�s˜MÔ*Ð*Ð*Ð*rl   c                  óX  — t        j                  d«      j                  dddd«      } t        j                  d«      j                  ddd«      }d	„ }d
„ }t        ||dg¬«      }t	        |dg d¢i«      }|j                  | |«      j                  t        t        «       t        |d«      sJ ‚y )Né,  r¨   rô   r·   r    i  é   é   c                 ó&   — | j                   dd  dk(  S )Nrƒ   )rô   r·   r    rx   ©rÇ   s    ri   Úcheck_Xz#test_gridsearch_nd.<locals>.check_X  s   € Ø�w‰w�q�rˆ{˜iÑ'Ð'rl   c                 ó&   — | j                   dd  dk(  S )Nrƒ   )r°  r±  rx   r³  s    ri   Úcheck_yz#test_gridsearch_nd.<locals>.check_y  s   € Ø�w‰w�q�rˆ{˜gÑ%Ð%rl   ru   )r´  r¶  Úmethods_to_checkrg   r¶   rß   )
ro   rù   rú   rS   r0   ru   r†   rs   rÈ   rì   )ÚX_4dÚy_3dr´  r¶  rã   rä   s         ri   Útest_gridsearch_ndrº    s�   € ä�9‰9�^Ó$×,Ñ,¨R°°A°qÓ9€DÜ�9‰9�[Ó!×)Ñ)¨"¨a°Ó4€Dò(ò&ô ØØØ˜ô€Cô
 ˜s [²)Ð$<Ó=€KØ‡O�O�D˜$Ó×%Ñ%¤a¬Ô+Ü�; Ô.Ð.Ñ.rl   c                  ód  — t        j                  d«      j                  dd«      } t        j                  dgdz  dgdz  z   «      }t	        d„ dg¬«      }t        d	¬
«      }t        |dg d¢i|¬«      }|j                  | j                  «       |«      j                  | |«       t        |d«      sJ ‚y )Nró   r¨   r   rô   rƒ   c                 ó"   — t        | t        «      S re   ©rË   r¢   r³  s    ri   ú<lambda>z test_X_as_list.<locals>.<lambda>"  ó   € œ* Q¬Ó-€ rl   ru   )r´  r·  r·   r#  rg   r¶   ré   rß   ©ro   rù   rú   rû   rS   r5   r0   ru   ry  r†   rì   ©rs   rÈ   rã   rØ   rä   s        ri   Útest_X_as_listrÂ    s�   € ä
�	‰	�#‹×Ñ˜r 2Ó&€AÜ
�‰�!��q‘˜A˜3 ™7Ñ"Ó#€Aä
Ù-Ø˜ô€Cô 
˜Ô	€BÜ˜s [²)Ð$<ÀÔD€KØ‡O�O�A—H‘H“J Ó"×(Ñ(¨¨AÔ.Ü�; Ô.Ð.Ñ.rl   c                  ód  — t        j                  d«      j                  dd«      } t        j                  dgdz  dgdz  z   «      }t	        d„ dg¬«      }t        d	¬
«      }t        |dg d¢i|¬«      }|j                  | |j                  «       «      j                  | |«       t        |d«      sJ ‚y )Nró   r¨   r   rô   rƒ   c                 ó"   — t        | t        «      S re   r½  r³  s    ri   r¾  z test_y_as_list.<locals>.<lambda>1  r¿  rl   ru   )r¶  r·  r·   r#  rg   r¶   ré   rß   rÀ  rÁ  s        ri   Útest_y_as_listrÅ  +  s�   € ä
�	‰	�#‹×Ñ˜r 2Ó&€AÜ
�‰�!��q‘˜A˜3 ™7Ñ"Ó#€Aä
Ù-Ø˜ô€Cô 
˜Ô	€BÜ˜s [²)Ð$<ÀÔD€KØ‡O�O�A�q—x‘x“zÓ"×(Ñ(¨¨AÔ.Ü�; Ô.Ð.Ñ.rl   c                  ó  ‡‡— t         t         fg} 	 ddlm}m} | j	                  ||f«       t        j                  d«      j                  dd«      }t        j                  dgdz  dgdz  z   «      }| D ]}  \  ŠŠ ‰|«       ‰|«      }}ˆfd„}ˆfd„}t        ||¬	«      }	t        |	d
g d¢i«      }
|
j                  ||«      j                  ||«       |
j                  |«       t        |
d«      rŒ}J ‚ y # t
        $ r Y ŒÓw xY w)Nr   )Ú	DataFrameÚSeriesró   r¨   rô   rƒ   c                 ó   •— t        | ‰«      S re   ©rË   )rÇ   ÚInputFeatureTypes    €ri   Úcheck_dfz#test_pandas_input.<locals>.check_dfK  s   ø€ Ü˜aÐ!1Ó2Ð2rl   c                 ó   •— t        | ‰«      S re   rÊ  )rÇ   Ú
TargetTypes    €ri   Úcheck_seriesz'test_pandas_input.<locals>.check_seriesN  s   ø€ Ü˜a Ó,Ð,rl   )r´  r¶  rg   r¶   rß   )rT   ÚpandasrÇ  rÈ  ÚappendÚImportErrorro   rù   rú   rû   rS   r0   ru   r†   r{   rì   )ÚtypesrÇ  rÈ  rs   rÈ   ÚX_dfÚy_serrÌ  rÏ  rã   rä   rË  rÎ  s              @@ri   Útest_pandas_inputrÖ  :  s  ù€ äœ]Ð+Ð,€Eðß,à�‰�i Ð(Ô)ô 	�	‰	�#‹×Ñ˜r 2Ó&€AÜ
�‰�!��q‘˜A˜3 ™7Ñ"Ó#€Aà(-ò 3Ñ$Ð˜*á& qÓ)©:°a«=ˆeˆô	3ô	-ô !¨¸<ÔHˆä" 3¨²iÐ(@ÓAˆØ�‰˜˜eÓ$×*Ñ*¨4°Ô7Ø×Ñ˜DÔ!Ü�{ MÕ2Ð2Ð2ñ3øô ò Ùðús   ‘C4 Ã4	D Ã?D c                  óÔ  — t        dd¬«      \  } }t        ddd¬«      }ddg}d	D ]C  }t        |t        g d
¢¬«      ||¬«      }|j	                  | |«       |j
                  d   dk(  rŒCJ ‚ t        |t        g d
¢¬«      d¬«      }|j	                  | |«       |j
                  d   dk(  sJ ‚t        |t        g d
¢¬«      ¬«      }|j	                  | «       |j
                  d   dk(  sJ ‚y )Né2   r   ©r  r  r'  rƒ   )r  ÚinitÚn_initÚadjusted_rand_scoreÚfowlkes_mallows_score)rÜ  rÝ  )r    r·   r¸   )Ú
n_clusters)rî   rá   r3  rÞ  r·   ©rî   rá   )rî   r¸   )r   r   r0   Údictru   r  )rs   rÈ   Úkmrá   r3  rä   s         ri   Útest_unsupervised_grid_searchrâ  Y  s÷   € ä °Ô3�D€A€qÜ	˜Q X°aÔ	8€Bð %Ð&=Ð>€GØAò ;ˆÜ"Øœ4ª9Ô5¸wÈeô
ˆð 	�‰˜˜1Ôà×'Ñ'¨Ñ5¸Ó:Ð:Ð:ð;ô Ø
”t¢yÔ1Ð;Rô€Kð ‡O�O�A�qÔØ×#Ñ# LÑ1°QÒ6Ð6Ð6ô ˜r¬dºiÔ.HÔI€KØ‡O�O�AÔØ×#Ñ# LÑ1°QÒ6Ð6Ñ6rl   c                  óî   — d„ } t        ddddgddgddgg¬«      \  }}t        t        «       t        g d¢¬«      | ¬«      }|j	                  |«       |j
                  d	   dk(  sJ ‚|j                  d
k(  sJ ‚y )Nc                 ó(   — | j                   dk(  rdS dS )Nr  r“  r   ©Ú	bandwidth)Ú	estimatorrs   s     ri   Úcustom_scoringz2test_gridsearch_no_predict.<locals>.custom_scoringx  s   € Ø×(Ñ(¨CÒ/ˆrÐ6°QÐ6rl   r  rƒ   r   )Úcluster_stdr  r  r”  rå  rß  ræ  r“  )r   r0   rB   rà  ru   r  rx  )rè  rs   Ú_r_  s       ri   Útest_gridsearch_no_predictrë  u  s…   € ò7ô  #°AÀÀAÀÈÈAÈÐQRÐTUÐPVÐ?WÔX�D€A€qÜÜ‹Ü¢.Ô1Øô€Fð
 ‡J�Jˆq„MØ×Ñ˜{Ñ+¨sÒ2Ð2Ð2Ø×Ñ Ò#Ð#Ñ#rl   c                  óä  — ddgt        dd«      dœ} t        | dd¬«      }|D �cg c]  }|‘Œ }}t        |«      dk(  sJ ‚|D ]  }|d   d	v sJ ‚d|d
   cxk  rdk  rŒJ ‚ J ‚ d
g d¢i} t        | dd¬«      }|D �cg c]  }|‘Œ c}|D �cg c]  }|‘Œ c}k(  sJ ‚d
t        dd«      i} t        | dd¬«      }|D �cg c]  }|‘Œ c}|D �cg c]  }|‘Œ c}k(  sJ ‚y c c}w c c}w c c}w c c}w c c}w )NrR  Úlinearr   rƒ   )rS  rÉ   r¨   )Úparam_distributionsrª   r  rS  )rR  rí  rÉ   )r   rƒ   r    r·   r¸   rô   r¾   r°  é   é	   r¨   r·   )r   r9   rn   )rî  ÚsamplerrÇ   ÚsamplesÚsamples        ri   Útest_param_samplerrô  †  s2  € à&+¨XÐ%6¼WÀQÈ»]ÑKÐÜØ/¸Èô€Gð "Ö"�QŠqÐ"€GÐ"Üˆw‹<˜2ÒÐÐØò %ˆØ�hÑÐ#4Ñ4Ð4Ð4Ø�F˜3‘KÔ$ 1Ó$Ð$Ñ$Ð$Ð$ð%ð
 Ò BÐCÐÜØ/¸Èô€Gð Ö�!ŠAÒ¨wÖ#7¨!¢AÒ#7Ò7Ð7Ð7à¤¨¨1£Ð.ÐÜØ/¸Èô€Gð Ö�!ŠAÒ¨wÖ#7¨!¢AÒ#7Ò7Ð7Ñ7ùò# #ùò  ùÒ#7ùò  ùÒ#7s   ¤	CÁ:	CÂ		C#Â9	C(Ã	C-c                 ó°  ‡— | j                   Št        ˆfd„|D «       «      sJ ‚|D �ci c]  }|‰|   j                  j                  “Œ c}|k(  sJ ‚t	        ˆfd„|D «       «      rJ ‚t        ˆfd„|D «       «      sJ ‚| j
                  r| j                  j                  «       ndg}|D ]'  }‰d|z     j                  t        j                  k(  rŒ'J ‚ y c c}w )Nc              3   ól   •K  — | ]+  }t        ‰|   t        j                  j                  «      –— Œ- y ­wre   ©rË   ro   ÚmaÚMaskedArray)rÃ   Úparamr™  s     €ri   rÅ   z/check_cv_results_array_types.<locals>.<genexpr>¥  s'   øè ø€ ÒXÀEŒz˜* UÑ+¬R¯U©U×->Ñ->×?ÑXùó   ƒ14c              3   ól   •K  — | ]+  }t        ‰|   t        j                  j                  «      –— Œ- y ­wre   r÷  ©rÃ   rš  r™  s     €ri   rÅ   z/check_cv_results_array_types.<locals>.<genexpr>©  s&   øè ø€ ÒXÀc”:˜j¨™o¬r¯u©u×/@Ñ/@×AÑXùrû  c              3   ó€   •K  — | ]5  }|j                  d «      s"‰|   j                  t        j                  k(  –— Œ7 y­w)ÚrankN)Ú
startswithÚdtypero   Úfloat64rý  s     €ri   rÅ   z/check_cv_results_array_types.<locals>.<genexpr>ª  s8   øè ø€ ò àØ�~‰~˜fÔ%ð 	�3‰×Ñ¤§¡Õ+ñùs   ƒ;>r†   zrank_test_%s)
rß   Úallr  ÚkindÚanyÚmultimetric_Úscorer_r—  ro   Úint32)r_  Ú
param_keysÚ
score_keysÚexpected_cv_results_kindsrš  Úscorer_keysr™  s         @ri   Úcheck_cv_results_array_typesr     së   ø€ ð ×#Ñ#€JÜÓXÈZÔXÔXÐXÐXà3=öØ,/ˆˆZ˜‰_×"Ñ"×'Ñ'Ñ'òà	"ò#ð #ð #ô ÓXÈZÔXÔXÐXÐXÜó àôô ð ð ð ,2×+>Ò+>�&—.‘.×%Ñ%Ô'ÀWÀI€Kàò BˆØ˜.¨3Ñ.Ñ/×5Ñ5¼¿¹ÓAÐAÐAñBùòs   ¨!Cc                 óª   ‡ ‡— ||z   |z   }t        t        ‰ j                  «       «      t        |dz   «      «       t        ˆ ˆfd„||z   D «       «      sJ ‚y )N)rŒ   c              3   óD   •K  — | ]  }‰|   j                   ‰fk(  –— Œ y ­wre   rx   )rÃ   rš  r™  Ún_cands     €€ri   rÅ   z(check_cv_results_keys.<locals>.<genexpr>º  s"   øè ø€ ÒU°cˆz˜#‰×$Ñ$¨¨	Õ1ÑUùs   ƒ )r]   rÁ   r—  r  )r™  r	  r
  r  Ú
extra_keysÚall_keyss   `  `  ri   Úcheck_cv_results_keysr  ¶  sK   ù€ à˜JÑ&¨Ñ3€HÜ”v˜jŸo™oÓ/Ó0´&¸ÀKÑ9OÓ2PÔQÜÔU¸ZÈ*Ñ=TÔUÔUÐUÑUrl   c                  óš  ‡— t        ddd¬«      \  } }d}t        dgddgd	dg¬
«      t        dgddg¬«      g}d}d}|}t        t        «       d|d¬«      }|j	                  | |«       |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
                  Št        |«      D �	cg c]H  }	‰d   |	   dk(  r;‰d   j                  |	   xr' ‰d   j                  |	   xr ‰d   j                  |	    ‘ŒJ }
}	t        |
«      sJ ‚t        |
«      dk(  sJ ‚t        |«      D �	cg c]I  }	‰d   |	   dk(  r<‰d   j                  |	    xr' ‰d   j                  |	    xr ‰d   j                  |	   ‘ŒK }}	t        |«      sJ ‚t        |«      dk(  sJ ‚y c c}	w c c}	w )NrØ  r¸   r“  rK  r¾   rR  rƒ   r¨   r  ©rS  rÉ   rT  Úpolyr    ©rS  Ú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   óL   •K  — | ]  }|d k7  sŒ	t        ‰|   dk\  «      –— Œ y­w)r   r   N©r  ©rÃ   Úkr™  s     €ri   rÅ   z.test_grid_search_cv_results.<locals>.<genexpr>ê  s'   øè ø€ ÒR¨¸1Ð@QÓ;QŒC�
˜1‘ Ñ"×#ÑRùs   ƒ
$Ž$c              3   óR   •K  — | ]  }d |vr|dk7  rt        ‰|   dk  «      –— Œ  y­w)Útimer   rƒ   Nr/  r0  s     €ri   rÅ   z.test_grid_search_cv_results.<locals>.<genexpr>ë  s6   øè ø€ ò àØ˜‰?˜qÐ$5Ò5ô 	ˆJ�q‰M˜QÑ×ñùs   ƒ$'r¥   ÚfÚOr  r  r  r  )r   rà  r0   rK   ru   rß   r  r  r  r£   Úmaskrn   )rs   rÈ   Ún_grid_pointsrŒ   r	  r
  Ún_candidatesr_  r  r¥   Úpoly_resultsÚrbf_resultsr™  s               @ri   Útest_grid_search_cv_resultsr;  ½  ss  ø€ Ü¨¸ÈÔK�D€A€qà€Mäàðð �"ˆgØ˜�(ô	
ô 	àðð �q�6ô		
ð€Fð  L€Jð€Jð" !€Läœ#›% A°&ÈTÔR€FØ
‡J�Jˆq�!ÔØ×#Ñ#€JäˆzÐ+Ñ,°Ñ1Ô2Ð2Ð2ÛR¨ZÕRÐRÐRóàõð ð ð ØØØñ	!Ðô !Ø�
˜JÐ(Aôô ˜* j°*¸lÔKà×#Ñ#€Jô �|Ó$öð Ø�nÑ% aÑ(¨FÒ2ð �yÑ!×&Ñ& qÑ)ò 7Ø˜=Ñ)×.Ñ.¨qÑ1ò7à˜~Ñ.×3Ñ3°AÑ6Ð6ñ7ð€Lð ô ˆ|ÔÐÐÜˆ|Ó Ò!Ð!Ð!ô �|Ó$öð Ø�nÑ% aÑ(¨EÒ1ð ˜9Ñ%×*Ñ*¨1Ñ-Ð-ò 3Ø˜}Ñ-×2Ñ2°1Ñ5Ð5ò3à˜>Ñ*×/Ñ/°Ñ2ñ3ð€Kð ô ˆ{ÔÐÐÜˆ{Ó˜qÒ Ð Ñ ùò-ùòs   ÃAGÅAG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	                  | |«       |j
                  Š	dddddœ}t        ||||«       t        ‰	|||«       t        ˆ	fd„t        |«      D «       «      sJ ‚t        ˆ	fd„t        |«      D «       «      sJ ‚y )NrØ  r¸   r“  rK  é   rR  r¨   )Úscaler  r  r  r    r·   r  r  r  T)rª   rØ   rî  r-  r4  r¥   r5  c              3   óª   •K  — | ]J  }‰d    |   dk(  r=‰d   j                   |   xr' ‰d   j                   |   xr ‰d   j                   |    –— ŒL y­w)r  r  r  r  r  N©r6  ©rÃ   r¥   r™  s     €ri   rÅ   z0test_random_search_cv_results.<locals>.<genexpr>H  su   øè ø€ ò ð Ø�nÑ% aÑ(¨FÒ2ð �yÑ!×&Ñ& qÑ)ò 7Ø˜=Ñ)×.Ñ.¨qÑ1ò7à˜~Ñ.×3Ñ3°AÑ6Ð6ó7ñùs   ƒAAc              3   ó¬   •K  — | ]K  }‰d    |   dk(  r>‰d   j                   |    xr' ‰d   j                   |    xr ‰d   j                   |   –— ŒM y­w)r  rR  r  r  r  Nr@  rA  s     €ri   rÅ   z0test_random_search_cv_results.<locals>.<genexpr>Q  sx   øè ø€ ò ð Ø�nÑ% aÑ(¨EÒ1ð ˜9Ñ%×*Ñ*¨1Ñ-Ð-ò 3Ø˜}Ñ-×2Ñ2°1Ñ5Ð5ò3à˜>Ñ*×/Ñ/°Ñ2ó3ñùs   ƒAA)
r   r   r:   rK   ru   rß   r  r  r  r£   )
rs   rÈ   Ún_search_iterrŒ   r	  r
  r8  r_  r  r™  s
            @ri   Útest_random_search_cv_resultsrD    s  ø€ Ü¨¸ÈÔK�D€A€qà€Mð �7¤¨R¤¼5ÀsÔ;KÑLØ�8¨¨1 vÑ.ð€Fð L€Jð€Jð" !€LäÜ‹ØØØ"Øô€Fð ‡J�Jˆq�!ÔØ×#Ñ#€Jð ØØØñ	!Ðô !Ø�
˜JÐ(Aôô ˜* j°*¸lÔKÜó ô �|Ó$ôô ð ð ô ó ô �|Ó$ôô ð ñ rl   zSearchCV, specialized_paramsrî   rÉ   )rî  rª   c                 óÔ  — t        ddgddgddgddggdddd¬«      \  }}t        j                  |j                  d   t        ¬«      }d|t        j
                  |dk(  «      d   d d d…   <   d|t        j
                  |dk(  «      d   d d d…   <   || g| |gg}t        «       |d	d
œ} | di |¤|¤Ž}|j                  ||«       t        j                  t        |j                  «      D �cg c]  }|j                  d|z     d   ‘Œ c}«      }	|j                  d   d   }
|j                  d   d   }t        j                  t        |j                  «      D �cg c]  }|j                  d|z     d   ‘Œ c}«      }|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 ‚y c c}w c c}w )Nr   rƒ   r  FéP   )r  r  ré  Úshuffler  ©r  r    T)rç  rØ   r-  úsplit%d_test_scorer–  r'  zsplit%d_train_scorer  r(  r  gUUUUUUÕ?r—   )r   ro   rý   ry   ÚboolÚwhererK   ru   rû   r£   Ú	n_splits_rß   rY   r¯   Úapproxrd  Ústd)rñ   Úspecialized_paramsrs   rÈ   r6  rØ   Úcommon_paramsr_  ÚsÚtest_cv_scoresÚ	test_meanÚtest_stdÚtrain_cv_scoresÚ
train_meanÚ	train_stds                  ri   Útest_search_default_iidrX  \  sƒ  € ô Ø�Q�˜!˜Q˜ ! Q ¨!¨Q¨Ð0ØØØØô�D€A€qô �7‰7�1—7‘7˜1‘:¤TÔ*€DØ%&€DŒ�‰�!�q‘&Ó	˜!Ñ	™S˜q˜SÑ	!Ñ"Ø%&€DŒ�‰�!�q‘&Ó	˜!Ñ	™S˜q˜SÑ	!Ñ"ð �$�ˆ-˜4˜% ˜Ð	'€Bä"%£%¨rÈÑN€MÙÑ<˜Ð<Ð);Ñ<€FØ
‡J�Jˆq�!Ôä—X‘Xô ˜6×+Ñ+Ó,ö	
àð ×ÑÐ3°aÑ7Ñ8¸Ó;ò	
ó€Nð ×"Ñ"Ð#4Ñ5°aÑ8€IØ×!Ñ!Ð"2Ñ3°AÑ6€Hä—h‘hô ˜6×+Ñ+Ó,ö	
àð ×ÑÐ4°qÑ8Ñ9¸!Ó<ò	
ó€Oð ×#Ñ#Ð$6Ñ7¸Ñ:€JØ×"Ñ"Ð#4Ñ5°aÑ8€Ià×Ñ˜iÑ(¨Ñ+¨qÒ0Ð0Ð0ä�N Q¨	 NÔ3Ü�O a¨ VÔ,àœŸ™¤b§g¡g¨nÓ&=Ó>Ò>Ð>Ð>Ø”v—}‘}¤R§V¡V¨NÓ%;Ó<Ò<Ð<Ð<ð œŸ™ qÓ)Ò)Ð)Ð)ØœŸ™ aÓ(Ò(Ð(Ñ(ùò9	
ùò	
s   Ã*I ÅI%c                  óH  — 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 ]=  }t        t        «       |||d¬«      }|j                  | |«       |j                  |«       Œ? t        |Ž  y )NrØ  r¸   r“  rK  r·   rR  rƒ   r¨   r  r  r  r    r  ©r	  r=  r	  r=  F)rØ   rî   rá   r3  )
r   rà  r+   r(   r-   r0   rK   ru   rÑ  Ú*compare_cv_results_multimetric_with_single)rs   rÈ   r$  rŒ   Úgrid_searchesrá   rä   s          ri   Ú'test_grid_search_cv_results_multimetricr]  ›  sÌ   € Ü¨¸ÈÔK�D€A€qà€Häàðð �"ˆgØ˜�(ô	
ô 	àðð �q�6ô		
ð€Fð  €Mä ¤Ó0¼KÌÓ<UÑVØØðò 	*ˆô
 #Ü‹E�h¨6¸7È%ô
ˆð 	�‰˜˜1ÔØ×Ñ˜[Õ)ð	*ô /°Ò>rl   c                  óp  — t        ddd¬«      \  } }d}d}t        t        j                  ddd«      ¬	«      }d
D ]{  }g }dD ]W  }|rt	        |t
        «      rd}t        d¬«      }t        ||||||d¬«      }	|	j                  | |«       |j                  |	«       ŒY t        |Ž  t        |d   |d   |«       Œ} y )NrØ  r¸   r“  rK  r·   r=  éüÿÿÿrƒ   ©rÉ   ©TF)rZ  r	  r=  r	  r  r   )rª   rØ   rî  rá   r3  r  )r   rà  ro   ÚlogspacerË   rÀ   r%   r:   ru   rÑ  r[  Ú)compare_refit_methods_when_refit_with_acc)
rs   rÈ   r$  rC  rŒ   r3  Úrandom_searchesrá   rã   r6  s
             ri   Ú)test_random_search_cv_results_multimetricre  ¾  sÕ   € Ü¨¸ÈÔK�D€A€qà€HØ€Mä”B—K‘K  A qÓ)Ô*€FØò 
ˆØˆØEò 	2ˆGáœ G¬UÔ3Ø"�Ü$°"Ô5ˆCÜ.ØØ$ØØ$*ØØØôˆMð ×Ñ˜a Ô#Ø×"Ñ" =Õ1ð	2ô" 	3°OÑDÜ1Ø˜AÑ °Ñ 2°Eõ	
ñ)
rl   c                 ó  ‡— | j                   sJ ‚t        t        | j                  «      d«       | j                  Š|j                  j                  «       D ��ci c]  \  }}t        j                  dd|«      |“Œ }}}|j                  |j                  j                  «       D ��ci c]  \  }}t        j                  dd|«      |“Œ c}}«       t        ˆfd„dD «       «      sJ ‚t        j                  j                  ‰j                  «       D ��ci c]  \  }}|j                  d«      rŒ||“Œ c}}|j                  «       D ��ci c]  \  }}|j                  d«      rŒ||“Œ c}}«       yc c}}w c c}}w c c}}w c c}}w )	z€Compare multi-metric cv_results with the ensemble of multiple
    single metric cv_results from single metric grid/random searchrZ  z_score$Ú	_accuracyÚ_recallc              3   óT   •K  — | ]  }t        j                  ‰|   d k  «      –— Œ! y­w)rƒ   N)ro   r  )rÃ   r1  Úcv_results_multis     €ri   rÅ   z=compare_cv_results_multimetric_with_single.<locals>.<genexpr>ð  s-   øè ø€ ò 	
àô �F‰FÐ# AÑ&¨!Ñ+×,ñ	
ùs   ƒ%()r+  r,  r)  r*  Ú_timeN)r  r]   rÁ   r  rß   rÂ   r]  ÚsubÚupdater  ro   ÚtestingÚassert_equalÚendswith)Úsearch_multiÚ
search_accÚ
search_recr1  ÚvÚcv_results_acc_recrj  s         @ri   r[  r[  Þ  sX  ø€ ð ×$Ò$Ð$Ð$Ü”v˜l×2Ñ2Ó3Ð5KÔLà#×/Ñ/Ðà9C×9OÑ9O×9UÑ9UÓ9W÷Ù15°°AŒ�‰ˆy˜+ qÓ)¨1Ñ,ðÐñ ð ×ÑØ8B×8NÑ8N×8TÑ8TÓ8V×W±°°1Œ�‰�	˜9 aÓ	(¨!Ñ	+ÓWôô ó	
ðô	
ô
ð 
ð 
ô ‡J�J×ÑØ*×0Ñ0Ó2×N‘$�!�Q¸!¿*¹*ÀWÕ:MˆˆA‰ÓNØ,×2Ñ2Ó4×P‘$�!�Q¸A¿J¹JÀwÕ<OˆˆA‰ÓPõùó1ùó 	Xùó* 	OùÛPs$   Á"E.Â%"E4
ÄE:
Ä+E:
ÅF Å F c           	      óŽ  — |j                   |k(  sJ ‚|r| j                   dk(  sJ ‚| j                   rJ ‚yt        ddd¬«      \  }}dD ].  }t         t        | |«      |«       t        ||«      |«      «       Œ0 t        | j	                  ||«      |j	                  ||«      «       dD ]  }t        | |«      t        ||«      k(  rŒJ ‚ y)	zDCompare refit multi-metric search methods with single metric methodsr	  Nró   r¸   r“  rK  )r{   r”   r•   )r;  rx  r  )r3  r   r[   r@  r†   )rq  rr  r3  rs   rÈ   Úmethodrš  s          ri   rc  rc    sÝ   € à×Ñ˜uÒ$Ð$Ð$ÙØ×!Ñ! ZÒ/Ð/Ð/à×%Ò%Ð%Ð%Øä °ÀÔC�D€A€qØCò 
ˆÜØ)ŒG�L &Ó)¨!Ó,Ð.I¬g°jÀ&Ó.IÈ!Ó.Lõ	
ð
ô ˜×*Ñ*¨1¨aÓ0°*×2BÑ2BÀ1ÀaÓ2HÔIØ=ò FˆÜ�| SÓ)¬W°ZÀÓ-EÓEÐEÐEñFrl   Ú	max_depthrô   )rç  rî  ©rç  rî   c                 ó®  — t        ddd¬«      \  }}t        | «      } | j                  ||«       d| j                  j                  › d�}d}t        j                  t        |¬«      5 }| j                  |«       d d d «       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      k(  sJ ‚y # 1 sw Y   ŒTxY w)	Nró   r¸   r“  rK  r<  z"' has no attribute 'score_samples'z@'DecisionTreeClassifier' object has no attribute 'score_samples'r­   )r   r   ru   Ú	__class__r�   r¯   r°   r›   Úscore_samplesrË   rA  rB  rC  )r¤  rs   rÈ   rE  rF  rG  s         ri   Ú"test_search_cv_score_samples_errorr}    s»   € ô  °ÀÔC�D€A€qÜ�iÓ €IØ‡M�M�!�QÔð �I×'Ñ'×0Ñ0Ð1Ð1SÐT€IØR€Iä	�‰”~¨YÔ	7ð #¸9Ø×Ñ Ô"÷#ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ò6Ð6Ñ6÷#ð #ús   Á&CÃCc                  óº  — d„ } t        | «      }t        ddd¬«      \  }}t        j                  |«      }t	        t        «       dddgi¬«      }|j                  | ¬	«       t        j                  t        d
¬«      5  |j                  |||¬«       ddd«       |j                  |¬	«       t        j                  t        d
¬«      5  |j                  |||¬«       ddd«       |j                  t        |d¬«      d¬«       t        j                  t        d¬«      5  |j                  |||¬«       ddd«       y# 1 sw Y   ŒªxY w# 1 sw Y   ŒlxY w# 1 sw Y   yxY w)zhChecks that fitting with sample_weight raises a warning if the scorer does not
    support sample_weightc                  ó   — y)z9Fake scoring function that does not support sample_weightrÊ   r—   )Úy_truere  s     ri   Úfake_score_funcz>test_unsupported_sample_weight_scorer.<locals>.fake_score_func7  s   € àrl   r¨   r¸   r“  rK  rÉ   rƒ   ry  r
  zdoes not support sample_weightr­   ©Úsample_weightNr	  )Úfaker	  Fr�  z2The scoring fake=.* does not support sample_weight)r+   r   ro   Ú	ones_liker0   r%   r�   r¯   ÚwarnsÚUserWarningru   rà  )r�  Úfake_scorerrs   rÈ   Úswr¤  s         ri   Ú%test_unsupported_sample_weight_scorerrŠ  3  s>  € òô ˜oÓ.€Kä¨¸ÈÔK�D€A€qÜ	�‰�a‹€BÜÔ'9Ó';ÈÈqÐRTÈgÈÔW€Ià×Ñ ÐÔ1Ü	�‰”kÐ)IÔ	Jñ .Ø�‰�a˜¨"ˆÔ-÷.ð ×Ñ ÐÔ-Ü	�‰”kÐ)IÔ	Jñ .Ø�‰�a˜¨"ˆÔ-÷.ð ×ÑÜ˜+°
Ô;À5ð ô ô 
�‰ÜÐPô
ñ .ð 	�‰�a˜¨"ˆÔ-÷.ð .÷.ð .ú÷.ð .ú÷.ð .ús$   Á;D9ÃEÄEÄ9EÅEÅErç  )rƒ   r¨   ró   r0  )rƒ   r  r•  c                 ó"  — t        | «      }t        | «      }t        |d¬«       t        |d¬«       t        j                  j	                  d«      }d}d}d}||z  }|j                  ||dz  «      }|j                  d||¬«      }	|j                  dd	|¬«      }
t        j                  t        j                  |«      |«      }|}|	}|}t        t        «       j                  ||¬
«      «      }|j                  |¬«       |j                  |
d¬«      }|j                  |
¬«      }|j                  |
¬«      }t        t        «       j                  ||¬
«      «      }|j                  |¬«       t        ||«      }t        ||«      }|j                  ||d ¬«       |j                  |||
¬«       |j                   D �cg c]  }|j#                  d«      sŒ|‘Œ }}|D ]3  }|j                   |   }|j                   |   }|› d�}t%        |||¬«       Œ5 dD ]-  }t'        ||«      }t'        ||«      }|› d�}t)        |||¬«       Œ/ dD ]G  }t+        | |«      sŒ t'        ||«      |«      } t'        ||«      |«      }d|› d�}t-        |||¬«       ŒI y c c}w )Nr   r  r“  r·   r=  r¸   r    ©Úsizerô   r%  ré   )ÚrepeatsÚaxis)rŽ  )rÈ   rƒ  r†   z4 values are not equal for weighted/repeated datasets©r   )rx  r;  )r”   r–   r{   r~   zComparing the output of zn revealed that fitting with `sample_weight` is not equivalent to fitting with removed or repeated data points.)r   r^   ro   r'  r(  Úrandr   Útilerù   r¢   r6   Úsplitr�   Úrepeatr_   ru   rß   rp  rY   r@  r[   rì   rZ   )rç  Úestimator_weightedÚestimator_repeatedr)  r  Ún_samples_per_groupÚn_groupsr  rs   rÈ   r‰  r&  Ú
X_weightedÚ
y_weightedÚgroups_weightedÚsplits_weightedÚ
X_repeatedÚ
y_repeatedÚgroups_repeatedÚsplits_repeatedrš  r
  Ús1Ús2r   rw  s                             ri   Ú(test_search_cv_sample_weight_equivalencer£  S  sÍ  € ô ˜yÓ)ÐÜ˜yÓ)ÐÜÐ'°aÕ8ÜÐ'°aÕ8ä
�)‰)×
Ñ
 Ó
#€CØ€IØÐØ€HØÐ.Ñ.€IØ�‰�˜I¨™MÓ*€AØ�‰�A�y yˆÓ1€AØ	�‰�Q˜ 	ˆÓ	*€Bô �W‰W”R—Y‘Y˜xÓ(Ð*=Ó>€Fà€JØ€JØ€OÜÔ+Ó-×3Ñ3°JÀÐ3ÓWÓX€OØ×!Ñ! _Ð!Ô5à×"Ñ"¨2°AÐ"Ó6€JØ×"Ñ"¨2Ð"Ó.€JØ%×,Ñ,°RÐ,Ó8€OÜÔ+Ó-×3Ñ3°JÀÐ3ÓWÓX€OØ×!Ñ! _Ð!Ô5ä*Ð+=¸zÓJ€JÜ*Ð+=¸zÓJ€Jà×Ñ˜:¨À4ÐÔHØ×Ñ˜:¨À2ÐÔFð
 *×5Ñ5öØ¸¿¹ÀgÕ9NŠð€Jð ð ò 1ˆØ×+Ñ+¨CÑ0ˆØ×+Ñ+¨CÑ0ˆØ�EÐMÐNˆÜ˜˜B¨Ö0ð	1ð .ò 5ˆÜÐ'¨Ó-ˆÜÐ'¨Ó-ˆØ�EÐMÐNˆÜ˜B ¨GÖ4ð	5ð Qò 	BˆÜ�9˜fÕ%Ø4”Ð+¨VÓ4°QÓ7ˆBØ4”Ð+¨VÓ4°QÓ7ˆBà*¨6¨(ð 3+ð +ð ô
 )¨¨R¸ÖAñ	Bùòs   Æ8JÇJT)ÚnoveltyÚn_neighborsr9  )rç  rî  rá   )rç  rî   rá   c           	      óÜ  — t        | «      } t        j                  j                  d«      }d}d}t	        ||z  «      }||z
  }t        |dddgddggdd¬«      d   }t        j                  ||j                  dd	|df¬
«      gd¬«      }t        j                  dg|z  «      }d|| d  | j                  ||«       t        | j                  |«      | j                  j                  |«      «       y )Nr“  r¯  g333333Ã?r    r   rÊ   )r  rL  r  ré  r  iúÿÿÿr¾   )ÚlowÚhighr�  ©r�  rƒ   rž   )r   ro   r'  r(  Úintr   Úconcatenater   rû   ru   rY   r|  rÞ   )r¤  r)  r  Úoutliers_fractionÚ
n_outliersÚ	n_inliersrs   r€  s           ri   Ú#test_search_cv_score_samples_methodr¯  �  s  € ô  �iÓ €Iä
�)‰)×
Ñ
 Ó
#€CØ€IØÐÜÐ&¨Ñ2Ó3€JØ˜JÑ&€Iô 	ØØØ�Q�˜!˜Q˜Ð ØØô	ð ñ		€Aô 	�‰˜˜3Ÿ;™;¨2°A¸ZÈ¸O˜;ÓLÐMÐTUÔV€Aô �X‰X�q�c˜I‘oÓ&€FØ€FˆJˆ;ˆ<Ðð ‡M�M�!�VÔô Ø×Ñ Ó" I×$=Ñ$=×$KÑ$KÈAÓ$Nõrl   c                  óþ  — t        dd¬«      \  } }dg d¢i}t        t        «       |d¬«      }t        t        «       d|d¬	«      }||fD ]³  }|j	                  | |«       |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¢«       Œµ y )NrØ  r“  rÙ  rÉ   )rƒ   gj¼t“ð?çü©ñÒMbP?T)rî   r-  r·   )rª   rî  r-  r–  r   rƒ   r  r    r   )rƒ   rƒ   r·   )	r   r0   rK   r:   ru   rß   r[   ro   Úallclose)rs   rÈ   rî   rä   r6  r_  r™  s          ri   Ú(test_search_cv_results_rank_tie_breakingr³  Î  s>  € Ü °Ô4�D€A€qð Ò(Ð)€Jäœs›u°ÐPTÔU€KÜ&Ü‹�a¨ZÈDô€Mð  Ð.ò 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ÕMñ'Nrl   c                  óì   — dgdgdgdgdggg d¢}} t        «       t        «       f}ddd gi}t        «       }|D ];  }t        |||¬	«      j	                  | |«      }t        |j                  d
   dd g«       Œ= y )Nrƒ   r    r·   r¸   rô   )r   r   r   r   rƒ   r  r   ré   Úparam_random_state)rQ   rP   r5   r0   ru   r]   rß   )rs   rÈ   Ú
estimatorsÚest_parametersrØ   Úesträ   s          ri   Ú!test_search_cv_results_none_paramr¹  ð  s–   € ØˆC�!��q�c˜A˜3  Ð$¢o€q€AÜ'Ó)Ô+AÓ+CÐD€JØ$ q¨$ iÐ0€NÜ	‹€Bàò UˆÜ"ØØØô
÷ ‰#ˆa�‹)ð	 	ô
 	˜;×2Ñ2Ð3GÑHÈ1ÈdÈ)ÕTñUrl   z+ignore::sklearn.exceptions.FitFailedWarningc                  ó˜  — t        d¬«      } dgdgdgdgg}g d¢}t        | dddgidd¬	«      }t        | dddgiddd¬
«      }||fD �]  }|j                  ||«       dD ]P  }t	        j
                  |j                  |   dk\  «      sJ ‚t	        j
                  |j                  |   dk  «      rŒPJ ‚ dD ]W  }|j                  |   d   dk\  sJ ‚|j                  |   d   dk(  sJ ‚t	        j
                  |j                  |   dk  «      rŒWJ ‚ t        |d«      sJ ‚t        |j                  t        «      sJ ‚|j                  dk\  r�ŒJ ‚ y )Nr   r  rƒ   r    r·   r¸   )r   rƒ   rƒ   r   rÉ   r÷   )rØ   rø   rª   )r)  r*  )r+  r,  r…   Úrefit_time_)rL   r0   r:   ru   ro   r  rß   rì   rË   r»  Úfloat)Úsvcrs   rÈ   r,  Úrsr_  rš  s          ri   Útest_search_cv_timingr¿  ÿ  s•  € ä
 Ô
#€Cð ð	
ð ð	
ð ð	
ð ð	
ð	€Aò 	€Aä	�c˜C ! Q ˜=¨Q¸AÔ	>€BÜ	˜C #¨¨1 v °1À!ÈAÔ	N€Bà�r�(ó 'ˆØ�
‰
�1�aÔØ4ò 	7ˆCô —6‘6˜&×,Ñ,¨SÑ1°QÑ6Ô7Ð7Ð7Ü—6‘6˜&×,Ñ,¨SÑ1°AÑ5Õ6Ð6Ð6ð		7ð 9ò 	7ˆCØ×%Ñ% cÑ*¨1Ñ-°Ò2Ð2Ð2Ø×%Ñ% cÑ*¨1Ñ-°Ò4Ð4Ð4Ü—6‘6˜&×,Ñ,¨SÑ1°AÑ5Õ6Ð6Ð6ð	7ô
 �v˜}Ô-Ð-Ð-Ü˜&×,Ñ,¬eÔ4Ð4Ð4Ø×!Ñ! QÔ&Ð&Ð&ñ'rl   c            
      óž  — d} t        d¬«      }t        dd¬«      \  }}g d¢}dD �]   }t        |d|i|| ¬	«      }|j                  ||«      j                  }t        |j                  «       «      }d
t        d„ t        | «      D «       «      z   }	t        t        j                  |	|«      «      sJ ‚t        | ¬«      }
|j                  } t        |«      D ]ò  \  }}|j                  |¬«       t        j                   t        | «      D �cg c]  }|j                  d|z     |   ‘Œ c}«      }t        |
j#                  ||«      «      D ]~  \  }\  }}|j                  ||   ||   «       |dk(  r"t%        ||   |j'                  ||   «      «      }n(|dk(  r#|j)                  ||   «      }t+        ||   |«      }t-        ||   «       Œ€ Œô �Œ£ y c c}w )Nr·   r   r  r    r  r  )rj  r  rÉ   )rá   rØ   )r–  r   c              3   ó&   K  — | ]	  }d |z  –— Œ y­w)rI  Nr—   )rÃ   Úcv_is     ri   rÅ   z9test_grid_search_correct_score_results.<locals>.<genexpr>4  s   è ø€ ò G
Ø,0Ð  4Õ'ñG
ùs   ‚r#  r`  rI  rj  r  )rL   r   r0   ru   rß   r¢   r—  rÀ   r£   r  ro   Úisinr;   rL  Ú	enumerater�   rû   r“  r*   r{   r–   r.   r[   )r$  rã   rs   rÈ   r  r†   rä   r™  Úresult_keysÚexpected_keysrØ   Úcandidate_irÉ   rQ  Ú	cv_scoresr¥   ÚtrainÚtestÚcorrect_scoreÚdecs                       ri   Ú&test_grid_search_correct_score_resultsrÍ  (  sÔ  € à€HÜ
 Ô
#€CÜ 1¨aÔ0�D€A€qÚ	€BØ"ó AˆÜ" 3¨¨b¨	¸5ÀXÔNˆØ —_‘_ Q¨Ó*×6Ñ6ˆ
ô ˜:Ÿ?™?Ó,Ó-ˆØ>Äñ G
Ü49¸(³OôG
ó B
ñ 
ˆô ”2—7‘7˜=¨+Ó6Ô7Ð7Ð7ä hÔ/ˆØ×(Ñ(ˆÜ'¨›mò 	A‰NˆK˜Ø�N‰N˜QˆNÔÜŸ™ô # 8›_öàð  ×+Ñ+Ð,@À1Ñ,DÑEÀkÓRòóˆIô %.¨b¯h©h°q¸!«nÓ$=ò AÑ �‘=�E˜4Ø—‘˜˜%™ ! E¡(Ô+Ø˜D’=Ü$,¨Q¨t©W°c·k±kÀ!ÀDÁ'Ó6JÓ$K‘MØ˜iÒ'Ø×/Ñ/°°$±Ó8�CÜ$1°!°D±'¸3Ó$?�MÜ# M°9¸Q±<Õ@ñAò	AñAùò s   ÄG
c                  ó6  — t        «       } t        | dg d¢idd¬«      }|j                  t        t        «       t        j                  t        j                  |«      «      }t        |j                  t        «      |j                  t        «      «       t        | dg d¢iddd¬«      }|j                  t        t        «       t        j                  t        j                  |«      «      }t        |j                  t        «      |j                  t        «      «       y )Nrg   r¶   Tr    r:  r·   )r3  rª   rØ   )rc   r0   ru   rs   rÈ   ÚpickleÚloadsÚdumpsr\   r{   r:   )rã   rä   Úgrid_search_pickledr6  Úrandom_search_pickleds        ri   Útest_picklerÔ  M  sÏ   € ä
Ó
€CÜ˜s [²)Ð$<ÀDÈQÔO€KØ‡O�O”A”qÔÜ Ÿ,™,¤v§|¡|°KÓ'@ÓAÐÜ˜k×1Ñ1´!Ó4Ð6I×6QÑ6QÔRSÓ6TÔUä&Øˆkš9Ð%¨T¸!Àô€Mð ×Ñ”aœÔÜ"ŸL™L¬¯©°mÓ)DÓEÐÜØ×ÑœaÓ Ð"7×"?Ñ"?ÄÓ"Bõrl   c            	      óÚ  — t        dd¬«      \  } }dg d¢i}t        «       }t        d¬«      t        d¬«      g}|D ]Ô  }t	        |||¬«      }|j                  | |«       |j                  d   }t        t        |«      «      D ]Œ  } |j                  di ||   ¤Ž t        |j                  | |«      «      D ]W  \  }	\  }
}|j                  | |
   ||
   «       |j                  | |   ||   «      }t        ||j                  d	|	z     |   «       ŒY ŒŽ ŒÖ |D ]Õ  }t        |||d
¬«      }|j                  | |«       |j                  d   }t        t        |«      «      D ]Œ  } |j                  di ||   ¤Ž t        |j                  | |«      «      D ]W  \  }	\  }
}|j                  | |
   ||
   «       |j                  | |   ||   «      }t        ||j                  d	|	z     |   «       ŒY ŒŽ Œ× y )NTr   )Úreturn_indicatorr  rx  )rƒ   r    r·   r¸   r  ré   rŒ   rI  r·   )rØ   rª   r—   )r   r5   rQ   rP   r0   ru   rß   r£   rn   r�   rÄ  r“  r†   r[   r:   )rs   rÈ   r·  rØ   r¶  r¸  rä   Ú
res_paramsÚcand_ir¥   rÉ  rÊ  rË  r6  s                 ri   Ú&test_grid_search_with_multioutput_datarÙ  _  s
  € ô *¸4ÈaÔP�D€A€qà!¢<Ð0€NÜ	‹€Bô 	¨1Ô-Ü¨AÔ.ð€Jð ò ˆÜ" 3¨¸2Ô>ˆØ�‰˜˜1ÔØ ×,Ñ,¨XÑ6ˆ
ÜœC 
›OÓ,ò 		ˆFØˆC�N‰NÑ0˜Z¨Ñ/Ò0ä$-¨b¯h©h°q¸!«nÓ$=ò Ñ �‘=�E˜4Ø—‘˜˜%™ ! E¡(Ô+Ø #§	¡	¨!¨D©'°1°T±7Ó ;�Ü#Ø!Ø×+Ñ+Ð,@À1Ñ,DÑEÀfÑMõññ		ð	ð  ò ˆÜ*¨3°À2ÈaÔPˆØ×Ñ˜!˜QÔØ"×.Ñ.¨xÑ8ˆ
ÜœC 
›OÓ,ò 		ˆFØˆC�N‰NÑ0˜Z¨Ñ/Ò0ä$-¨b¯h©h°q¸!«nÓ$=ò Ñ �‘=�E˜4Ø—‘˜˜%™ ! E¡(Ô+Ø #§	¡	¨!¨D©'°1°T±7Ó ;�Ü#Ø!Ø!×-Ñ-Ð.BÀQÑ.FÑGÈÑOõññ		ñ	rl   c                  óÂ   — t        j                  d«      j                  dd«      } g d¢}t        «       }t	        |i d¬«      j                  | |«      }t        |d«      rJ ‚y )Nr€  rô   rž   ©r   r   rƒ   rƒ   rƒ   r    ré   r”   )ro   rù   rú   rK   r0   ru   rì   ©rs   rÈ   rã   r,  s       ri   Útest_predict_proba_disabledrÝ  �  sV   € ä
�	‰	�"‹×Ñ˜a Ó$€AÚ€AÜ
‹%€CÜ	�c˜2 !Ô	$×	(Ñ	(¨¨AÓ	.€BÜ�r˜?Ô+Ð+Ð+Ð+rl   c                  óL  — t        j                  dt         j                  ¬«      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¬«      j                  | |«       y )Nr€  rH  rô   rž   r    rÛ  Úimputerrd  )ÚstrategyÚmissing_valuesÚ
classifierÚclassifier__foo_paramr¶   ré   )
ro   rù   r  rú   ÚnanrE   r#   rc   r0   ru   )rs   rÈ   rÄ   s      ri   Útest_grid_search_allows_nansrå  –  s‡   € ä
�	‰	�"œBŸJ™JÔ'×/Ñ/°°2Ó6€AÜ�f‰f€A€aŠ€d�GÚ€AÜàœ¨vÄbÇfÁfÔMÐNØœ>Ó+Ð,ð	
ó	€Aô �Ð,ªiÐ8¸QÔ?×CÑCÀAÀqÕIrl   c                   ó2   — e Zd ZdZdZdd„Zdd„Zd„ Zd	d„Zy)
ÚFailingClassifierz,Classifier that raises a ValueError on fit()r    Nc                 ó   — || _         y re   r…  r‡  s     ri   rj   zFailingClassifier.__init__©  rk   rl   c                 óT   — | j                   t        j                  k(  rt        d«      ‚y )Nz%Failing classifier failed as required)r†  rç  ÚFAILING_PARAMETERrâ   rŠ  s      ri   ru   zFailingClassifier.fit¬  s'   € Ø�>‰>Ô.×@Ñ@Ò@ÜÐDÓEÐEð Arl   c                 óF   — t        j                  |j                  d   «      S rw   rŒ  r}   s     ri   r{   zFailingClassifier.predict°  r�  rl   c                  ó   — y)Nr…   r—   rr   s      ri   r†   zFailingClassifier.score³  s   € Ørl   re   rŽ   )	r�   r‘   r’   r“   rê  rj   ru   r{   r†   r—   rl   ri   rç  rç  ¤  s    „ Ù6àÐó#óFò$ôrl   rç  c            	      óÌ  ‡‡— t        ddd¬«      \  } }t        «       }t        |dg d¢igddd	¬
«      Št        j                  dt        j
                  ¬«      }t        j                  t        |¬«      5  ‰j                  | |«       d d d «       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  ‰j                  | |«       d d d «       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                  k7  sJ ‚y # 1 sw Y   �ŒIxY w# 1 sw Y   ŒŸxY w)Nr€  r¨   r   rK  r†  ©r   rƒ   r    r	  Fr…   ©rá   r3  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                 ó    •— t        j                  t        ‰j                  «      D �cg c]  }‰j                  d|z     |    ‘Œ c}«      S c c}w )NrI  )ro   rû   r£   rL  rß   )r¥   rQ  r,  s     €ri   Úget_cand_scoresz<test_grid_search_failing_classifier.<locals>.get_cand_scoresÙ  sB   ø€ Ü�x‰xÜBGÈÏÉÓBUÖV¸QˆR�^‰^Ð0°1Ñ4Ñ5°aÓ8ÒVó
ð 	
ùÚVs   ¨Ac              3   ó    •K  — | ]E  }‰j                   d    |   t        j                  k(  r t        j                   ‰|«      dk(  «      –— ŒG y­w)Úparam_parameterr…   N)rß   rç  rê  ro   r  ©rÃ   rØ  ró  r,  s     €€ri   rÅ   z6test_grid_search_failing_classifier.<locals>.<genexpr>ß  sL   øè ø€ ò 	
àØ�~‰~Ð/Ñ0°Ñ8Ü ×2Ñ2ò3ô �F‰F‘? 6Ó*¨cÑ1×2ñ	
ùs   ƒAA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  — | ]U  }‰j                   d    |   t        j                  k(  r0t        j                  t        j
                   ‰|«      «      «      –— ŒW y­w)rõ  N)rß   rç  rê  ro   r  Úisnanrö  s     €€ri   rÅ   z6test_grid_search_failing_classifier.<locals>.<genexpr>ø  sP   øè ø€ ò àØ�>‰>Ð+Ñ,¨VÑ4Ü×.Ñ.ò/ô 	�‰Œr�x‰x™¨Ó/Ó0×1ñùs   ƒAAr   r    rƒ   r·   )r   rç  r0   r]  ÚcompileÚDOTALLr¯   r†  r    ru   rn   rß   r  r£   r¼  rê  r;  )rs   rÈ   rã   Úwarning_messager8  Úranksró  r,  s         @@ri   Ú#test_grid_search_failing_classifierrý  ·  sá  ù€ ô ¨¸ÈÔK�D€A€qä
Ó
€Cô 
ØØ
’yÐ	!Ð"ØØØô
€Bô —j‘jð	ô �i‰iô€Oô 
�‰Ô&¨oÔ	>ñ Ø
�‰ˆq�!Œ÷ä�r—~‘~ hÑ/Ó0€Lô
ô
 ô	
ä Ó-ô	
ôð ð ô 
ØØ
’yÐ	!Ð"ØØÜ˜%“Lô
€Bô —j‘jð	ô �i‰iô€Oô 
�‰Ô&¨oÔ	>ñ Ø
�‰ˆq�!Œ÷ä�r—~‘~ hÑ/Ó0€LÜô ä˜LÓ)ôô ð ð ð �N‰NÐ,Ñ-€Eð �‰8�qŠ=˜U 1™X¨š]Ð*Ð*à�×&Ñ&Ñ'¨1Ò,Ð,Ð,Ø�>‰>˜S×2Ñ2Ò2Ð2Ñ2÷eñ ú÷Dð ús   Á3GÄ)GÇGÇG#c                  óN  — t        ddd¬«      \  } }t        «       }t        |dt        j                  gdz  igd¬«      }t	        j
                  d	t        j                  ¬
«      }t        j                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr€  r¨   r   rK  r†  r·   r…   ©rø   zrAll the 15 fits failed.+15 fits failed with the following error.+ValueError.+Failing classifier failed as requiredrð  r­   ©r   rç  r0   rê  r]  rù  rú  r¯   r°   râ   ru   )rs   rÈ   rã   r,  rû  s        ri   Ú)test_grid_search_classifier_all_fits_failr    s—   € Ü¨¸ÈÔK�D€A€qä
Ó
€Cä	ØØ
Ô)×;Ñ;Ð<¸qÑ@Ð	AÐBØô
€Bô —j‘jðHô �i‰iô€Oô 
�‰”z¨Ô	9ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   Á?BÂB$c                  óä   — t        ddd¬«      \  } }t        «       }t        |dg d¢igddd	¬
«      }t        j                  t
        «      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr€  r¨   r   rK  r†  rî  r	  Frö   rï  )r   rç  r0   r¯   r°   râ   ru   rÜ  s       ri   Ú)test_grid_search_failing_classifier_raiser    sq   € ô ¨¸ÈÔK�D€A€qä
Ó
€Cô 
ØØ
’yÐ	!Ð"ØØØô
€Bô 
�‰”zÓ	"ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   Á
A&Á&A/c                  óú  — 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 «       t        | d
¬	«      }t	        |«      }t        |«      d
k(  sJ ‚t        | «      D ]  }||v rŒ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 �cg c]  }d|d   |d   |d   fz  ‘Œ }}t        t        |«      «      dk(  sJ ‚t        d«      g d¢dœ}	t        |	d¬	«      }t	        |«      }t        |«      dk(  sJ ‚y # 1 sw Y   �ŒxY wc c}w )Nr   rƒ   )ÚaÚbÚc)ÚfirstÚsecondÚthirdÚtwoÚvaluesrð  r©   rï  z}The total space of parameters %d is smaller than n_iter=%d. Running %d iterations. For exhaustive searches, use GridSearchCV.r­   éè  r¨   éc   r“  )rª   r  z	a%db%dc%dr  r  r  rÊ   r°  )
r9   r¯   r†  r‡  r¢   rn   r8   r£   rÌ   r
   )
rŒ   rñ  rª   Ú	grid_sizeÚexpected_warningrò  r  rÄ   Úhashable_samplesÚparams_distributions
             ri   Ú#test_parameters_sampler_replacementr  3  s¯  € ð �a�&¢OÑ4Ø	�5˜(Ð#Ð$ð€Fô ˜v¨aÔ0€GØ€FØ€Ið	1à4=¸vÀyÐ3Qñ	Rð ô
 
�‰”kÐ)9Ô	:ñ ÜˆWŒ÷ô ˜v¨aÔ0€GÜ�7‹m€GÜˆw‹<˜1ÒÐÐÜ Ó'ò !ˆØ˜Ò Ð Ð ð!äÔ ¨tÔ4Ó5¸Ò:Ð:Ð:ô ˜“9¤5¨£9´5¸³9Ñ=€FÜ˜v¨b¸rÔB€GÜ�7‹m€GÜˆw‹<˜2ÒÐÐØHOÖPÀ1˜ q¨¡v¨q°©v°q¸±vÐ&>Ó>ÐPÐÐPÜŒsÐ#Ó$Ó%¨Ò+Ð+Ð+ô %.¨c£NºoÑNÐÜÐ2¸1Ô=€GÜ�7‹m€GÜˆw‹<˜1ÒÐÑ÷/ñ üò  Qs   ÁE+Ã?E8Å+E5c                  óª  — ddgi} t        j                  d«      j                  dd«      }g d¢}t        t	        d¬«      | d	¬
«      }t        |d«      rJ ‚|j                  ||«       |j                  |«       |j                  |«       ddgi} t        t	        d¬«      | d	¬
«      }t        |d«      rJ ‚|j                  ||«       t        |d«      rJ ‚y )NÚlossÚlog_lossé   r¾   rž   ©r   r   r   rƒ   rƒ   rƒ   Úhinge)r  r·   ©rç  rî   rØ   r”   )	ro   rù   rú   r0   r'   rì   ru   r”   r•   )rî   rs   rÈ   rã   s       ri   Ú#test_stochastic_gradient_loss_paramr  [  sÞ   € ð 	��ð€Jô 	�	‰	�"‹×Ñ˜a Ó$€AÚ€AÜ
Ü WÔ-¸*Èô€Cô �s˜OÔ,Ð,Ð,Ø‡G�GˆAˆq„MØ×Ñ�aÔØ×Ñ˜!Ôð
 	��	ð€Jô Ü WÔ-¸*Èô€Cô �s˜OÔ,Ð,Ð,Ø‡G�GˆAˆq„MÜ�s˜OÔ,Ð,Ð,Ð,rl   c                  ó¶   — t        j                  d«      j                  dd«      } g d¢}t        d¬«      }t	        |dddgid	¬
«      }|j                  | |«       y )Nr¾   rž   r  r   r  rÉ   r  r  r·   )rî   rØ   )ro   rù   rú   rL   r0   ru   rÜ  s       ri   Ú%test_search_train_scores_set_to_falser  {  sO   € Ü
�	‰	�!‹×Ñ˜Q Ó#€AÚ€AÜ
 Ô
#€Cä	�c s¨S°#¨JÐ&7¸AÔ	>€BØ‡F�Fˆ1ˆa…Lrl   c            
      óª  — d} d}t        | d¬«      \  }}t        t        d¬«      dg d¢it        || ¬«      d	¬
«      }|j	                  ||«       t        t        d¬«      dg d¢it        |¬«      d	¬
«      }|j	                  ||«       t        t        |d	d¬«      j                  ||«      t        «      sJ ‚t        t        d¬«      dg d¢it        |d	d¬«      j                  ||«      d	¬
«      }|j	                  ||«       t        t        d¬«      dg d¢it        |d	d¬«      d	¬
«      }|j	                  ||«       d„ }t        j                  j                   ||j                  «       ||j                  «      «       t        j                  j                  |j                  j                  «       D �	�
ci c]  \  }	}
|	j                  d«      rŒ|	|
“Œ c}
}	|j                  j                  «       D �	�
ci c]  \  }	}
|	j                  d«      rŒ|	|
“Œ c}
}	«       t        t        d¬«      dg d¢it        |d	¬«      d	¬
«      }|j	                  ||«       dD ]i  }i }t        d«      D ]3  }t        d«      D �cg c]  }|j                  d||fz     |   ‘Œ c}||<   Œ5 t!        |d   |d   «       t!        |d   |d   «       Œk y c c}
}	w c c}
}	w c c}w )Nró   rô   r   rÙ  r  rÉ   )r  r  g333333Ó?)r$  r  T)rî   rØ   r-  r#  )r$  rG  r  c                 ó6   — dD ]  }| j                  |«       Œ | S )N)r)  r*  r+  r,  )Úpop)r™  rš  s     ri   Ú_pop_time_keysz>test_grid_search_cv_splits_consistency.<locals>._pop_time_keys¯  s)   € ð
ò 	 ˆCð �N‰N˜3Õð	 ð Ðrl   rk  )r  r  r  r  )r$  rG  )rÉ  rÊ  r¸   zsplit%d_%s_scorerƒ   r    r·   )r   r0   rL   r@   ru   r5   rË   r“  r	   ro   rn  ro  rß   rÂ   rp  r£   r\   )r  r$  rs   rÈ   r,  Úgs2Úgs3Úgs4r!  r1  rt  Ú
score_typeÚper_param_scoresÚparam_irQ  s                  ri   Ú&test_grid_search_cv_splits_consistencyr(  „  s²  € à€IØ€HÜ¨ÀÔC�D€A€qä	Ü˜qÔ!ØšÐ)Ü H¸	ÔBØô	
€Bð ‡F�Fˆ1ˆa„Lä
Ü˜qÔ!ØšÐ)Ü˜(Ô#Øô	€Cð ‡G�GˆAˆq„Mô Ü�x¨¸AÔ>×DÑDÀQÈÓJÜôð ð ô Ü˜qÔ!ØšÐ)Ü˜(¨D¸qÔA×GÑGÈÈ1ÓMØô	€Cð ‡G�GˆAˆq„Mä
Ü˜qÔ!ØšÐ)Ü˜(¨D¸qÔAØô	€Cð ‡G�GˆAˆq„Mòô ‡J�J×ÑÙ�s—‘Ó'©¸¿¹Ó)Hôô ‡J�J×ÑØŸ.™.×.Ñ.Ó0×L‘$�!�Q¸¿
¹
À7Õ8KˆˆA‰ÓLØŸ/™/×/Ñ/Ó1×M‘$�!�Q¸¿¹ÀGÕ9LˆˆA‰ÓMôô 
Ü˜qÔ!ØÒ-Ð.Ü˜(¨DÔ1Øô	
€Bð ‡F�Fˆ1ˆa„Lð (ò 	Lˆ
ØÐÜ˜Q“xò 	ˆGô ˜q›ö)àð —‘Ð1°Q¸
°OÑCÑDÀWÓMò)Ð˜WÒ%ð	ô 	"Ð"2°1Ñ"5Ð7GÈÑ7JÔKÜ!Ð"2°1Ñ"5Ð7GÈÑ7JÕKñ	Lùó# 	MùÛMùò&)s   Æ5K
ÇK
Ç4K
ÈK
É7Kc                  óÚ   — t        «       } t        | dg d¢idd¬«      }|j                  t        t        «       |j                  |j                  t        «      «      }t        t        |«       y )Nrg   r¶   r    r·   r×   )rc   r0   ru   rs   rÈ   r�   r~   r]   )rã   rä   ÚX_round_trips      ri   Ú+test_transform_inverse_transform_round_tripr+  ã  sR   € Ü
Ó
€CÜ˜s [²)Ð$<ÀÈAÔN€Kà‡O�O”A”qÔØ×0Ñ0°×1FÑ1FÄqÓ1IÓJ€LÜ”q˜,Õ'rl   c                  ó¬  ‡‡‡‡‡	— d„ Šˆˆˆ	fd„Š G ˆˆfd„dt         «      } t        d¬«      Št        ddd¬	«      \  ŠŠ	 | ‰d
¬«      j                  ‰‰	«      } ‰dddgidddgig«      }|j                  } ‰||«       t        |«      D ]G  }|d   j                  «       sŒ|dd  dk(  sŒ |dvsŒ%t        ||«      t        ||«      k(  rŒ?J d|z  «       ‚ y )Nc                 óh  — |j                   }t        | j                  «       «      t        |«      k(  sJ ‚| D ]z  }|j                  d«      rŒt	        j
                  | |   «      | |<   | |   j                  j                  dk(  rt        ||   | |   d|z   ¬«       Œdt        ||   | |   d|z   ¬«       Œ| y )Nrk  r5  z	Checking r�  )
rß   rÁ   r—  rp  ro   Ú
asanyarrayr  r  r]   rY   )ÚresultsÚgscvÚexp_resultsr1  s       ri   Úcheck_resultsz-test_custom_run_search.<locals>.check_resultsí  s¬   € Ø×&Ñ&ˆÜ�g—l‘l“nÓ%¬°Ó)<Ò<Ð<Ð<Øò 		YˆAØ—:‘:˜gÕ&äŸ]™]¨7°1©:Ó6�˜‘
Ø˜1‘:×#Ñ#×(Ñ(¨CÒ/Ü&Ø# A™¨°©
¸KÈ!¹Oöô $ K°¡N°G¸A±JÈÐVWÉÖXñ		Yrl   c                 ó@   •— t        ‰| d¬«      j                  ‰‰«      S )NT©r-  )r0   ru   )rî   rs   rã   rÈ   s    €€€ri   Úfit_gridz(test_custom_run_search.<locals>.fit_gridû  s   ø€ Ü˜C ÀÔE×IÑIÈ!ÈQÓOÐOrl   c                   ó,   •‡ — e Zd Zˆ fd„Zˆˆfd„Zˆ xZS )ú.test_custom_run_search.<locals>.CustomSearchCVc                 ó&   •— t        ‰| �  |fi |¤Ž y re   ©Úsuperrj   ©rh   rç  Úkwargsr{  s      €ri   rj   z7test_custom_run_search.<locals>.CustomSearchCV.__init__ÿ  ó   ø€ Ü‰GÑ˜YÑ1¨&Ó1rl   c           	      ó–   •—  |ddiddig«      } ‰| ‰dddgi«      «        |ddiddig«      } ‰| ‰dddgidddgig«      «       y )Nrx  rƒ   r    Úmin_samples_splitrô   r¨   r—   )rh   Úevaluater/  r2  r5  s      €€ri   Ú_run_searchz:test_custom_run_search.<locals>.CustomSearchCV._run_search  s{   ø€ Ù ¨aÐ 0°;ÀÐ2BÐCÓDˆGÙ˜'¡8¨[¸1¸a¸&Ð,AÓ#BÔCÙÐ!4°aÐ 8Ð;NÐPRÐ:SÐTÓUˆGÙØÙ˜;¨¨A¨Ð/Ð2EÈÈ2ÀwÐ1OÐPÓQõrl   )r�   r‘   r’   rj   rA  Ú__classcell__)r{  r2  r5  s   @€€ri   ÚCustomSearchCVr7  þ  s   ù„ ô	2÷	ñ 	rl   rC  r   r  ró   r¸   )r  Ún_informativer  Tr4  rx  rƒ   r    r?  rô   r¨   rž   rê  >   r  rq   rß   r»  rÞ   zAttribute %s not equal)r>   rQ   r   ru   rß   ÚdirÚislowerr@  )
rC  Úmycvr0  r/  Úattrrs   r2  rã   r5  rÈ   s
        @@@@@ri   Útest_custom_run_searchrI  ì  sò   ü€ òYöP÷œô ô  ¨QÔ
/€CÜ¨¸AÈAÔN�D€A€qÙ˜#°$Ô7×;Ñ;¸A¸qÓA€DÙ�k A q 6Ð*Ð-@À1ÀbÀ'Ð,JÐKÓL€Dà×Ñ€GÙ�'˜4Ô Ü�D“	ò ˆà�‰G�O‰OÕØ�R�S�	˜SÓ Øðòô ˜4 Ó&¬'°$¸Ó*=Ó=ð Ø(¨4Ñ/óÐ=ñrl   c                  óX  —  G d„ dt         «      }  | t        «       «      j                  t        t        «        G d„ dt         «      }t        j                  t        d¬«      5   |t        «       t        d¬«      ¬	«      j                  t        t        «       d d d «       y # 1 sw Y   y xY w)
Nc                   ó&   ‡ — e Zd Zˆ fd„Zdd„Zˆ xZS )ú;test__custom_fit_no_run_search.<locals>.NoRunSearchSearchCVc                 ó&   •— t        ‰| �  |fi |¤Ž y re   r9  r;  s      €ri   rj   zDtest__custom_fit_no_run_search.<locals>.NoRunSearchSearchCV.__init__'  r=  rl   c                 ó   — | S re   r—   )rh   rs   rÈ   r&  Ú
fit_paramss        ri   ru   z?test__custom_fit_no_run_search.<locals>.NoRunSearchSearchCV.fit*  s   € ØˆKrl   rŽ   )r�   r‘   r’   rj   ru   rB  ©r{  s   @ri   ÚNoRunSearchSearchCVrL  &  s   ø„ ô	2÷	rl   rQ  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ú3test__custom_fit_no_run_search.<locals>.BadSearchCVc                 ó&   •— t        ‰| �  |fi |¤Ž y re   r9  r;  s      €ri   rj   z<test__custom_fit_no_run_search.<locals>.BadSearchCV.__init__1  r=  rl   )r�   r‘   r’   rj   rB  rP  s   @ri   ÚBadSearchCVrS  0  s   ø„ ÷	2ð 	2rl   rU  z_run_search not implemented.r­   r    r#  ré   )	r>   rK   ru   rs   rÈ   r¯   r°   ÚNotImplementedErrorr5   )rQ  rU  s     ri   Útest__custom_fit_no_run_searchrW  %  sx   € ôœlô ñ œ›Ó×"Ñ"¤1¤aÔ(ô2”lô 2ô 
�‰Ô*Ð2PÔ	Qñ ;á”C“Eœe¨QÔ/Ô0×4Ñ4´Q¼Ô:÷;÷ ;ñ ;ús   Á"5B Â B)c                  óF  — t        d¬«      j                  t        «      } | D �cg c]  }|‘Œ c} d}t        t	        «       dg d¢i| d¬«      }t        j                  t        d¬	«      5  |j                  t        d | t        d | «       d d d «       y c c}w # 1 sw Y   y xY w)
Nr·   r#  ró   r0  ©r±  r•  r  r¸   ©rØ   Ún_jobszNNo fits were performed. Was the CV iterator empty\? Were there no candidates\?r­   )
r5   r“  rs   r:   r&   r¯   r°   râ   ru   rÈ   )rØ   ÚuÚ
train_sizeÚridges       ri   Útest_empty_cv_iterator_errorr_  ;  s˜   € ô
 
˜Ô	×	 Ñ	 ¤Ó	#€Bð †Oˆ1‚QƒOð €JÜœu›w¨Ò2DÐ(EÈ"ÐUVÔW€Eô 
�‰Üð*ô
ñ 2ð 	�	‰	”!�K�Z�.¤! K Z .Ô1÷2ð 2ùò ÷2ð 2ús   ¤	BÁ(!BÂB c                  ó  —  G d„ dt         «      }  | d¬«      }d}t        t        «       dg d¢i|d¬	«      }t        j                  t
        d
¬«      5  |j                  t        d | t        d | «       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zd„ Zy)ú.test_random_search_bad_cv.<locals>.BrokenKFoldc                  ó   — y)Nrƒ   r—   )rh   ÚargsÚkws      ri   Úget_n_splitsz;test_random_search_bad_cv.<locals>.BrokenKFold.get_n_splits[  s   € Ørl   N)r�   r‘   r’   rf  r—   rl   ri   ÚBrokenKFoldrb  Z  s   „ ó	rl   rg  r·   r#  ró   r0  rY  r¸   rZ  zVcv.split and cv.get_n_splits return inconsistent results. Expected \d+ splits, got \d+r­   )	r5   r:   r&   r¯   r°   râ   ru   rs   rÈ   )rg  rØ   r]  r^  s       ri   Útest_random_search_bad_cvrh  W  s   € ô”eô ñ
 
˜aÔ	 €Bà€JÜœu›w¨Ò2DÐ(EÈ"ÐUVÔW€Eô 
�‰Üðô
ñ 2ð 	�	‰	”!�K�Z�.¤! K Z .Ô1÷2÷ 2ñ 2ús   Á!A;Á;Br-  F)r    r·   rô   rï  r¸   c                 óž  — t        dd¬«      \  }} G d„ d«      } | t        «       f |«       d|dœ|¤Ž}t        j                  t        «      5 }|j                  ||«       d d d «       |rdd	gndg}t        «      t        |«      k(  sJ ‚t        ||«      D ]"  \  }	}
d
|
› d�t        |	j                  «      v rŒ"J ‚ |j                  d   j                  «       }t        j                  |j                  d   «      }t        |j                  d   |   |«       t        j                  |j                  d   |    |k  «      sJ ‚y # 1 sw Y   ŒãxY w)Nr    r   )r  r  c                   ó   — e Zd ZdZd„ Zd„ Zy)úHtest_searchcv_raise_warning_with_non_finite_score.<locals>.FailingScorerz1Scorer that will fail for some split but not all.c                 ó   — d| _         y rw   )Ún_countsrœ   s    ri   rj   zQtest_searchcv_raise_warning_with_non_finite_score.<locals>.FailingScorer.__init__‡  s	   € ØˆD�Mrl   c                 ór   — | xj                   dz  c_         | j                   dz  dk(  rt        j                  S y)Nrƒ   rô   r   )rm  ro   rä  )rh   rç  rs   rÈ   s       ri   Ú__call__zQtest_searchcv_raise_warning_with_non_finite_score.<locals>.FailingScorer.__call__Š  s-   € Ø�MŠM˜QÑ�MØ�}‰}˜qÑ  AÒ%Ü—v‘v�Ørl   N)r�   r‘   r’   r“   rj   ro  r—   rl   ri   ÚFailingScorerrk  „  s   „ Ù?ò	ó	rl   rp  r·   )rá   rØ   r-  rÊ  rÉ  zOne or more of the z scores are non-finiter   r–  )r   rP   r¯   r†  r‡  ru   rn   ÚziprC  Úmessagerß   Úmaxro   rø  r]   r  )rñ   rO  r-  rs   rÈ   rp  r¤   Úwarn_msgÚset_with_warningÚmsgÚdatasetÚ	last_rankÚnon_finite_masks                ri   Ú1test_searchcv_raise_warning_with_non_finite_scorerz  p  sa  € ô$ ¨¸Ô;�D€A€q÷
ñ 
ñ ÜÓ ðá“ØØ-ñ	ð
 ñ€Dô 
�‰”kÓ	"ð  hØ�‰��AŒ÷ñ -?˜ Ñ(ÀVÀHÐÜˆx‹=œCÐ 0Ó1Ò1Ð1Ð1Ü˜HÐ&6Ó7ò Y‰ˆˆWØ$ W IÐ-CÐDÌÈCÏKÉKÓHXÒXÐXÐXðYð × Ñ Ð!2Ñ3×7Ñ7Ó9€IÜ—h‘h˜t×/Ñ/Ð0AÑBÓC€OÜ�t×'Ñ'Ð(9Ñ:¸?ÑKÈYÔWä�6‰6�$×"Ñ"Ð#4Ñ5°Ð6FÑGÈ)ÑSÔTÐTÑT÷ð ús   ÁEÅEc                  óv  — d„ } t        ddd¬«      \  }}t        d¬«      }t        |ddd	gi| d
¬«      }|j                  ||«       g d¢}|D ]!  }dj	                  |«      |j
                  v rŒ!J ‚ |j                  |«      }t        ||«      }|j                  ||«      t        j                  |d   «      k(  sJ ‚y )Nc                 ób   — | j                  |«      }t        ||«      }|d   |d   |d   |d   dœS )N)r   r   ©r   rƒ   )rƒ   r   ©rƒ   rƒ   ©ÚtnÚfpÚfnÚtp)r{   r)   )rã   rs   rÈ   re  Úcms        ri   Úcustom_scorerzAtest_callable_multimetric_confusion_matrix.<locals>.custom_scorer«  s:   € Ø—‘˜Q“ˆÜ˜a Ó(ˆØ˜‘h b¨¡h°b¸±hÀbÈÁhÑOÐOrl   é(   r¸   r“  rK  r  rÉ   r  rƒ   r�  r�  r  zmean_test_{}r}  )r   rL   r0   ru   Úformatrß   r{   r)   r†   r¯   rM  )	r…  rs   rÈ   r¸  r_  Úscore_namesÚnamere  r„  s	            ri   Ú*test_callable_multimetric_confusion_matrixrŠ  ¨  sÃ   € òPô
 ¨¸ÈÔK�D€A€qÜ
 Ô
$€CÜ˜#  c¨1 X˜¸ÈTÔR€Fà
‡J�Jˆq�!Ôâ*€KØò AˆØ×$Ñ$ TÓ*¨f×.@Ñ.@Ò@Ð@Ð@ðAð �^‰^˜AÓ€FÜ	˜!˜VÓ	$€BØ�<‰<˜˜1Ó¤§¡¨r°$©xÓ!8Ò8Ð8Ñ8rl   c                  óâ  — d„ } t        ddd¬«      \  }}t        d¬«      }t        |ddd	gi| d
¬«      }t        |ddd	gid
dgd
¬«      }|j                  ||«       |j                  ||«       |j                  t        j                  |j                  «      k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  ||«      t        j                  |j                  ||«      «      k(  sJ ‚y )Nc                 óV   — | j                  |«      }t        ||«      t        ||«      dœS )N)r=  r	  )r{   r-   r(   ©r¸  rs   rÈ   re  s       ri   r…  zHtest_callable_multimetric_same_as_list_of_strings.<locals>.custom_scorerÁ  s-   € Ø—‘˜Q“ˆä" 1 fÓ-Ü& q¨&Ó1ñ
ð 	
rl   r†  r¸   r“  rK  r  rÉ   r  rƒ   r=  r�  r	  ©	r   rL   r0   ru   rx  r¯   rM  r;  r†   )r…  rs   rÈ   r¸  Úsearch_callableÚ
search_strs         ri   Ú1test_callable_multimetric_same_as_list_of_stringsr‘  ¿  sð   € ò
ô ¨¸ÈÔK�D€A€qÜ
 Ô
$€CÜ"Øˆc�C˜�8ˆ_ m¸8ô€Oô Øˆc�C˜�8ˆ_ x°Ð&<ÀHô€Jð ×Ñ˜˜1ÔØ‡N�N�1�aÔà×&Ñ&¬&¯-©-¸
×8NÑ8NÓ*OÒOÐOÐOØ×&Ñ&¨*×*@Ñ*@Ò@Ð@Ð@Ø× Ñ   AÓ&¬&¯-©-¸
×8HÑ8HÈÈAÓ8NÓ*OÒOÐOÑOrl   c                  ó0  — 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                  ||«       |j                  ||«       |j                  ||«       |j                  t        j                  |j                  «      k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  ||«      t        j                  |j                  ||«      «      k(  sJ ‚|j                  t        j                  |j                  «      k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  ||«      t        j                  |j                  ||«      «      k(  sJ ‚y )Nc                 ó<   — | j                  |«      }t        ||«      S re   )r{   r-   r�  s       ri   r…  zHtest_callable_single_metric_same_as_single_string.<locals>.custom_scorerÛ  s   € Ø—‘˜Q“ˆÜ˜A˜vÓ&Ð&rl   r†  r¸   r“  rK  r  rÉ   r  rƒ   Tr�  r=  rŽ  )r…  rs   rÈ   r¸  r�  r�  Úsearch_list_strs          ri   Ú1test_callable_single_metric_same_as_single_stringr•  Ù  sƒ  € ò'ô ¨¸ÈÔK�D€A€qÜ
 Ô
$€CÜ"Øˆc�C˜�8ˆ_ m¸4ô€Oô ˜c C¨#¨q¨ ?¸HÈHÔU€JÜ"Øˆc�C˜�8ˆ_ x j¸ô€Oð ×Ñ˜˜1ÔØ‡N�N�1�aÔØ×Ñ˜˜1Ôà×&Ñ&¬&¯-©-¸
×8NÑ8NÓ*OÒOÐOÐOØ×&Ñ&¨*×*@Ñ*@Ò@Ð@Ð@Ø× Ñ   AÓ&¬&¯-©-¸
×8HÑ8HÈÈAÓ8NÓ*OÒOÐOÐOà×&Ñ&¬&¯-©-¸
×8NÑ8NÓ*OÒOÐOÐOØ×&Ñ&¨*×*@Ñ*@Ò@Ð@Ð@Ø× Ñ   AÓ&¬&¯-©-¸
×8HÑ8HÈÈAÓ8NÓ*OÒOÐOÑOrl   c                  óî   — d„ } t        ddd¬«      \  }}t        t        d¬«      ddd	gi| d
¬«      }d}t        j                  t
        |¬«      5  |j                  ||«       d d d «       y # 1 sw Y   y xY w)Nc                 ó
   — ddiS )NÚbad_namerƒ   r—   ©r¸  rs   rÈ   s      ri   Ú
bad_scorerzBtest_callable_multimetric_error_on_invalid_key.<locals>.bad_scorer÷  s   € Ø˜AˆÐrl   r†  r¸   r“  rK  r  rÉ   r  rƒ   Ú	good_namer�  z`For multi-metric scoring, the parameter refit must be set to a scorer key or a callable to refitr­   )r   r0   rL   r¯   r°   râ   ru   )rš  rs   rÈ   rã   rv  s        ri   Ú.test_callable_multimetric_error_on_invalid_keyrœ  õ  sz   € òô ¨¸ÈÔK�D€A€qÜ
Ü˜rÔ"Ø	ˆs�AˆhˆØØô	€Cð	,ð ô 
�‰”z¨Ô	-ñ Ø�‰��1Œ÷÷ ñ ús   ÁA+Á+A4c                  ón  — d„ } t        ddd¬«      \  }}t        «       }t        |dg d¢ig| dd	¬
«      }t        j                  dt        j
                  ¬«      }t        j                  t        |¬«      5  |j                  ||«       d d d «       t        |j                  d   g d¢«       y # 1 sw Y   Œ%xY w)Nc                 ó
   — ddiS ©Nr>  rƒ   r—   r™  s      ri   r…  zBtest_callable_multimetric_error_failing_clf.<locals>.custom_scorer	  ó   € Ø�qˆzÐrl   r€  r¨   r   rK  r†  rî  Fr  rï  zm5 fits failed.+total of 15.+The score on these train-test partitions for these parameters will be set to 0\.1rð  r­   Úmean_test_acc)rƒ   rƒ   r  )r   rç  r0   r]  rù  rú  r¯   r†  r    ru   rY   rß   )r…  rs   rÈ   rã   r,  rû  s         ri   Ú+test_callable_multimetric_error_failing_clfr¢  
	  s©   € òô ¨¸ÈÔK�D€A€qä
Ó
€CÜ	ØØ
’yÐ	!Ð"ØØØô
€Bô —j‘jð	Kä�i‰iô€Oô
 
�‰Ô&¨oÔ	>ñ Ø
�‰ˆq�!Œ÷ô �B—N‘N ?Ñ3²[ÕA÷ð ús   Á4B+Â+B4c                  ób  — 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  |j                  ||«       d d d «       y # 1 sw Y   y xY w)Nc                 ó
   — ddiS rŸ  r—   r™  s      ri   r…  zBtest_callable_multimetric_clf_all_fits_fail.<locals>.custom_scorer(	  r   rl   r€  r¨   r   rK  r†  r·   Fr  rï  z1ValueError: Failing classifier failed as requiredz5All the 15 fits failed.+your model is misconfigured.+rð  r­   r   )r…  rs   rÈ   rã   r,  Úindividual_fit_error_messager³   s          ri   Ú+test_callable_multimetric_clf_all_fits_failr¦  &	  s³   € òô ¨¸ÈÔK�D€A€qä
Ó
€Cä	ØØ
Ô)×;Ñ;Ð<¸qÑ@Ð	AÐBØØØô
€Bð $WÐ Ü—J‘JàCØ+Ð,ð.ô �i‰iô€Mô 
�‰”z¨Ô	7ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   Â	B%Â%B.c                  ó>  — d} t        | ¬«      \  }}t        «       }dddgi}t        ||«      }t        ||d¬«      }t	        |d«      rJ ‚t	        |d«      rJ ‚|j                  ||«       |j                  ||«       |j                  | k(  sJ ‚|j                  | k(  sJ ‚y )Nr¸   ©rL  Úmax_iterr·   rƒ   r©   Ún_features_in_)r   r   r0   r:   rì   ru   rª  )rL  rs   rÈ   Úgbdtrî   r,  r¾  s          ri   Útest_n_features_inr¬  D	  s«   € ð €JÜ¨*Ô5�D€A€qÜ)Ó+€DØ˜q !˜fÐ%€JÜ	�d˜JÓ	'€BÜ	˜D *°QÔ	7€BÜ�rÐ+Ô,Ð,Ð,Ü�rÐ+Ô,Ð,Ð,Ø‡F�Fˆ1ˆa„LØ‡F�Fˆ1ˆa„LØ×Ñ 
Ò*Ð*Ð*Ø×Ñ 
Ò*Ð*Ñ*rl   Úpairwisec                 ó´   ‡ —  G ˆ fd„dt         «      } |«       }d}t        |ddgi«      }‰ |j                  «       j                  j                  k(  sJ |«       ‚y)zë
    Test implementation of BaseSearchCV has the pairwise tag
    which matches the pairwise tag of its estimator.
    This test make sure pairwise tag is delegated to the base estimator.

    Non-regression test for issue #13920.
    c                   ó"   •‡ — e Zd Zˆ ˆfd„Zˆ xZS )úStest_search_cv_pairwise_property_delegated_to_base_estimator.<locals>.TestEstimatorc                 óF   •— t         ‰| �  «       }‰|j                  _        |S re   )r:  Ú__sklearn_tags__Ú
input_tagsr­  )rh   Útagsr{  r­  s     €€ri   r²  zdtest_search_cv_pairwise_property_delegated_to_base_estimator.<locals>.TestEstimator.__sklearn_tags__`	  s!   ø€ Ü‘7Ñ+Ó-ˆDØ'/ˆD�O‰OÔ$ØˆKrl   )r�   r‘   r’   r²  rB  )r{  r­  s   @€ri   ÚTestEstimatorr°  _	  s   ù„ ÷	ñ 	rl   rµ  z.BaseSearchCV pairwise tag must match estimatorr¥  r¨   N)r   r0   r²  r³  r­  )r­  rµ  r¸  Úattr_messagerØ   s   `    ri   Ú<test_search_cv_pairwise_property_delegated_to_base_estimatorr·  U	  sX   ø€ öœô ñ ‹/€CØC€LÜ	�c˜M¨B¨4Ð0Ó	1€BØ�r×*Ñ*Ó,×7Ñ7×@Ñ@Ò@ÐNÀ,ÓNÑ@rl   c                  óà   —  G d„ dt         «      }  | «       }d}dD ]Q  }|j                  |¬«       t        |ddgi«      }||j                  «       j                  j
                  k(  rŒLJ |«       ‚ y)	zð
    Test implementation of BaseSearchCV has the pairwise property
    which matches the pairwise tag of its estimator.
    This test make sure pairwise tag is delegated to the base estimator.

    Non-regression test for issue #13920.
    c                   ó&   ‡ — e Zd Zdd„Zˆ fd„Zˆ xZS )úXtest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwisec                 ó   — || _         y re   ©r­  )rh   r­  s     ri   rj   zatest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwise.__init__u	  s	   € Ø$ˆD�Mrl   c                 óZ   •— t         ‰| �  «       }| j                  |j                  _        |S re   )r:  r²  r­  r³  )rh   r´  r{  s     €ri   r²  zitest_search_cv__pairwise_property_delegated_to_base_estimator.<locals>.EstimatorPairwise.__sklearn_tags__x	  s%   ø€ Ü‘7Ñ+Ó-ˆDØ'+§}¡}ˆD�O‰OÔ$ØˆKrl   )T)r�   r‘   r’   rj   r²  rB  rP  s   @ri   ÚEstimatorPairwiserº  t	  s   ø„ ó	%÷	ð 	rl   r¾  z4BaseSearchCV _pairwise property must match estimatorra  r¼  r¥  r¨   N)r   r�   r0   r²  r³  r­  )r¾  r¸  r¶  Ú_pairwise_settingrØ   s        ri   Ú=test_search_cv__pairwise_property_delegated_to_base_estimatorrÀ  k	  s|   € ôœMô ñ Ó
€CØI€Là*ò 
ÐØ�‰Ð 1ˆÔ2Ü˜# °¨tÐ4Ó5ˆØ  B×$7Ñ$7Ó$9×$DÑ$D×$MÑ$MÓMð 	
Øó	
ÐMñ
rl   c                  ót  — d} d}t        | d¬«      \  }}ddgi}t        «       }t        |||¬«      }|j                  ||«       |j	                  |«      }t        |«      }t        d¬	«      }t        |||¬«      }|j                  ||«       |j	                  |«      }	d
}
||	k(  j                  «       sJ |
«       ‚y)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é   ru  )Úmetricz2GridSearchCV not identical with precomputed metricN)r   rC   r0   ru   r{   r/   r  )r  r$  rs   rÈ   Úgrid_paramsrã   rØ   Úpreds_originalÚX_precomputedÚpreds_precomputedr¶  s              ri   Ú;test_search_cv_pairwise_property_equivalence_of_precomputedrÇ  ˆ	  s¿   € ð €IØ€HÜ¨ÀÔC�D€A€qØ  2 $Ð'€Kô Ó
 €CÜ	�c˜;¨8Ô	4€BØ‡F�Fˆ1ˆa„LØ—Z‘Z “]€Nô (¨Ó*€MÜ
 mÔ
4€CÜ	�c˜;¨8Ô	4€BØ‡F�Fˆ=˜!ÔØŸ
™
 =Ó1ÐàG€LØÐ/Ñ/×4Ñ4Ô6ÐD¸ÓDÑ6rl   zSearchCV, param_searchr  r  r•  r·   c                 óÄ   —  G d„ dt         t        «      } |  |«       |«      }t        d¬«      \  }}|j                  ||d¬«       |j                  j
                  dk(  sJ ‚y )Nc                   ó"   — e Zd Zdd„Zdd„Zd„ Zy)ú,test_scalar_fit_param.<locals>.TestEstimatorNc                 ó   — || _         y re   )r  )rh   r  s     ri   rj   z5test_scalar_fit_param.<locals>.TestEstimator.__init__¯	  s	   € ØˆD�Frl   c                 ó   — || _         y re   )Úr_)rh   rs   rÈ   Úrs       ri   ru   z0test_scalar_fit_param.<locals>.TestEstimator.fit²	  s	   € ØˆD�Grl   c                 ó@   — t        j                  t        |«      ¬«      S )Nrx   )ro   rþ   rn   r}   s     ri   r{   z4test_scalar_fit_param.<locals>.TestEstimator.predictµ	  s   € Ü—8‘8¤3 q£6Ô+Ð+rl   re   ©r�   r‘   r’   rj   ru   r{   r—   rl   ri   rµ  rÊ  ®	  s   „ ó	ó	ó	,rl   rµ  r“  r  )rÎ  )r   r   r   ru   rÞ   rÍ  )rñ   Úparam_searchrµ  Úmodelrs   rÈ   s         ri   Útest_scalar_fit_paramrÓ  ¦	  sZ   € ô,œ¬ô ,ñ ‘]“_ lÓ3€EÜ¨BÔ/�D€A€qØ	‡I�Iˆa��b€IÔØ× Ñ ×#Ñ# rÒ)Ð)Ñ)rl   c                 ó°   — t        t        d¬«      ddiŽ\  }}}} G d„ dt        «      }d„ } |  |«       |«      }||f|ddœ}	 |j                  ||fi |	¤Ž y )Nr“  r  r  c                   ó(   ‡ — e Zd Z	 	 	 	 dˆ fd„	Zˆ xZS )ú9test_scalar_fit_param_compat.<locals>._FitParamClassifierc                 óÈ   •— t         ‰| �  |||¬«       |dkD  sJ ‚t        |«      sJ ‚t        |t        «      sJ ‚|d   j
                  dk(  sJ ‚|d   j
                  dk(  sJ ‚| S )Nr‚  r   r    rƒ   )r:  ru   ÚcallablerË   rÀ   Úndim)rh   rs   rÈ   rƒ  Útuple_of_arraysÚscalar_paramÚcallable_paramr{  s          €ri   ru   z=test_scalar_fit_param_compat.<locals>._FitParamClassifier.fitÑ	  s|   ø€ ô ‰G‰K˜˜1¨MˆKÔ:Ø !Ò#Ð#Ð#Ü˜NÔ+Ð+Ð+ô ˜o¬uÔ5Ð5Ð5Ø" 1Ñ%×*Ñ*¨aÒ/Ð/Ð/Ø" 1Ñ%×*Ñ*¨aÒ/Ð/Ð/ØˆKrl   ©NNNN)r�   r‘   r’   ru   rB  rP  s   @ri   Ú_FitParamClassifierrÖ  Ð	  s   ø„ ð
 Ø ØØ÷	ñ 	rl   rÞ  c                   ó   — y re   r—   r—   rl   ri   Ú_fit_param_callablez9test_scalar_fit_param_compat.<locals>._fit_param_callableä	  s   € Ørl   )rÚ  rÜ  rÛ  )r=   r   r'   ru   )
rñ   rÑ  ÚX_trainÚX_validr{  Úy_validrÞ  rà  rÒ  rO  s
             ri   Útest_scalar_fit_param_compaträ  ¾	  sx   € ô *:Ü	¨"Ô	-ð*Ø<>ñ*Ñ&€GˆW�g˜wôœmô ò(ñ Ñ(Ó*¨LÓ9€Eð $ WÐ-Ø-Øñ€Jð
 €E‡I�Iˆg�wÑ- *Ó-rl   z)ignore:The total space of parameters 4 isÚ	Predictorc                 óÞ  — t         j                  j                  d«      }|j                  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                  ||«       |j                  j                  «       |j                  «       k(  sJ ‚|j                  |«      }t        |«      rAt        |d«       |j                  ||«      t        j                  t!        ||«      «      k(  sJ ‚y t#        ||j%                  «       «       |j                  ||«      t        j                  t'        ||«      «      k(  sJ ‚y )Nr   é   r    rô   rƒ   r€  ÚtransformerÚ	predictorr¨   )Útransformer__paramÚpredictor__paramarö   rÿ  )ro   r'  r(  Úrandnrû   rE   rW   ru   r  r—  r{   r   r]   r†   r¯   rM  r(   rY   rd  r,   )	rñ   rå  r)  rs   rÈ   rÒ  rŒ   r_  re  s	            ri   Ú1test_search_cv_using_minimal_compatible_estimatorrí  ø	  sB  € ô �)‰)×
Ñ
 Ó
"€CØ�9‰9�R˜ÓœRŸX™X q c¨A¡g°°°b±Ñ&8Ó9€q€AäØ
Ô+Ó-Ð	.°¹i»kÐ0JÐKó€Eð
  ! "˜gØ ˜Wñ€Fñ �e˜V°Ô9€FØ
‡J�Jˆq�!Ôà×Ñ×#Ñ#Ó%¨¯©«Ò6Ð6Ð6à�^‰^˜AÓ€FÜ�VÔÜ˜6 1Ô%Ø�|‰|˜A˜qÓ!¤V§]¡]´>À!ÀVÓ3LÓ%MÒMÐMÑMä˜ §¡£Ô)Ø�|‰|˜A˜qÓ!¤V§]¡]´8¸A¸vÓ3FÓ%GÒGÐGÑGrl   c                 ó>  — t        dddd¬«      \  }}t        d¬«      }ddgi}t        ||d	d
d
|¬«      j                  ||«       | j	                  «       j
                  }|rt        j                  d|«      }nt        j                  d|«      }t        |«      d
k(  sJ ‚y)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   rL   r0   ru   Ú
readouterrÚoutr]  Úfindallrn   )Úcapsysr-  rs   rÈ   rã   r¤   Úcapturedr®   s           ri   Útest_search_cv_verbose_3rô  
  sž   € ô ¨¸À#ÐTUÔV�D€A€qÜ
 Ô
#€CØ�#�ˆ<€DäØØØØØØ-ô÷ 
�cˆ!ˆQ„iØ× Ñ Ó"×&Ñ&€HÙÜ—
‘
ÐBÀHÓM‰ä—
‘
Ð+¨XÓ6ˆÜˆu‹:˜Š?Ð‰?rl   rî  c                 óR  — t        d¬«      \  }}t        «       gdgdœ}|d   d   j                  }t        dt	        «       fdg«      }||i} | |fd	d
ddœ|¤Žj                  ||«      }|d   d   j                  |k(  sJ ‚|j                  j                  d   j                  dk(  sJ ‚y )Nr“  r  r•  )rã   Úclf__Crã   r   Útrs)rã   NTr    r	  ©r3  rØ   rá   )r   rL   rÉ   rE   rW   ru   rÞ   Únamed_steps)	rñ   rÑ  rs   rÈ   rŒ   Úorig_Crí   Úparam_grid_searchr,  s	            ri   Útest_search_estimator_paramrü  /
  sÆ   € ô ¨BÔ/�D€A€qä“k�]¨t¨fÑ5€FØ�E‰]˜1Ñ×Ñ€Fä�eÔ/Ó1Ð2°MÐBÓC€Dà% vÐ.ÐÙ	�$Ð	R˜d q°*Ñ	RÐ@QÑ	R×	VÑ	VØ	ˆ1ó
€Bð
 �%‰=˜Ñ×Ñ Ò'Ð'Ð'à×Ñ×)Ñ)¨%Ñ0×2Ñ2°dÒ:Ð:Ñ:rl   c            	      ó^  — dddœ} t        dt        «       fdt        «       fg«      }t        || dddd	d¬
«      }g d¢}g d¢}|j	                  ||«       |j
                  d   }t        j                  dt        ¬«      }g d¢|d d  t        j                  j                  |j                  |«       y )N)r~  ©rƒ   r    )Úl1Úl2)Úvect__ngram_rangeÚ
vect__normÚvectrã   r·   r   r    rƒ   )rç  rî  rª   r  r[  rÙ   rØ   )Úoner  ÚthreeÚfourÚfive)r   r   rƒ   r   rƒ   Úparam_vect__ngram_rangerH  )rþ  rþ  r~  )rE   r"   rA   r:   ru   rß   ro   rÓ   Úobjectrn  r]   rà   )Úparameter_gridÚpipeliner6  Ú
data_trainÚdata_targetÚresultÚexpected_datas          ri   Útest_search_with_2d_arrayr  M
  s·   € ð .Ø"ñ€Nô à”_Ó&Ð'Ø”L“NÐ#ð	
ó€Hô 'ØØ*ØØØØØô€Mò 9€JÚ!€KØ×Ñ�j +Ô.Ø×&Ñ&Ð'@ÑA€FÜ—H‘H˜Q¤fÔ-€MÚ/€M‘!ÐÜ‡J�J×!Ñ! &§+¡+¨}Õ=rl   c                  ól  — t        d¬«      \  } }t        dt        «       fdt        «       fg«      }dt        «       t	        «       gi}t        ||d¬«      }t        d¬«      5  |j                  «       }d	|v sJ ‚	 d
d
d
«       |j                  | |«       t        d¬«      5  |j                  «       }d	|v sJ ‚	 d
d
d
«       t        ||d¬«      }|j                  | |«       t        d¬«      5  |j                  «       }d	|vsJ ‚d|v sJ ‚	 d
d
d
«       y
# 1 sw Y   ŒšxY w# 1 sw Y   ŒhxY w# 1 sw Y   y
xY w)z5Test different HTML representations for GridSearchCV.r“  r  r>  rã   F)rî   r3  Údiagram)Údisplayz<div>DummyClassifier</div>NTz<div>LogisticRegression</div>)	r   rE   rJ   r   r%   r0   r   Ú_repr_html_ru   )rs   rÈ   r  rî   r¤  Ú	repr_htmls         ri   Útest_search_html_reprr  k
  sA  € ä¨BÔ/�D€A€qä˜'¤>Ó#3Ð4°u¼oÓ>OÐ6PÐQÓR€HØœ/Ó+Ô-?Ó-AÐBÐC€Jô ˜X°*ÀEÔJ€IÜ	 	Ô	*ñ 9Ø×)Ñ)Ó+ˆ	Ø+¨yÑ8Ð8Ñ8÷9ð
 ‡M�M�!�QÔÜ	 	Ô	*ñ 9Ø×)Ñ)Ó+ˆ	Ø+¨yÑ8Ð8Ñ8÷9ô
 ˜X°*ÀDÔI€IØ‡M�M�!�QÔÜ	 	Ô	*ñ <Ø×)Ñ)Ó+ˆ	Ø+°9Ñ<Ð<Ð<Ø.°)Ñ;Ð;Ñ;÷<ð <÷9ð 9ú÷9ð 9ú÷<ð <ús$   Á!DÂDÃ+D*ÄDÄD'Ä*D3)Úenable_metadata_routingc           	      óÎ  — t        d¬«      \  }}t        |«      }t        j                  j	                  d«      }|j                  |«      }|j                  |«      }t        «       }|ddgii}	t        «       }
t        |
¬«      j                  dd¬	«      }t        |d
¬«      } | |fd
d|dœ|	¤Žj                  ||||¬«       t        |
«      sJ ‚|
D ]  }t        |ddd	||¬«       Œ y)zMTest that *SearchCV forwards metadata correctly when passed multiple metrics.r“  r  r   rÉ   rƒ   )ÚregistryÚscore_weightsÚscore_metadata)rƒ  Úmetadatar	  )Ú	my_scorerr	  r    rø  )r  r  r†   Ú_score)Úobjrw  ÚparentÚsplit_paramsrƒ  r  N)r   ra   ro   r'  r(  r‘  rL   rN   rM   Úset_score_requestrà  ru   rn   rO   )rñ   rÑ  rs   rÈ   r  r)  r  r  r¸  rû  Úscorer_registryÚscorerrá   Ú_scorers                 ri   Ú*test_multi_metric_search_forwards_metadatar&  ‹
  s  € ô ¨BÔ/�D€A€qÜ˜Q“€IÜ
�)‰)×
Ñ
 Ó
"€CØ—H‘H˜YÓ'€MØ—X‘X˜iÓ(€Nä
‹+€CØ%¨¨a¨S zÐ2Ðä“k€OÜ oÔ6×HÑHØ%Ð0@ð Ió €Fô ˜V¨jÔ9€GÙˆSÐO˜
 q°'ÑOÐ=NÑO×SÑSØ	ˆ1˜M¸.ð Tô ô ˆÔÐÐØ"ò 
ˆÜØØØØ6Ø'Ø#ö	
ñ
rl   c                 ó  — t        d¬«      \  }}t        «       }|ddgii} | |fddi|¤Žj                  ||«      }t        j                  t
        d¬«      5  |j                  ||d¬	«       d
d
d
«       y
# 1 sw Y   y
xY w)z{*SearchCV should reject **params when metadata routing is not enabled
    since this is added only when routing is enabled.r“  r  rÉ   rƒ   rØ   r    zis only supported ifr­   )r  N)r   rL   ru   r¯   r°   râ   r†   )rñ   rÑ  rs   rÈ   r¸  rû  r,  s          ri   Ú1test_score_rejects_params_with_no_routing_enabledr(  ²
  s‚   € ô ¨BÔ/�D€A€qÜ
‹+€CØ%¨¨a¨S zÐ2Ðá	�#Ñ	1˜!Ð	1Ð0Ñ	1×	5Ñ	5°a¸Ó	;€Bä	�‰”zÐ)?Ô	@ñ #Ø
�‰��A ˆÔ"÷#÷ #ñ #ús   ÁA5Á5A>c                  ó,  —  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¬«      \  }}|j                  ||«       |D ]'  }|j                  d|› �   j                  t        k(  rŒ'J ‚ y)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y)ú8test_cv_results_dtype_issue_29074.<locals>.MetaEstimatorNc                 óJ   — || _         || _        || _        || _        || _        y re   )Úbase_clfÚ
parameter1Ú
parameter2Ú
parameter3Ú
parameter4)rh   r-  r.  r/  r0  r1  s         ri   rj   zAtest_cv_results_dtype_issue_29074.<locals>.MetaEstimator.__init__Ï
  s'   € ð %ˆDŒMØ(ˆDŒOØ(ˆDŒOØ(ˆDŒOØ(ˆD�Orl   c                 ó>   — | j                   j                  ||«       | S re   )r-  ru   rŠ  s      ri   ru   z<test_cv_results_dtype_issue_29074.<locals>.MetaEstimator.fitÝ
  s   € Ø�M‰M×Ñ˜a Ô#ØˆKrl   c                 ó:   — | j                   j                  ||«      S re   )r-  r†   rŠ  s      ri   r†   z>test_cv_results_dtype_issue_29074.<locals>.MetaEstimator.scoreá
  s   € Ø—=‘=×&Ñ& q¨!Ó,Ð,rl   rÝ  re   )r�   r‘   r’   rj   ru   r†   r—   rl   ri   ÚMetaEstimatorr+  Î
  s   „ ð ØØØó	)ó	ó	-rl   r4  NÚoptionÚAÚBrƒ   r    r  Ústr1Ústr2)r.  r/  r0  r1  r·   r  r   r  Úparam_)	r   r   r0   r%   r   ru   rß   r  r	  )r4  rî   rä   rs   rÈ   rú  s         ri   Ú!test_cv_results_dtype_issue_29074r;  Ë
  sº   € ô-œ¤ô -ð2 ˜h¨˜_¨x¸¨oÐ>Ø˜a ˜V�nØ˜Q�x�jØ˜vÐ&ñ	€Jô ÙÔ 2Ó 4Ó5ØØô€Kô  1Ô%�D€A€qØ‡O�O�A�qÔØò IˆØ×&Ñ&¨°¨wÐ'7Ñ8×>Ñ>Ä&ÓHÐHÐHñIrl   c                  ó²  — t        j                  d«      } | j                  g d¢g d¢g d¢dœ«      }|j                  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                  ||«       |j                  d   j                  t        k(  sJ ‚y)zNCheck cv_results_ for estimators with a `dtype` parameter, e.g. OneHotEncoder.rÐ  )rƒ   r    r·   r¸   rô   )r  r  r  r  r  )r„   gffffff@r1  g      @r„   )Ú	numeric_1Úobject_1Útargetr?  rƒ   r©  ÚencF)Úsparse_outputr>  Úpassthrough)Ú	remainderrè   Úenc__encr    ré   Úparam_enc__encN)r¯   ÚimportorskiprÇ  Údropr   rG   rE   r$   rH   r0   ru   rß   r  r	  )ÚpdÚdfrs   rÈ   r@  rí   rÃ  rä   s           ri   Ú'test_search_with_estimators_issue_29157rJ  ø
  sí   € ä	×	Ñ	˜XÓ	&€BØ	�‰â(Ú1Ú/ñ	
ó
€Bð 	�‰�˜qˆÓ!€AØ
ˆ8‰€AÜ
Ø
”¨UÔ3°j°\Ð	BÐCØô€Cô à�CˆLØÔ*Ó,Ð-ð	
ó€Dð 	Ü¨Ô.ÜÓð
ð€Kô ˜t [°QÔ7€KØ‡O�O�A�qÔØ×"Ñ"Ð#3Ñ4×:Ñ:¼fÒDÐDÑDrl   c                  ó¬  — d} t        d¬«      \  }}t        t        d¬«      t        «       «      }dD �cg c]  }| |z  ‘Œ	 }}|D �cg c];  }t	        j
                  dt        j                  dz  |«      j                  d| f«      ‘Œ= }}t        |d	|i¬
«      }|j                  ||«       |j                  d   j                  t        k(  sJ ‚yc c}w c c}w )zwCheck that GridSearchCV works with params that are arrays of different sizes.

    Non-regression test for #29277.
    r¨   r¨  Úperiodic)Úextrapolation)r¨   r±  é   r   r    rž   Úsplinetransformer__knotsry  Úparam_splinetransformer__knotsN)r   rF   rI   r%   ro   ÚlinspaceÚpirú   r0   ru   rß   r  r	  )	rL  rs   rÈ   Úspline_reg_piper¥   Ún_knots_listÚn_knotsÚ
knots_listÚspline_reg_pipe_cvs	            ri   Ú test_cv_results_multi_size_arrayrX    så   € ð
 €JÜ¨"Ô-�D€A€qä#Ü¨
Ô3ÜÓó€Oð
 -9Ö9 q�J “NÐ9€LÐ9ð $öàô 	�‰�A”r—u‘u˜q‘y 'Ó*×2Ñ2°B¸
Ð3CÕDð€Jð ô &Ø!à&¨
ð
ôÐð ×Ñ˜1˜aÔ à×&Ñ&Ð'GÑH×NÑNÔRXÒXðÙXùò :ùòs   ´CÁA Cz(array_namespace, device_name, dtype_namec                 óÔ  — t        |||«      \  }}t        j                  d«      j                  d«      }|j	                  |«      }|j                  ||¬«      }t        j                  dgdz  dgdz  z   «      }	|j                  |	|¬«      }
t        d¬«      5   | t        «       d	g d
¢idd¬«      }|j                  ||
«       |j                  ||
«       d d d «       y # 1 sw Y   y xY w)Nró   )r¨   r¨   )Údevicer   rô   rƒ   T)Úarray_api_dispatchÚtol)r•  r±  g-Cëâ6?gñhãˆµøä>g�íµ ÷Æ°>gH¯¼šò×z>r    rö   r÷   )rX   ro   rù   rú   ÚastypeÚasarrayrû   r   r   ru   r†   )rñ   Úarray_namespaceÚdevice_nameÚ
dtype_nameÚxprZ  rs   ÚX_npÚX_xpÚy_npÚy_xprÿ   s               ri   Ú#test_array_api_search_cv_classifierrg  8  sÛ   € ô & o°{ÀJÓO�J€Bˆä
�	‰	�#‹×Ñ˜xÓ(€AØ�8‰8�JÓ€DØ�:‰:�d 6ˆ:Ó*€Dô �8‰8�Q�C˜!‘G˜q˜c A™gÑ%Ó&€DØ�:‰:�d 6ˆ:Ó*€Dä	¨4Ô	0ñ #ÙÜ&Ó(ØÒ8Ð9ØØô	
ˆð 	�‰�T˜4Ô Ø�‰�t˜TÔ"÷#÷ #ñ #ús   Â=CÃC')r6  r  rþ  )r·   r¸   )Úcandidate_paramsÚexpectedÚ	param_foozsimple numeric, single param)Úidr¼   r¶   Ú	param_bar)r·   r¸   r   )FFTr@  z1simple numeric, one param is missing in one roundrH  zlists of different lengthszlists tuplesr¶  c                 óL  — t        t        | «      «      }t        ||«      D ]�  \  \  }}\  }}||k(  sJ ‚|j                  |j                  k(  sJ ‚t        j
                  j                  ||«       t        j
                  j                  |j                  |j                  «       Œƒ y re   )r¢   r?   rq  r  ro   rn  r]   r6  )rh  ri  r  rš  rA  Úexpected_keyÚexpected_values          ri   Ú&test_yield_masked_array_for_each_paramrp  a  s”   € ôl Ô4Ð5EÓFÓG€FÜ8;¸FÀHÓ8Mò GÑ4‰ˆˆeÑ4�| ^Ø�lÒ"Ð"Ð"Ø�{‰{˜n×2Ñ2Ò2Ð2Ð2Ü
�
‰
×%Ñ% e¨^Ô<Ü
�
‰
×%Ñ% e§j¡j°.×2EÑ2EÕFñ	Grl   c                  óð   — t        d«      D � cg c]  } d| i‘Œ }} t        j                  «       5  t        j                  dt        «       t        t        |«      «       d d d «       y c c} w # 1 sw Y   y xY w)Nr  rú  Úerror)r£   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr¢   r?   )r¥   rh  s     ri   Ú*test_yield_masked_array_no_runtime_warningrw  Ÿ  sm   € ä.3°D«kÖ:¨˜ !šÐ:ÐÐ:Ü	×	 Ñ	 Ó	"ñ CÜ×Ñ˜g¤~Ô6ÜÔ/Ð0@ÓAÔB÷Cð Cùò ;÷Cð Cús   ŽA'¯/A,Á,A5c                 óè   — t         | «       dg d¢id|¬«      t         | «       dt        dd«      idd|d¬	«      t         | «       dg d¢idd
|¬«      t	         | «       dt        dd«      idd
|d¬«      gS )Nr©  r¶   r    ©rØ   rá   rƒ   r¸   r·   r“  )rØ   rª   rá   r  T)rØ   Úaggressive_eliminationrá   )rØ   rz  rá   r  )r0   r:   r   r3   r4   )rç  rá   s     ri   Ú_searchcv_callback_test_casesr{  §  s‘   € ä‘Y“[ :ªyÐ"9¸aÈÔQÜÙ‹KØœ  A›Ð'ØØØØô	
ô 	Ù‹KØšÐ#ØØ#'Øô	
ô 	Ù‹KØœ  A›Ð'ØØ#'ØØô	
ð#ð rl   r3  r_  r	  c                 óR  ‡
— t        «       t        «       g} t        | «      j                  |¬«      j                  |Ž j                  t        t        «      } d}d}| j                  Š
d| j                  j                  v r9| j                  }t        ˆ
fd„| j                  D «       «      }|||z   z   |z   |z   }nd}|‰
z  }|||z   z   |z   }|D ]Z  }	|	j                  d«      dk(  sJ ‚|	j                  d«      |k(  sJ ‚|	j                  d«      |k(  sJ ‚|	j                  d	«      dk(  rŒZJ ‚ y
)zLCheck number of hook calls when the sub-estimator doesn't support callbacks.r2  rƒ   ÚHalvingc              3   ó(   •K  — | ]	  }|‰z  –— Œ y ­wre   r—   ©rÃ   r  r$  s     €ri   rÅ   z7test_search_callbacks_no_propagation.<locals>.<genexpr>Ö  ó   øè ø€ ÒQ°&˜F XÕ-ÑQùó   ƒr·   ÚsetupÚon_fit_task_beginÚon_fit_task_endÚteardownN)r   r   r   r�   Úset_callbacksru   rs   rÈ   rL  r{  r�   Ún_iterations_ÚsumÚn_candidates_Úcount_hooks)r_  r3  Ú	callbacksÚrootÚsearch_taskÚn_halving_roundsÚn_evaluationsri  r8  Úcallbackr$  s             @ri   Ú$test_search_callbacks_no_propagationr‘  Ä  sJ  ø€ ô #Ó$Ô&EÓ&GÐH€IØ@ŒU�6‹]×%Ñ%¨EÐ%Ó2×@Ñ@À)ÐL×PÑPÔQRÔTUÓV€Fð €DØ€KØ×Ñ€Hà�F×$Ñ$×-Ñ-Ñ-Ø!×/Ñ/ÐÜÓQ¸F×<PÑ<PÔQÓQˆØ˜;¨Ñ.Ñ/Ð2BÑBÀ]ÑR‰àˆØ$ xÑ/ˆØ˜;¨Ñ.Ñ/°-Ñ?ˆð ò 5ˆØ×#Ñ# GÓ,°Ò1Ð1Ð1Ø×#Ñ#Ð$7Ó8¸HÒDÐDÐDØ×#Ñ#Ð$5Ó6¸(ÒBÐBÐBØ×#Ñ# JÓ/°1Ó4Ð4Ð4ñ	5rl   Úr2c                 ób  ‡— t        «       t        «       g} t        | «      j                  |¬«      j                  |Ž j                  t        t        «      } d}d}| j                  Šd| j                  j                  v r9| j                  }t        ˆfd„| j                  D «       «      }|||z   z   |z   |z   }nd}|‰z  }|||z   z   |z   }|D ]â  }	|	j                  d«      dk(  sJ ‚|	j                  j                  dk(  r,|	j                  d«      |k(  sJ ‚|	j                  d	«      |k(  sqJ ‚t        ˆfd
„| j                  d   D «       «      }
|r| j                   j"                  nd}||
z   |z   }|	j                  d«      |k(  sJ ‚|	j                  d	«      |k(  sJ ‚|	j                  d«      dk(  rŒâJ ‚ y)zICheck number of hook calls when the sub-estimator does support callbacks.r2  rƒ   r}  c              3   ó(   •K  — | ]	  }|‰z  –— Œ y ­wre   r—   r  s     €ri   rÅ   z4test_search_callbacks_propagation.<locals>.<genexpr>÷  r€  r�  r·   r‚  r   rƒ  r„  c              3   óH   •K  — | ]  }t        ‰«      D ]	  }|d    –— Œ Œ y­w)r©  N)r£   )rÃ   rÄ   rê  r$  s      €ri   rÅ   z4test_search_callbacks_propagation.<locals>.<genexpr>	  s6   øè ø€ ò %àÜ˜x›ò%ð ð �*•ð%Øñ%ùs   ƒ"rŒ   r   r…  N)r   r   r   r�   r†  ru   rs   rÈ   rL  r{  r�   r‡  rˆ  r‰  rŠ  rß   rÞ   Ún_iter_)r_  r3  r‹  rŒ  r�  rŽ  r�  Úsearchcv_tasksr8  r�  Úsearch_inner_tasksÚrefit_inner_tasksri  r$  s                @ri   Ú!test_search_callbacks_propagationrš  å  sá  ø€ ô #Ó$Ô&EÓ&GÐH€IØ@ŒU�6‹]×%Ñ%¨EÐ%Ó2×@Ñ@À)ÐL×PÑPÔQRÔTUÓV€Fð €DØ€KØ×Ñ€Hà�F×$Ñ$×-Ñ-Ñ-Ø!×/Ñ/ÐÜÓQ¸F×<PÑ<PÔQÓQˆØ ¨uÑ!4Ñ5Ð8HÑHÈ=ÑX‰àˆØ$ xÑ/ˆØ ¨uÑ!4Ñ5¸ÑEˆàò 5ˆØ×#Ñ# GÓ,°Ò1Ð1Ð1Ø×Ñ×&Ñ&Ð*=Ò=à×'Ñ'Ð(;Ó<ÀÒNÐNÐNØ×'Ñ'Ð(9Ó:¸nÒLÐLÐLô "%ó %à×+Ñ+¨HÑ5ô%ó "Ðñ
 CH × 6Ñ 6× >Ò >ÈQÐØ%Ð(:Ñ:Ð=NÑNˆHØ×'Ñ'Ð(;Ó<ÀÒHÐHÐHØ×'Ñ'Ð(9Ó:¸hÒFÐFÐFØ×#Ñ# JÓ/°1Ó4Ð4Ð4ñ)5rl   c                  ór  — t        «       } t        t        «       dg d¢idd¬«      j                  | «      }t        j
                  j                  d«      j                  ddt        j                  d   ¬«      }|j                  t        t        |¬	«       | j                  D �cg c]  }|d
   j                  dk(  r|‘Œ }}|sJ ‚| j                  D �cg c]  }|d
   j                  dk(  r|‘Œ }}|sJ ‚|D ]  }d|d   d   v rŒJ ‚ |D ]%  }d|d   d   v sJ ‚|d   d   d   }t        ||«       Œ' yc c}w c c}w )z”Test that `sample_weight` gets passed to `callback.on_fit_task_*`.

    Note this tests all *SearchCV classes that inherit from `BaseSearchCV`.
    r©  r¶   r    r	  ry  r   rô   rŒ  r‚  Úcontextzcandidate-split-evaluationzrefit-with-best-paramsrƒ  r<  r  N)r   r0   r   r†  ro   r'  r(  r   rÈ   ry   ru   rs   ÚrecordÚ	task_namer]   )r�  r_  rƒ  ÚentryÚevaluation_recordsÚrefit_recordsÚpassed_weightss          ri   Ú+test_search_callbacks_receive_sample_weightr£    so  € ô !Ó"€HÜÜÓ˜ZªÐ3¸À:ôç�m�HÓð ô —I‘I×)Ñ)¨!Ó,×4Ñ4°Q¸ÄÇÁÈÁ
Ð4ÓK€MØ
‡J�JŒq”! =€JÔ1ð —_‘_öàØ�Ñ×%Ñ%Ð)EÒEò 	ðÐð ñ
 ÐÐð —_‘_öàØ�Ñ×%Ñ%Ð)AÒAò 	ð€Mð ñ
 Ðˆ=à#ò >ˆØ %¨¡/°*Ñ"=Ò=Ð=Ð=ð>ð ò :ˆØ %¨¡/°*Ñ"=Ñ=Ð=Ð=Ø˜x™¨Ñ4°_ÑEˆÜ˜>¨=Õ9ñ:ùò!ùòs   Â!D/ÃD4c                 ó°   — t        «       }t        | «      j                  |«      j                  t        t
        «      } |j                  D ]  }|d   | u rŒJ ‚ y)zHTest that all hooks receive the search instance as `estimator` argument.rç  N)r   r   r†  ru   rs   rÈ   r�  )r_  r�  rŸ  s      ri   Ú-test_search_callbacks_receive_search_instancer¥  8  sS   € ô !Ó"€HÜ�6‹]×(Ñ(¨Ó2×6Ñ6´q¼!Ó<€Fà—‘ò ,ˆØ�[Ñ! VÒ+Ð+Ð+ñ,rl   c                  ó€  —  G d„ dt         t        «      } t        «       }t         | «       dddgiddd¬«      j	                  |«      }t        j                  t        d	¬
«      5  |j                  t        t        «       ddd«       d}|j                  d«      |k(  sJ ‚|j                  d«      |k(  sJ ‚y# 1 sw Y   Œ8xY w)zÈCheck callbacks hooks are called when some candidate fits fail.

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