
    /Цi5k                       S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  SSK	r
SSKrSSKJr  SSKJr  SSKJrJrJrJr  SSKJr  SS	KJrJrJrJrJrJr  SS
KJr  SSK J!r!  SSK"J#r#J$r$  SSK%J&r&  SSK'J(r(J)r)J*r*J+r+  SSK,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5  SSK6J7r7  SSK8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrG  SSKHJIrIJJrJJKrK  SSKLJMrM  SSKNJOrO  SSKPJQrQ  SSKRJSrS  SSKTJUrU  SSKVJWrW  SSKXJYrYJZrZ  SSK[J\r\J]r]  SSK^J_r_J`r`JaraJbrbJcrc  SSKdJere  SSKfJgrgJhrhJiriJjrj  SSKkJlrlJmrm  SSKnJoroJprpJqrqJrrrJsrs  SS KtJuruJvrv  SS!KwJxrx   " S" S#\5      ry " S$ S%\y5      rz " S& S'\5      r{ " S( S)\{5      r| " S* S+\\5      r}\
R                  " S,5      r\
GR                   " / S-Q5      r\
GR                   " / S.Q5      r\
GR                  " S/5      r\GR
                  GR                  S0\u5      S1 5       rS2 rS3 rS4 r\GR
                  GR                  S5S6S7/5      \GR
                  GR                  S8\v5      S5\4S9 j5       5       rS: rS; rS< rS= rS> rS? r\GR
                  GR                  S0\u5      S@ 5       rSA rSB rSC r\GR
                  GR                  S0\u5      SD 5       rSE rSF rSG rSH r\GR
                  GR                  S0\u5      SI 5       rSJ rSK rSL r\GR
                  GR                  S0\u5      SM 5       rSN rSO rSP r\GR
                  GR                  S0\u5      SQ 5       rSR rSS rST rSU rSV rSW rSX rSY rSZ rS[ rS\ rS] rS^ rS_ rS` rSa rSb rSc r\GR
                  GR                  S8\v5      Sd 5       rSe rSf rSg rSh rSi rSj rSk rSl rSm r " Sn So\!5      rSp rSq rSr rSs rSt rSu rSv rSw rSx r " Sy Sz\5      r\GR
                  GR                  S{\
GR                  S/5      S| 5       r\GR
                  GR                  S{\
GR                  S/5      S} 5       rS~ r\GR
                  GR                  S5      \GR
                  GR                  S{\
GR                  SS/5      S 5       5       r\GR
                  GR                  S5      \GR
                  GR                  S{\
GR                  SS/5      \GR
                  GR                  SS7S6/5      \GR
                  GR                  SS6S7/5      S 5       5       5       5       rS r\GR
                  GR                  SS6\SSSS4S7\7" \\S.S9SSSS4S6\7" \\S.S9SSSS4/5      S 5       rS rS rS rS rS r\GR
                  GR                  S\D0 4\C0 4\B0 4\E0 4\F0 4\GS\
GR                   " S/5      S.4/5      \" S7S9S 5       5       r\GR
                  GR                  S\D0 4\C0 4\B0 4\E0 4\F0 4\GS\
GR                   " S/5      S.4/5      \" S7S9S 5       5       r\GR
                  GR                  S\D0 4\C0 4\B0 4\E0 4\F0 4\GS\
GR                   " S/5      S.4/5      \" S7S9S 5       5       r\GR
                  GR                  S\D0 4\C0 4\B0 4\E0 4\F0 4\GS\
GR                   " S/5      S.4/5      \" S7S9S 5       5       r\" S7S9S 5       r\GR
                  GR                  S\)" 5       \" 5       /SS/S9\GR
                  GR                  S/ SQ5      \GR
                  GR                  S\j" 5       \iS9S 5       5       5       rg)zTest the validation module    N)partial)sleep)issparse)config_context)BaseEstimatorClassifierMixincloneis_classifier)KMeans)load_diabetesload_digits	load_irismake_classificationmake_multilabel_classificationmake_regression)LinearDiscriminantAnalysis)RandomForestClassifier)FitFailedWarningUnsetMetadataPassedError)SimpleImputer)LogisticRegressionRidgeRidgeClassifierSGDClassifier)	accuracy_scorecheck_scoringconfusion_matrixexplained_variance_scoremake_scorermean_squared_errorprecision_recall_fscore_supportprecision_scorer2_score)_MultimetricScorer)GridSearchCV
GroupKFoldGroupShuffleSplitKFoldLeaveOneGroupOutLeaveOneOutLeavePGroupsOutShuffleSplitStratifiedKFoldcross_val_predictcross_val_scorecross_validatelearning_curvepermutation_test_scorevalidation_curve)_check_is_permutation_fit_and_score_score)OneTimeSplitter)FailingClassifier)OneVsRestClassifier)KNeighborsClassifier)MLPRegressor)Pipeline)LabelEncoderscale)SVC	LinearSVC)ConsumingClassifierConsumingScorerConsumingSplitter	_Registrycheck_recorded_metadata)shuffle)_atol_for_type_convert_to_numpy_get_namespace_device_dtype_ids)yield_namespace_device_dtype_combinations)CheckingClassifierMockDataFrame)_array_api_for_testsassert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equal)COO_CONTAINERSCSR_CONTAINERS)_num_samplesc                   >    \ rS rSrSrS rS
S jrS rSS jrS r	S	r
g)MockImprovingEstimatorg   z+Dummy classifier to test the learning curvec                 ,    Xl         SU l        S U l        g Nr   )n_max_train_sizestrain_sizesX_subset)selfrZ   s     l/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/sklearn/model_selection/tests/test_validation.py__init__MockImprovingEstimator.__init__j   s    !2    Nc                 :    Xl         UR                  S   U l        U $ rY   r\   shaper[   r]   r\   y_subsets      r^   fitMockImprovingEstimator.fito        #>>!,ra   c                     [         eNNotImplementedErrorr]   Xs     r^   predictMockImprovingEstimator.predictt       !!ra   c                     U R                  U5      (       a%  S[        U R                  5      U R                  -  -
  $ [        U R                  5      U R                  -  $ )Ng       @)_is_training_datafloatr[   rZ   r]   ro   Ys      r^   scoreMockImprovingEstimator.scorew   sP    !!!$$t//043I3IIII))*T-C-CCCra   c                     XR                   L $ rk   r\   rn   s     r^   rt   (MockImprovingEstimator._is_training_data~       MM!!ra   )r\   rZ   r[   rk   NN__name__
__module____qualname____firstlineno____doc__r_   rg   rp   rx   rt   __static_attributes__ ra   r^   rV   rV   g   s    5

"D"ra   rV   c                   @   ^  \ rS rSrSrSU 4S jjrS rSS jrSrU =r	$ )!MockIncrementalImprovingEstimator   z*Dummy classifier that provides partial_fitc                 >   > [         TU ]  U5        S U l        X l        g rk   )superr_   xexpected_fit_params)r]   rZ   r   	__class__s      r^   r_   *MockIncrementalImprovingEstimator.__init__   s    *+#6 ra   c                      U R                   U;   $ rk   r   rn   s     r^   rt   3MockIncrementalImprovingEstimator._is_training_data   s    vv{ra   c                    U =R                   UR                  S   -  sl         US   U l        U R                  (       a  [	        U R                  5      [	        U5      -
  nU(       a  [        S[        U5       S35      eUR                  5        HU  u  pVXPR                  ;   d  M  [        U5      [        U5      :w  d  M0  [        SU S[        U5       S[        U5       S35      e   g g )Nr   zExpected fit parameter(s) z
 not seen.zFit parameter z has length z; expected .)	r[   rd   r   r   setAssertionErrorlistitemsrT   )r]   ro   yparamsmissingkeyvalues          r^   partial_fit-MockIncrementalImprovingEstimator.partial_fit   s    AGGAJ&1##$223c&kAG$0gzJ  %lln
222|8!!_8% )(\,u:M9N%l1o%6a9 	 - $ra   )r   r   rk   )
r   r   r   r   r   r_   rt   r   r   __classcell__r   s   @r^   r   r      s    47
 ra   r   c                   >    \ rS rSrSrS
S jrS rS rSS jrS r	S	r
g)MockEstimatorWithParameter   z-Dummy classifier to test the validation curvec                     S U l         Xl        g rk   )r\   param)r]   r   s     r^   r_   #MockEstimatorWithParameter.__init__   s    
ra   c                 :    Xl         UR                  S   U l        U $ rY   rc   re   s      r^   rg   MockEstimatorWithParameter.fit   ri   ra   c                     [         erk   rl   rn   s     r^   rp   "MockEstimatorWithParameter.predict   rr   ra   Nc                 d    U R                  U5      (       a  U R                  $ SU R                  -
  $ )N   )rt   r   )r]   ro   r   s      r^   rx    MockEstimatorWithParameter.score   s)    !33A66tzzJA

NJra   c                     XR                   L $ rk   r{   rn   s     r^   rt   ,MockEstimatorWithParameter._is_training_data   r}   ra   )r\   r   r[   )      ?r~   r   r   ra   r^   r   r      s    7
"K"ra   r   c                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )%MockEstimatorWithSingleFitCallAllowed   z<Dummy classifier that disallows repeated calls of fit methodc                 `   > [        U S5      (       a   S5       eSU l        [        TU ]  X5      $ )Nfit_called_zfit is called the second timeT)hasattrr   r   rg   )r]   r\   rf   r   s      r^   rg   )MockEstimatorWithSingleFitCallAllowed.fit   s3    4//P1PP/w{8..ra   c                     [         erk   rl   rn   s     r^   rp   -MockEstimatorWithSingleFitCallAllowed.predict   rr   ra   )r   )	r   r   r   r   r   rg   rp   r   r   r   s   @r^   r   r      s    F/
" "ra   r   c                   ^    \ rS rSrSrSS jr         SS jrS rS rSS jr	SS	 jr
S
rg)MockClassifier   z-Dummy classifier to test the cross-validationc                     Xl         X l        g rk   aallow_nd)r]   r   r   s      r^   r_   MockClassifier.__init__   s     ra   Nc           	      j   Xpl         Xl        Xl        U
b  U
" U 5        U R                  (       a  UR	                  [        U5      S5      nUR                  S:  a  U R                  (       d  [        S5      eUbQ  UR                  S   UR                  S   :X  d1   SR                  UR                  S   UR                  S   5      5       eUby  UR                  S   [        [        R                  " [        5      5      :X  dE   SR                  UR                  S   [        [        R                  " [        5      5      5      5       eUbS  SnUR                  S   UR                  S   :X  d1   UR                  UR                  S   UR                  S   5      5       eUbu  SnUR                  [        R                  :X  dU   UR                  UR                  S   UR                  S	   [        R                  S   [        R                  S	   5      5       e[        R                  " [        5      U l        U $ )
zThe dummy arguments are to test that this fit function can
accept non-array arguments through cross-validation, such as:
    - int
    - str (this is actually array-like)
    - object
    - function
   zX cannot be dr   zKMockClassifier extra fit_param sample_weight.shape[0] is {0}, should be {1}zIMockClassifier extra fit_param class_prior.shape[0] is {0}, should be {1}zRMockClassifier extra fit_param sparse_sample_weight.shape[0] is {0}, should be {1}zUMockClassifier extra fit_param sparse_param.shape is ({0}, {1}), should be ({2}, {3})r   )	dummy_int	dummy_str	dummy_objr   reshapelenndim
ValueErrorrd   formatnpuniquer   Pclasses_)r]   ro   rw   sample_weightclass_priorsparse_sample_weightsparse_paramr   r   r   callbackfmts               r^   rg   MockClassifier.fit   s   ( #""TN==		#a&"%A66Q;t}}_--$ &&q)QWWQZ7 ??Ev!''*AGGAJ@7 "$$Q'3ryy|+<< ))/0A0A!0Dc"))TU,FW)X<  +2  (--a0AGGAJ> 

$**1-qwwqzA > #6   %%0 #**""1%""1%

	3 0 		!ra   c                 l    U R                   (       a  UR                  [        U5      S5      nUS S 2S4   $ )Nr   r   )r   r   r   r]   Ts     r^   rp   MockClassifier.predict	  s*    ==		#a&"%AAwra   c                     U$ rk   r   r   s     r^   predict_probaMockClassifier.predict_proba  s    ra   c                 N    SS[         R                  " U R                  5      -   -  $ )N      ?r   )r   absr   rv   s      r^   rx   MockClassifier.score  s    a"&&.())ra   c                 4    U R                   U R                  S.$ )Nr   r   )r]   deeps     r^   
get_paramsMockClassifier.get_params  s    VV77ra   )r   r   r   r   r   r   )r   F)	NNNNNNNNNr~   )F)r   r   r   r   r   r_   rg   rp   r   rx   r   r   r   ra   r^   r   r      sA    7! !>@
*8ra   r   )      )r   r   r   r   r   r   r   r      r      r      r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   coo_containerc                    [        5       nU " [        5      n[        SS5       H  nX1l        [	        U[        [
        5      n[        XAR                  [        [
        5      5        [        R                  " [
        [
        S S S2   /5      n[	        XU5      n[        XAR                  X%5      5        [	        X[
        5      n[        XAR                  U[
        5      5        [	        XU5      n[        XAR                  X%5      5        M     S n[        US9n[	        U[        R                  5       [
        R                  5       SS9n[        US9n[	        U[        [
        R                  5       SS9n[        S S 2S S 2[        R                  4   n[        S	S
9n[	        X[
        5      n[        SS
9n[        R                  " [        5         [	        X[
        SS9  S S S 5        g ! , (       d  f       g = f)Ni
   r   c                 "    [        U [        5      $ rk   
isinstancer   r   s    r^   <lambda>&test_cross_val_score.<locals>.<lambda>:      :a.ra   check_Xr   cvcheck_yT)r   Fraiseerror_score)r   ro   ranger   r/   y2rQ   rx   r   column_stackrK   tolistnewaxispytestraisesr   )r   clfX_sparser   scoresmultioutput_y
list_checkX_3ds           r^   test_cross_val_scorer  "  si   

CQH3^ a,699Q#34 R"X7 >699X#EF 3699Xr#:; !>699X#EF! & /J
Z
0CS!((*biika@F
Z
0CS!RYY[Q7F Q2::D
$
'CS+F
%
(C	z	"27; 
#	"	"s   
G##
G1c                  ^    [        SS9u  p[        SS9n[        USSS/0S9n[        X0US	S
9  g )NT
return_X_yauto)gammaCr   r   )
param_gridr   )n_jobs)r   r?   r%   r0   )ro   r   r  grids       r^   test_cross_validate_many_jobsr  K  s:     %DA
F
Cq"g7D4Aa(ra   c            
         [        SS9u  p[        5       nSn[        R                  " [        US9   [        UU U[        [        5      [        [        5      4S9  S S S 5        [        R                  " [        US9   [        X U[        [        5      4S9  S S S 5        [        R                  " [        US-   S9   [        X USS9  S S S 5        [        R                  " [        US-   S9   [        X US	S9  S S S 5        [        R                  " [        US9   [        X U[        [        5      //S9  S S S 5        [        R                  " [        S
S9   [        X U[        5       S9  S S S 5        [        [        5      nS[        R                   S3n[        R                  " [        US9   [        X XS9  S S S 5        [        R                  " [        US9   [        X USU0S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNq= f! , (       d  f       GNS= f! , (       d  f       GN5= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   random_statez.*must be unique strings.*matchscoringzEmpty list.*r   zDuplicate.*)f1_micror  zAn empty dict[Scoring failed. The score on this train-test partition for these parameters will be set to z. Details: 
foo)r   r   r  r  r   r0   r   r"   r   dictr!   r   nanwarnsUserWarning)ro   r   	estimatorerror_message_regexpmulticlass_scorerwarning_messages         r^   )test_cross_validate_invalid_scoring_paramr)  U  s   A.DA I 8 
z)=	> 1;~3NO		
 
? 
z)=	>yQ_1M0OP 
? 
z)=)N	OyQ3 
P 
z)=)M	NyQ0HI 
O 
z)=	>yQ+o2N1O0PQ 
? 
z	9yQ9 
: $$CD
	99; A	  
k	9yQB 
: 
k	9yQ8I0JK 
:	9O 
?	> 
?	> 
P	O 
O	N 
?	> 
:	9 
:	9 
:	9s_   )G-;G?9H)H#H5I*II)-
G<?
H
H #
H25
I
I
I&)
I7c                      [        SS9u  p[        S[        5       4S[        5       4/5      n[	        X USS9nUS   n[        U[        5      (       d   e[        S U 5       5      (       d   eg )NTr  imputer
classifier)return_estimatorr%  c              3   B   #    U  H  n[        U[        5      v   M     g 7frk   )r   r<   ).0r%  s     r^   	<genexpr>7test_cross_validate_nested_estimator.<locals>.<genexpr>  s     K
9z)X..
s   )r   r<   r   r   r0   r   r   all)ro   r   pipelineresults
estimatorss        r^   $test_cross_validate_nested_estimatorr6    sx     $'FQ(>+,	
H X!dCG%Jj$''''K
KKKKKra   
use_sparseFTcsr_containerc           
         [        5       n[        SSS9u  p4[        SS9n[        SSS9u  pg[	        SSS9nU (       a  U" U5      nU" U5      nX4U4XgU44 GH{  u  pn[        USS9n[        US	S9n/ n/ n/ n/ n/ nUR                  X5       H  u  nn[        U5      R                  U	U   U
U   5      nUR                  U" XU   U
U   5      5        UR                  U" XU   U
U   5      5        UR                  U" XU   U
U   5      5        UR                  U" XU   U
U   5      5        UR                  U5        M     [        R                  " U5      n[        R                  " U5      n[        R                  " U5      n[        R                  " U5      n[        R                  " U5      nUUUUU4n[        XU
UU5        [        XU
UU5        GM~     g )
N   r   	n_samplesr  r  linearkernelr  neg_mean_squared_errorr  r2)r(   r   r   r   r?   r   splitr	   rg   appendr   array"check_cross_validate_single_metric!check_cross_validate_multi_metric)r7  r8  r   X_regy_regregX_clfy_clfr  ro   r   est
mse_scorer	r2_scorertrain_mse_scorestest_mse_scorestrain_r2_scorestest_r2_scoresfitted_estimatorstraintestr  s                         r^   test_cross_validaterV    s    
B #Ra@LE
Q
C '!DLE
XA
.Ce$e$S)E#+>?	c"30HI
!#t4	88A>KE4*..51U84C##JseHah$GH""9SE(AeH#EF"":cT7AdG#DE!!)C4!D'"BC$$S) * 88$45((?3((?3.1HH%67 
 	+31fbA)#!VR@I @ra   c           
      d   Uu  nnnnn	S H  u  pU
(       a  [        U UUSSUS9n[        US   U5        O[        U UUSSUS9n[        U[        5      (       d   e[	        U5      U:X  d   e[        US   U5        U
(       a  [        XUS/SUS9n[        US	   US5        O[        XUS/SUS9n[        U[        5      (       d   e[	        U5      U:X  d   e[        US
   U5        M     [        XUSSUS9n[        US   5       H  u  pUR                  R                  5       n[        U5      (       a  UR                  5       nX   R                  R                  5       n[        U5      (       a  UR                  5       n[        UU5        [        UR                  X   R                  5        M     g )N))Tr   )Fr   r@  Tr  return_train_scorer   train_scoreF
test_scorerA  train_r2test_r2)r  r-  r   r%  )r0   rP   r   r!  r   	enumeratecoef_copyr   toarrayrO   
intercept_)r  ro   r   r  r   rO  rP  rQ  rR  rS  rY  dict_lenmse_scores_dictr2_scores_dictkrL  est_coeffitted_est_coefs                     r^   rE  rE    s    	 )@$,0#'O &om&DFVW,0#(O /40000?#x///!/,"?Q +D6drN &nZ&@/SWX+D6eN .$////>"h...!.";^LM )@R %3drO OK8999>>#H'')H+.4499;O$$-557OHo6CNN,=,@,K,KL :ra   c                    Uu  nnnnn	S n
S[        [        5      SS.U
4n1 SknUR                  SS15      nS GH  nU GH  nU(       a+  [        XX/SUS	9n[	        US   U5        [	        US   U5        O[        XX/S
US	9n[        U[        5      (       d   e[        UR                  5       5      U(       a  UOU:X  d   e[	        US   U5        [	        US   U5        [        US   [        R                  5      (       d   e[        US   [        R                  5      (       d   e[        US   [        R                  5      (       d   e[        US   [        R                  5      (       d   e[        R                  " US   S:  5      (       d   e[        R                  " US   S:  5      (       d   e[        R                  " US   S:  5      (       d   e[        R                  " US   S:  5      (       a  GM   e   GM     g )Nc                 T    U R                  U5      n[        X#5      [        X#5      * S.$ )NrA  r@  )rp   r#   r    )r  ro   r   y_preds       r^   custom_scorer8check_cross_validate_multi_metric.<locals>.custom_scorer!  s,    Q1%'9!'D&D
 	
ra   rk  r@  >   r]  fit_time
score_timetest_neg_mean_squared_errorr\  train_neg_mean_squared_error)TFTrX  Fr]  rq  ro  rp  r   r   )r   r#   unionr0   rP   r   r!  r   keysr   ndarrayr2  )r  ro   r   r  r   rO  rP  rQ  rR  rS  rm  all_scoringkeys_sans_trainkeys_with_trainrY  r  
cv_resultss                    r^   rF  rF    s    	
 	)h'&>	
 	KO &++	34O ,"G!+A4B
 **Z*@/R)=>@P ,A5R
 j$////z()#5?   &j&;^L%89?
 j3RZZ@@@@j)FGTTTTj4bjjAAAAj6

CCCC 66*Z0A5666666*Z025666666*\2a7888866*\2R78888C # ,ra   c            	         [        SSSS9u  p[        SS9n[        5       [        S5      [	        5       [        5       /nSnU H[  n[        R                  " [        US9   [        X XS	9  S S S 5        [        R                  " [        US9   [        X XS	9  S S S 5        M]     g ! , (       d  f       N?= f! , (       d  f       M  = f)
N   r   r   r<  	n_classesr  r=  r?  z*The 'groups' parameter should not be None.r  )r%  ro   r   r   )r   r?   r)   r+   r&   r'   r  r  r   r/   r.   )ro   r   r  	group_cvserror_messager   s         r^   #test_cross_val_score_predict_groupsr  `  s     qqIDA
X
C 		I AM]]:];c!; <]]:];A= <; ;;;;s   B"
B3"
B0	3
C	c                     ^^	 [         [         4/n  SSKJnJn  U R	                  X!45        U  H=  u  m	mT" [        5      T	" [        5      pCU4S jnU	4S jn[        XVS9n[        XsUSS9  M?     g ! [
         a     NPf = f)Nr   	DataFrameSeriesc                    > [        U T5      $ rk   r   r   InputFeatureTypes    r^   r   -test_cross_val_score_pandas.<locals>.<lambda>      Z+;<ra   c                    > [        U T5      $ rk   r  r   
TargetTypes    r^   r   r        Az!:ra   r   r   r   r   )
rL   pandasr  r  rC  ImportErrorro   r   rK   r/   
typesr  r  X_dfy_sercheck_dfcheck_seriesr  r  r  s
           @@r^   test_cross_val_score_pandasr  v  s    ]+,E,f() ).$
$ 'q):b>e<: H5Q/ ).     A/ /
A<;A<c                     [        SS9n [        5       nUR                  UR                  p2[	        S5      n[        XX4S9n[	        S5      n/ nUR                  X#5       Hc  u  px[        R                  " [        U5      [        S9n	[        R                  " [        U5      [        S9n
SX'   SX'   UR                  Xx45        Me     [        XX6S9n[        X[5        g )Nr=  r~  r   r   dtyper   )r?   r   datatargetr(   r/   rB  r   zerosr   boolrC  rQ   )svmirisro   r   kfoldscores_indicescv_masksrT  rU  
mask_train	mask_testscores_maskss               r^   test_cross_val_score_maskr    s    
X
C;D99dkkq!HE$SQ9N!HEH{{1(XXc!fD1
HHSV40	
	& ) #31:L~4ra   c                  `   [        SS9n [        5       nUR                  UR                  p2[        R
                  " X"R                  5      n[        XU5      n[        SS9n [        XU5      n[        XV5        [        S S9n [        XU5      n[        XW5        [        SS9n [        R                  " [        5         [        XU5        S S S 5        [        R                  " [        5         [        XR                  5       U5        S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)Nprecomputedr~  r=  c                 B    [         R                  " XR                  5      $ rk   )r   dotr   )r   r   s     r^   r   2test_cross_val_score_precomputed.<locals>.<lambda>  s    "&&CC.ra   )r?   r   r  r  r   r  r   r/   rP   r  r  r   r  )r  r  ro   r   linear_kernelscore_precomputedscore_linearscore_callables           r^    test_cross_val_score_precomputedr    s    
]
#C;D99dkkqFF1ccNM'A>
X
C"31-L/> 0
1C$SQ/N/@ ]
#C	z	"" 
#
 
z	"113Q7 
#	" 
#	"
 
#	"s   ;D*D
D
D-c           	        ^^	^
 [        5       n[        R                  S   n[        [        R
                  " [        5      5      nU " [        R                  " S/5      [        R                  " S/5      [        R                  " S/5      44SS9nU " [        R                  " S5      5      nSmSm
[        5       m	UU	U
4S jn[        R                  " U5      [        R                  " US	U-  5      UUTT
T	US
.n[        U[        [        US9  g )Nr   r   )r   r   )rd   r   *   42c                 r   > U R                   T:X  d   eU R                  T:X  d   eU R                  T:X  d   eg rk   )r   r   r   )r  	DUMMY_INT	DUMMY_OBJ	DUMMY_STRs    r^   assert_fit_params:test_cross_val_score_fit_params.<locals>.assert_fit_params  s;     }}	)))}}	)))}}	)))ra   r   )r   r   r   r   r   r   r   r   r   )r   ro   rd   r   r   r   r   rD  eyeobjectonesfullr/   r   )r   r  r<  r}  W_sparseP_sparser  
fit_paramsr  r  r  s           @@@r^   test_cross_val_score_fit_paramsr    s    

C
IBIIaL!I	1#1#!67wH RVVAY'HIII* +wwy#	/: ( %	J CBz2ra   c            	        ^ [        5       n / mU4S jn[        R                  " SS9   [        U5      n[	        U [
        [        USS9nS S S 5        [        W/ SQ5        [        T5      S:X  d   eg ! , (       d  f       N.= f)Nc                 *   > TR                  X45        g)Nr   )rC  )y_test	y_predict_score_func_argss     r^   
score_func3test_cross_val_score_score_func.<locals>.score_func  s     34ra   Trecordr   )r  r   )r   r   r   )	r   warningscatch_warningsr   r/   ro   r   rQ   r   )r  r  r  rx   r  s       @r^   test_cross_val_score_score_funcr    sp    

C 
	 	 	-j)Q7qA 
. uo. A%%% 
.	-s   !A11
A?c                  @   [        5       n [        SS9n[        XR                  U R                  5      n[        U/ SQS5        [        XR                  U R                  SS9n[        U/ SQS5        [        XR                  U R                  SS9n[        U/ SQS5        g )Nr=  r~  )
ףp=
?r   r  r  r   r   accuracyr  f1_weighted)r   r?   r/   r  r  rP   )r  r  r  	zo_scores	f1_scoress        r^   3test_cross_val_score_with_score_func_classificationr    s    ;D
X
C S))T[[9Ff&BAF  YYZPIi)EqI  YY]SIi)EqIra   c                  L   [        SSSSS9u  p[        5       n[        X U5      n[        U/ SQS5        [        X USS	9n[        U/ SQS5        [        X US
S	9n[        R
                  " / SQ5      n[        XVS5        [        [        5      n[        X XS	9n[        U/ SQS5        g )Nr:  r{  r   r   r<  
n_featuresn_informativer  )gGz?r  r  gGz?gq=
ףp?r   rA  r  r@  )g(\؇gzGIgGz&qg\(qg)\G)r   r   r/   rP   r   rD  r   r   )	ro   r   rI  r  	r2_scoresneg_mse_scoresexpected_neg_mser  	ev_scoress	            r^   /test_cross_val_score_with_score_func_regressionr    s    RBaVWXDA
'C SQ'Ff&DaH  48Ii)GK %SQ8PQNxx NOnB 23G;Ii)GKra   c                    [        5       nUR                  nU " U5      nUR                  n[        SS9n[	        S5      n[        XRUSUSS9u  pxn	US:  d   e[        U	SS	5        [        UUUSUS[        R                  " UR                  5      S
S9u  pnX:X  d   eX:X  d   e[        SS9n[	        S5      n[        UUUSUS[        R                  " UR                  5      S
S9u  pnX:X  d   eX:X  d   eS n[        U5      n[        XRUSUUS
S9u  p{n	[        USS5        [        U	SS5        [        R                  " [        R                  " [        U5      5      S5      n[        XRUSUSS9u  pxn	US:  d   eU	S:  d   eg )Nr=  r~  r   r:  r  )n_permutationsr   r  g?        r   r   )r  r   r  groupsr  c                 l    X:H  R                  5       X:g  R                  5       -
  U R                  S   -  $ rY   )sumrd   )y_truerl  s     r^   custom_score,test_permutation_score.<locals>.custom_scoreD  s3    !&&(F,<+A+A+CCv||TUVVra   d   )r  r  r   r  g(\?g{Gz?r   r   皙?)r   r  r  r?   r-   r2   rO   r   r  sizer   modaranger   )r   r  ro   r  r   r  r   rx   r  pvaluescore_group_pvalue_group
svm_sparse	cv_sparser  scorers                    r^   test_permutation_scorer    s   ;D		AQHA
X
C		B2"ZE6 3;;Q'#9		wwqvv	$ KL !!! H%J"I#9	wwqvv	$ KL !!!W &F-#v"1Ef tQ'a( 	ryyQ !$A2"ZE6 3;;C<<ra   c                  `   [         R                  " S[         R                  S9R                  SS5      n [         R                  U SS S 24'   [         R
                  " SS/U R                  S   S-  5      n[        S[        S	[         R                  S
94S[        5       4/5      n[        X U5        g N   r  r   r   r   r   r   r+  mean)strategymissing_valuesr,  )r   r  float64r   r"  repeatrd   r<   r   r   r2   ro   r   ps      r^   &test_permutation_test_score_allow_nansr  Y  s    
		#RZZ(00R8AffAadG
		1a&!''!*q.)AvbffMN>+,	
	A 1#ra   c            
         [         R                  " S5      R                  SS5      n [         R                  " S/S-  S/S-  -   5      n[	        SS9nSn[
        R                  " [        US	9   [        X U5        S S S 5        S
n[
        R                  " [        US	9   [        X US[         R                  " S5      0S9  S S S 5        [        X US[         R                  " S5      0S9  g ! , (       d  f       Nu= f! , (       d  f       NA= f)Nr  r   r   r   r   Texpected_sample_weight#Expected sample_weight to be passedr  /sample_weight.shape == \(1,\), expected \(8,\)!r   r  )r   r  r   rD  rK   r  r  r   r2   r   r  ro   r   r  err_msgs       r^   "test_permutation_test_score_paramsr  g  s    
		#r2&A
!qA37"#A
D
9C4G	~W	5sq) 
6 AG	z	1sq/2771:1NO 
231orwwr{-KL 
6	5 
2	1s   ,C("C9(
C69
Dc                  `   [         R                  " S[         R                  S9R                  SS5      n [         R                  U SS S 24'   [         R
                  " SS/U R                  S   S-  5      n[        S[        S	[         R                  S
94S[        5       4/5      n[        X U5        g r  )r   r  r  r   r"  r   rd   r<   r   r   r/   r  s      r^   test_cross_val_score_allow_nansr  v  s    
		#RZZ(00R8AffAadG
		1a&!''!*q.)AvbffMN>+,	
	A A!ra   c                     [         R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//
5      n [         R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//
5      n[        SS	9n[        [        S
S9n[        [        SS9n[        [        SS9n[        X XS9n[        X XS9n[        X XS9n[        U/ SQ5        [        U/ SQ5        [        U/ SQ5        g )Nr   r   r   r   r   r   )n_neighborsmicro)averagemacrosamplesr  )r   r         ?r   gUUUUUU?)r   r   r  r         ?)r   rD  r:   r   r"   r/   rO   )	ro   r   r  scoring_microscoring_macroscoring_samplesscore_microscore_macroscore_sampless	            r^   test_cross_val_score_multilabelr    s#   
GFFFGGFHHG	
	A 	
Q!Q!Q!Q!Q!Q!Q!Q!QRSUVQWX	A 1
-CAMAM!/9EO!#!CK!#!CK#CAGM%DE%DE'FGra   c           
      2   [        SS9u  p[        5       n[        5       n[        R                  " U5      nUR                  X5       H0  u  pgUR                  X   X&   5        UR                  X   5      XW'   M2     [        XAX#S9n[        X5        [        XAU5      n[        U5      [        U5      :X  d   e[        5       n[        XAX#S9n[        U5      [        U5      :X  d   eUR                  5       n	X[        R                  " U	5      :  -  n	U " U	5      n	[        XIU5      n[        [        U5      [        U5      5        [        [        SS9U5      n[        U5      [        U5      :X  d   e " S S5      n
[        R                   " ["        5         [        XAX*" 5       S9  S S S 5        [%        SS9u  pSn[        R&                  " [(        US	9   [        [+        S
S9UUS[        S5      S9  S S S 5        g ! , (       d  f       N[= f! , (       d  f       g = f)NTr  r   r  )n_initc                       \ rS rSrSS jrSrg)%test_cross_val_predict.<locals>.BadCVi  Nc              3      #    [        S5       H5  n[        R                  " / SQ5      [        R                  " / SQ5      4v   M7     g 7f)Nr   )r   r   r   r   )r   r   r         )r   r   rD  )r]   ro   r   r  is        r^   rB  +test_cross_val_predict.<locals>.BadCV.split  s0     1Xhh|,bhh.GGG s   AAr   r~   )r   r   r   r   rB  r   r   ra   r^   BadCVr"    s    	Hra   r(  zNumber of classes in training fold \(2\) does not match total number of classes \(3\). Results may not be appropriate for your use case.r  	liblinear)solverr   r   methodr   )r   r(   r   r   
zeros_likerB  rg   rp   r.   rP   r   r*   r`  medianr   r  r  r   r   r#  RuntimeWarningr   )r   ro   r   r   rL  preds2rT  rU  predsXspr(  r(  s               r^   test_cross_val_predictr3    s   D)DA	B
'C ]]1Fxx~!(#{{17+ & ca/Ee,ca(Eu:Q	Bca/Eu:Q
&&(C3C

Cc*Ec%j#a&1fF3Q7Eu:QH H
 
z	"#!0 
# %DA	< 
 
nO	<k2"Qx	
 
=	< 
#	" 
=	<s   G7H7
H
Hc            
         [        SSSS9u  p[        [        5       XSS9nUR                  S:X  d   e[	        SS	9u  p[        [        5       XSS9nUR                  S
:X  d   eU S S n US S nSn[
        R                  " [        US9   [        [        5       XS[        S5      S9  S S S 5        [        SS	9u  p[        SSS9n[        X@USS9nUR                  S:X  d   e[        R                  " U5      nX   X   pSn[
        R                  " [        US9   [        X@U[        SS9SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   2   r   r}  r<  r  decision_functionr,  )r5  Tr     r   r  zOnly 1 class/es in training fold, but 2 in overall dataset. This is not supported for decision_function with imbalanced folds. To fix this, use a cross-validation technique resulting in properly stratified foldsr  r+  r=  ovo)r?  decision_function_shape)i  -   zOutput shape \(599L?, 21L?\) of decision_function does not match number of classes \(7\) in fold. Irregular decision_function .*r   n_splitsr   r,  )r   r.   r   rd   r   r  r  r   r   r(   r   r?   r   argsort)ro   r   r1  r  rL  indr&  s          r^   .test_cross_val_predict_decision_function_shaperC    sT   bqIDA02AATUE;;%%DA02AATUE;;(""" 	
$3A	$3A	1  
z	7q,?E!H	
 
8
 $'DA
Xu
=Cca0CDE;;*$$$
**Q-C616q	  
z)=	>#!q(9BUV 
?	>' 
8	7& 
?	>s   D5E5
E
Ec                      [        SSSS9u  p[        [        5       XSS9nUR                  S:X  d   e[	        SS	9u  p[        [        5       XSS9nUR                  S
:X  d   eg )Nr   r5  r   r6  r   r8  r5  r   Tr  r9  r   r.   r   rd   r   ro   r   r1  s      r^   *test_cross_val_predict_predict_proba_shaperH    sf    bqIDA02AQE;;'!!!%DA02AQE;;("""ra   c                      [        SSSS9u  p[        [        5       XSS9nUR                  S:X  d   e[	        SS	9u  p[        [        5       XSS9nUR                  S
:X  d   eg )Nr   r5  r   r6  predict_log_probar8  rE  Tr  r9  rF  rG  s      r^   .test_cross_val_predict_predict_log_proba_shaperK    sh    bqIDA02AATUE;;'!!!%DA02AATUE;;("""ra   c                    [        5       nUR                  UR                  p2U " U5      n[        R                  " X3S S S2   /5      n[        SSS9n[        XbU5      nUR                  S:X  d   e[        XdU5      nUR                  S:X  d   e[        XdU5      n[        UR                  S5        [        XdU5      n[        UR                  S5        S n[        US9n[        XbR                  5       UR                  5       5      n[        US	9n[        XbUR                  5       5      n[        [        5       UR                  5       UR                  5       S
S9n[        [        5       UUR                  5       S
S9nUS S 2S S 2[        R                  4   n	S n
[        U
S9n[        XiU5      n[        UR                  S5        g )Nr   Fr   )fit_interceptr  )r:  )r:  r   c                 "    [        U [        5      $ rk   r   r   s    r^   r   4test_cross_val_predict_input_types.<locals>.<lambda><  r   ra   r   r   r7  r8  c                      U R                   S:H  $ )Nr   )r   r   s    r^   r   rO  S  s    1ra   )r   r  r  r   r  r   r.   rd   rQ   rK   r  r   r  )r   r  ro   r   r  r	  r  predictionsr
  r  check_3ds              r^   "test_cross_val_predict_input_typesrS  #  s   ;D99dkkqQHOOQ$B$L1M
e!
4C $CA.K&&& $C=AK(((#C15K{((&1 $C=AK{(((3 /J
Z
0C#CQXXZ@K
Z
0C#CAHHJ7K $	
	
"	K $		
"	K Q2::D$H
X
.C#Cq1K{((&1ra   c                     ^^	 [         [         4/n  SSKJnJn  U R	                  X!45        U  H=  u  m	mT" [        5      T	" [        5      pCU4S jnU	4S jn[        XVS9n[        XsUSS9  M?     g ! [
         a     NPf = f)Nr   r  c                    > [        U T5      $ rk   r  r  s    r^   r   /test_cross_val_predict_pandas.<locals>.<lambda>e  r  ra   c                    > [        U T5      $ rk   r  r  s    r^   r   rV  f  r  ra   r  r   r   )
rL   r  r  r  rC  r  ro   r   rK   r.   r  s
           @@r^   test_cross_val_predict_pandasrX  Y  s}    ]+,E,f() ).$
$&q):b>e<: H#Uq1 ).  r  c            	      *   [        SSSSSSS9u  pSUS'   [        SS9n[        SS9n[        UR	                  X5      5      u  pE[        X XSS	9nXS      S   S:X  d   e[        R                  " XeS      S S 2S4   S:H  5      (       d   e[        R                  " XeS      S S 2SS24   S:  5      (       d   e[        R                  " XeS      S:  5      (       d   e[        UR                  SS
9[        R                  " UR                  5      SS9  g )Nr  r   r   r   )r<  r  n_redundantr  n_clusters_per_classr  r  r>  r   r@  axis   )decimal)r   r   r-   r   rB  r.   r   r2  rP   r  r  rd   )ro   r   r  r   rT  rU  
yhat_probas          r^   !test_cross_val_predict_unbalancedra  k  s   DA AaD
!
,C	!	$Brxx~&KE"31OLJ!W:a=A66*!W%ad+q0111166*!W%a1f-1222266*!W%)****jnn!n4bggagg6FPRSra   c                      [        5       n [        R                  R                  S5      nUR	                  SS5      n[        XS SSS9n[        US S 2S4   U5        [        XS SSS9n[        X$5        g )	Nr  r  r   r   rp   )r   r   r,  r   r   )r   r   randomRandomStaterandr.   rN   )mock_classifierrngro   y_haty_hat_probas        r^   test_cross_val_predict_y_nonerj    sm    $&O
))


#CbAoDQyQEAadGU##dqK A#ra   c                    [        5       nUR                  UR                  p2[        5       nSU " [        R
                  " UR                  S   5      5      0n[        XBX5SS9n[        U[        R                  " S5      5        g )Nr   r   r   )r   r   )
r   r  r  r   r   r  rd   r/   rQ   r  )r   r  ro   r   r  r  r   s          r^   &test_cross_val_score_sparse_fit_paramsrl    s`    ;D99dkkq

C(-qwwqz8J*KLJ;Aq"''!*%ra   c                     Sn Sn[        U SSSSSSS9u  p#[        XS-
  U-  -  5      nS GH  n[        R                  " SS	9 n[	        UUU[        US
9[        R                  " SSS5      USS9u  nnn	n
nS S S 5        [        W5      S:  a  [        SUS   R                  -  5      eWR                  S:X  d   eW	R                  S:X  d   eW
R                  S:X  d   eWR                  S:X  d   e[        W[        R                  " SSS5      5        [        UR                  SS9[        R                  " SSS5      5        [        U	R                  SS9[        R                  " SSS5      5        U
R                  S:X  d   eUR                  S:X  d   e[        R                  " SS	9 n[	        UUU[!        XS9[        R                  " SSS5      US9u  pnS S S 5        [        U5      S:  a  [        SUS   R                  -  5      e[        WU5        [        WU	5        GM     g ! , (       d  f       GN= f! , (       d  f       Nh= f)Nr:  r   r   r   r   r<  r  r  rZ  r}  r[  r  FTTr  r>  皙?r   r   )r   r[   rF   return_timesUnexpected warning: %r)r   r   r{  r\  ffffff?r  r?  r<  )r   r[   rF   )r   rV   r  r  r1   r(   r   linspacer   RuntimeErrormessagerd   rQ   rP   r  r  r7   )r<  r?  ro   r   r%  shuffle_trainwr[   train_scorestest_scores	fit_timesscore_timestrain_sizes2train_scores2test_scores2s                  r^   test_learning_curver    s>   IHDA 'y\X4M'NOI&$$D1Q (+KKS"5%! 2  q6A:7!A$,,FGG!!W,,,  G+++')))  G+++;Ar2(>?!,"3"3"3";R[[cSU=VW!+"2"2"2":BKKSRT<UV )+++  I--- $$D1Q8F"HJKKS"5%95L 2 q6A:7!A$,,FGG!->!,<[ '11@ 21s   3H'(/H9'
H6	9
I	c                     [        SSSSSSSS9u  p[        S5      n[        X S S[        R                  " SS	S
5      S9u  p4n[        U[        R                  " SSS
5      5        [        UR                  SS9[        R                  " SS	S
5      5        [        UR                  SS9[        R                  " SS	S
5      5        g )Nr:  r   r   r   rn  r{  r   rp  r   r   )r   r   r[   r\  rs  )r   rV   r1   r   ru  rQ   rP   r  ro   r  r%  r[   rz  r{  s         r^    test_learning_curve_unsupervisedr    s    DA 'r*I-;Cb0I.*K{ {BKK2r$:;l//Q/7S#r9RSk..A.6Cb8QRra   c           
          [        SSSSSSSS9u  p[        S5      n[        X1USSS9  S	U R                  5       R                  ;   d   eg )
Nr:  r   r   r   rn  r{  r   )r   verbosez[learning_curve])r   rV   r1   
readouterrout)capsysro   r   r%  s       r^   test_learning_curve_verboser    sZ    DA 'r*I9q!4!2!2!4!8!8888ra   c            
          [        SSSSSSSS9u  p[        S5      n[        R                  " [        5         [        X USS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   rn  T)exploit_incremental_learningr   rV   r  r  r   r1   ro   r   r%  s      r^   5test_learning_curve_incremental_learning_not_possibler    sS    DA 'q)I	z	"yQTJ 
#	"	"s   A
Ac                     [        SSSSSSSS9u  p[        S5      nS H  n[        UU USS	[        R                  " S
SS5      US9u  pEn[        U[        R                  " SSS5      5        [        UR                  SS9[        R                  " SSS5      5        [        UR                  SS9[        R                  " S
SS5      5        M     g )Nr:  r   r   r   rn  r{  ro  r   Trp  r   r   )r   r  r[   rF   r\  rs  r   r   r1   r   ru  rQ   rP   r  )ro   r   r%  rx  r[   rz  r{  s          r^   (test_learning_curve_incremental_learningr    s    DA 2"5I&1?)-Cb1!2
.; 	;Ar2(>?!,"3"3"3";R[[cSU=VW!+"2"2"2":BKKSRT<UV 'ra   c                     [        SSSSSSSS9u  p[        S5      n[        UU S SS[        R                  " S	S
S5      S9u  p4n[        U[        R                  " SSS5      5        [        UR                  SS9[        R                  " SS
S5      5        [        UR                  SS9[        R                  " S	S
S5      5        g )Nr:  r   r   r   rn  r{  r   Trp  r   r   )r   r   r  r[   r\  rs  r  r  s         r^   5test_learning_curve_incremental_learning_unsupervisedr  !  s    DA 2"5I-;	
%)KKS"-.*K{ {BKK2r$:;l//Q/7S#r9RSk..A.6Cb8QRra   c            
      ^   [        SSSSSSSS9u  p[        R                  " SSS5      n[        SS S	S
9n[	        UU UUSSS9u  pEn[	        UU USUS	S9u  pxn	[        XG5        [        UR                  SS9UR                  SS95        [        UR                  SS9U	R                  SS95        g )Nr:  r   r   r   rn  r  r   r   F)max_itertolrF   r   T)r[   r   r  )r   r[   r  r\  )r   r   ru  r   r1   rQ   rP   r  )
ro   r   r[   r%  train_sizes_inctrain_scores_inctest_scores_inctrain_sizes_batchtrain_scores_batchtest_scores_batchs
             r^   <test_learning_curve_batch_and_incremental_learning_are_equalr  9  s    DA ++c3*KqdEBI9G		%):6O @N		%*@<+< :1%'9'>'>A'>'F !$&7&<&<!&<&Dra   c            
         [        SSSSSSSS9u  p[        S5      n[        R                  " [        5         [        X USSS/S9  S S S 5        [        R                  " [        5         [        X USS	S
/S9  S S S 5        [        R                  " [        5         [        X USSS/S9  S S S 5        [        R                  " [        5         [        X USSS/S9  S S S 5        [        R                  " [        5         [        X USSS/S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ns= f! , (       d  f       g = f)Nr:  r   r   r   rn  r{  r   r   r[   r  r   rp  g?   r  r  s      r^   0test_learning_curve_n_sample_range_out_of_boundsr  `  s   DA 'r*I	z	"yQ11a&A 
#	z	"yQ13*E 
#	z	"yQ13*E 
#	z	"yQ11b'B 
#	z	"yQ11b'B 
#	" 
#	"	"	"	"	"	"	"	"	"s;   D(D$D5
E;E
D!$
D25
E
E
E%c                     [        SSSSSSSS9u  p[        S5      nSn[        R                  " [        US9   [        X US[        R                  " SS	S5      S
9u  n  nS S S 5        [        WSS/5        g ! , (       d  f       N= f)Nr   r   r   r   rn  zzRemoved duplicate entries from 'train_sizes'. Number of ticks will be less than the size of 'train_sizes': 2 instead of 3.r  gQ?r   r  )	r   rV   r  r#  r/  r1   r   ru  rQ   )ro   r   r%  r(  r[   r  s         r^   1test_learning_curve_remove_duplicate_sample_sizesr  w  s    DA 'q)I	G  
nO	<*!r{{4a/H
Q 
= {QF+	 
=	<s   'A66
Bc                     [        SSSSSSSS9u  p[        S5      n[        SS9n[        X X[        R
                  " S	S
S5      S9u  pEn[        U[        R
                  " SSS5      5        [        UR                  SS9[        R
                  " SS
S5      5        [        UR                  SS9[        R
                  " S	S
S5      5        g )Nr:  r   r   r   rn  r{  r   r>  rp  r   r   r  r\  rs  )	r   rV   r(   r1   r   ru  rQ   rP   r  )ro   r   r%  r   r[   rz  r{  s          r^   (test_learning_curve_with_boolean_indicesr    s    DA 'r*I		B-;aBKKS",E.*K{ {BKK2r$:;l//Q/7S#r9RSk..A.6Cb8QRra   c                     [         R                  " SS/SS/SS/SS/S	S
/SS/SS/SS/SS/SS/SS/S	S
/SS/SS/SS//5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[        SS SSSS9n[        SS9n[	        UU UUS[         R
                  " SSS5      USSS9	u  pVn[        UR                  SS9[         R                  " / S Q5      5        [        UR                  SS9[         R                  " / S!Q5      5        [        R                  " [        5         [	        UU UUS[         R
                  " SSS5      US"S#9  S S S 5        [	        UU UUS[         R
                  " SSS5      USSSS$9
u  pn
[        U	R                  SS9UR                  SS95        [        U
R                  SS9UR                  SS95        g ! , (       d  f       N= f)%Nr   r   r   r   r   r   r$  r%     r^        r               r{  	   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Fpa1)r  r  rF   learning_rateeta0r>  333333?r   T)r   r  r[   r  rF   r  r\  )r  r  Iq?)r  r  r  r   )r   r  r[   r  r   )r   r  r[   r  rF   r  r  )r   rD  r   r&   r1   ru  rP   r  r  r  r   )ro   r   r  r%  r   r  r  r  r  r  r  s              r^    test_learning_curve_with_shuffler    s)    	FFFFHHHHHFGHHHH	
	A& 	>?AXXCDF e5qI 
Q	B?M		KKS!,
@<+< Q'2I)J A&1I(J 
z	"Ca0		
 
# :H		KKS!,%):6O 1%'9'>'>A'>'F !$&7&<&<!&<&D7 
#	"s   ,'G
G!c                     [         R                  " S5      R                  SS5      n [         R                  " S/S-  S/S-  -   5      n[	        SS9nSn[
        R                  " [        US	9   [        X US
S9  S S S 5        Sn[
        R                  " [        US	9   [        X US
S[         R                  " S5      0S9  S S S 5        [        X US
S[         R                  " S5      0S9  g ! , (       d  f       Nw= f! , (       d  f       NB= f)Nr  r   r   r   r   Tr  r  r  r   r   z/sample_weight.shape == \(1,\), expected \(2,\)!r   )r   r   )r   r  r   rD  rK   r  r  r   r1   r   r  r	  s       r^   test_learning_curve_paramsr    s    
		#r2&A
!qA37"#A
D
9C4G	~W	5sqg6 
6 AG	z	1A7ORWWQZ3P	
 
2 w/M 
6	5 
2	1s   ,C)#C:)
C7:
Dc                  N   [        SSSSSSSS9u  p[        SS/5      nSn[        R                  " [        US	9   [        UU US
S[        R                  " SSS5      SS9  S S S 5        Sn[        R                  " [        US	9   [        UU US
S[        R                  " SSS5      SS[        R                  " S
5      0S9  S S S 5        [        UU US
S[        R                  " SSS5      SS[        R                  " S5      0S9  g ! , (       d  f       N= f! , (       d  f       N\= f)Nr:  r   r   r   rn  r{  r   z9Expected fit parameter\(s\) \['sample_weight'\] not seen.r  r   Trp  r   r   r   )r   r  r[   r   z2Fit parameter sample_weight has length 3; expected)r   r  r[   r   r   )	r   r   r  r  r   r1   r   ru  r  )ro   r   r%  r
  s       r^   /test_learning_curve_incremental_learning_paramsr    s   DA 2"6GHIJG	~W	5)-Cb1	
 
6 CG	~W	5)-Cb1#RWWQZ0		
 
6 		%)KKS"-,	1 
6	5 
6	5s   &D=D
D
D$c            
         [        SSSSSSSS9u  p[        R                  " SSS5      n[        R                  " SS9 n[        [        5       U USUSS	9u  pES S S 5        [        W5      S:  a  [        S
US   R                  -  5      e[        WR                  SS9U5        [        WR                  SS9SU-
  5        g ! , (       d  f       Nn= f)Nr   r   r   rn  r   Tr  r   
param_nameparam_ranger   rr  r\  )r   r   ru  r  r  r3   r   r   rv  rw  rP   r  )ro   r   r  ry  rz  r{  s         r^   test_validation_curver  4  s    DA ++aB'K		 	 	-$4&(#%
! 
. 1vz3adllBCCl//Q/7Ek..A.6KH 
.	-s   B??
Cc            
          [        SSSSSSSS9u  p[        R                  " SSS5      n[        [	        5       U USUSS9u    ng )Nr   r   r   rn  r   r   r  )r   r   ru  r3   r   )ro   r   r  r  s       r^   %test_validation_curve_clone_estimatorr  O  sZ    DA ++aB'K-/		DAqra   c                  (   Sn Sn[        SSS9u  p#[        [        SSS9UUS/ SQ[        XS	9S
9n[	        [
        R                  " [
        R                  " U5      SS S 24   S5      6   [        [        SSS9UUS/ SQ[        USS9S
9n[	        [
        R                  " [
        R                  " U5      SS S 24   S5      6   [        [        SSS9UUS/ SQ[        US9S
9n[	        [
        R                  " U5      [
        R                  " U5      5        g )Nr  r   r   r;  r=  r>  r  )rp  rp  r  r  rt  r  )r   r   r   r   r   Tr?  rF   r>  )
r   r3   r?   r7   rP   r   vsplithstackr(   rD  )r<  r?  ro   r   scores1scores2scores3s          r^   +test_validation_curve_cv_splits_consistencyr  e  s    IH1=DA8!,		(HBG ryy7);L!O)LaPQ8!,		((D1G ryy7);L!O)LaPQ8!,		((#G bhhw/'1BCra   c                  4   [         R                  " S5      R                  SS5      n [         R                  " S/S-  S/S-  -   5      n[	        SS9nSn[
        R                  " [        US	9   [        UU US
/ SQSS9  S S S 5        Sn[
        R                  " [        US	9   [        UU US
/ SQSS[         R                  " S5      0S9  S S S 5        [        UU US
/ SQSS[         R                  " S5      0S9  g ! , (       d  f       N= f! , (       d  f       NG= f)Nr  r   r   r   r   Tr  r  r  	foo_param)r   r   r   r   )r  r  r   r  r   )r  r  r   r   )r   r  r   rD  rK   r  r  r   r3   r   r  r	  s       r^   test_validation_curve_paramsr    s    
		#r2&A
!qA37"#A
D
9C4G	~W	5"!	
 
6 AG	z	1"!#RWWQZ0	
 
2 		-+ 
6	5 
2	1s   ,C8 (D	8
D	
Dc                     [         R                  R                  S5      n [         R                  " S5      nU R	                  U5        [        US5      (       d   e[        [         R                  " US5      S5      (       a   eSUS'   [        US5      (       a   e[        [         R                  " US45      S5      (       a   eg )Nr   r     )r   rc  rd  r  rF   r4   deleter  )rg  r  s     r^   test_check_is_permutationr    s    
))


"C
		#AKKN C(((($RYYq"%5s;;;;AaD$Q,,,, %RYY1v%6<<<<<ra   c                     [        SSSSSS9u  pU " U5      nU " U5      n[        [        SS95      n[        XQUSS	9n[        XSUSS	9nUR	                  5       n[        Xv5        g )
Nr   r   FT)r}  n_labelsallow_unlabeledreturn_indicatorr  r=  r~  r   r   )r   r9   r?   r.   ra  rP   )r8  ro   r   r  y_sparseclassifr1  preds_sparses           r^   (test_cross_val_predict_sparse_predictionr    sv     *DA QHQH!#X"67Gg!3E$WRHL'')Ll2ra   c                    [        SSS9nUR                  S:X  a   US:X  a  [        U5      4O[        U5      S4nOUR                  n[        R
                  " U5      nUR                  X5       H9  u  px[        U 5      R                  X   X'   5      n [        X5      " X   5      Xh'   M;     X"S-   US-
  UR                  S5      4 H  n	[        [        XXUS9U5        M     g	)
z@Helper for tests of cross_val_predict with binary classificationr   Fr  r   r7  r   strr+  N)r(   r   r   rd   r   r  rB  r	   rg   getattrastyperN   r.   )
rL  ro   r   r,  r   	exp_shapeexpected_predictionsrT  rU  tgs
             r^   check_cross_val_predict_binaryr    s    	5	)B 	vv{!'+>!>SVISVQK	GG	88I.xx~CjnnQXqx0%,S%9!'%B" &
 a%Q0cbB?AU	
 1ra   c                    [        SSS9n[        R                  " [        R                  5      R                  nUUSS.n[        R
                  " [        U5      [        [        U5      5      4Xc   [        R                  S9n[        R                  " USS9u  pUR                  X5       Hg  u  p[        U 5      R                  X   X   5      n [        X5      " X   5      n[        R                  " X   5      nX[        R                  " X5      '   Mi     X"S	-   US
-
  UR                  S5      4 H  n[        [!        XXUS9U5        M     g)zDHelper for tests of cross_val_predict with multiclass classificationr   Fr  r   r7  rJ  r   r  Treturn_inverser   r   r  r+  N)r(   r   finfor  minr  r   r   r   rB  r	   rg   r  ix_r  rN   r.   )rL  ro   r   r,  r   	float_mindefault_valuesr  r  y_encrT  rU  
fold_preds
i_cols_fitr  s                  r^   "check_cross_val_predict_multiclassr    s   	5	)B $((I&&N
 77	QSV~5RZZ yy40HAxx)CjnnQXu|4S)!'2
YYu|,
9CRVVD56	 * a%Q0cbB?AU	
 1ra   c           	         [        SSS9n[        R                  " [        R                  5      R                  nUUSS.nUR
                  S   n/ n[        U5       Hy  n	[        [        USS2U	4   5      5      n
U
S:X  a  US	:X  a  [        U5      4nO[        U5      U
4nUR                  [        R                  " XU   [        R                  S
95        M{     [        UR
                  S   5       Vs/ s H7  n[        R                  " USS2U4   SS9S   SS2[        R                  4   PM9     nn[        R                  " USS9nUR                  X5       H  u  nn[        U 5      R!                  X   X   5      n [#        X5      " UU   5      n[        U5       Ha  n	[        R                  " X   SS2U	4   5      nX   R$                  S:X  a  UU	   X   U'   M@  [        R&                  " UU5      nUU	   X   U'   Mc     M     X"S-   US-
  UR)                  S5      4 HT  n[+        XUX4S9n[        U5      [        U5      :X  d   e[        [        U5      5       H  n[-        UU   X   5        M     MV     gs  snf )zCheck the output of cross_val_predict for 2D targets using
Estimators which provide a predictions as a list with one
element per class.
r   Fr  r   r  r   Nr   r7  r  Tr  r\  r  r+  )r(   r   r  r  r  rd   r   r   r   rC  r  r   r  concatenaterB  r	   rg   r  r   r  r  r.   rN   )rL  ro   r   r,  r   r  r  	n_targetsexpected_predsi_coln_classes_in_labelr  r&  
y_enc_colsr  rT  rU  r  	fold_colsidxr  cv_predict_outputs                         r^   "check_cross_val_predict_multilabelr    sQ   
 
5	)B $((I&&N
 
INy! Qq%x[!12"v1D'DQ	IQ!34IGGIf5RZZH	
 " qwwqz""A 			!AqD'$/21bjj=A"   NN:A.Exx)tCjnnQXu|4S)!D'2
9%E		%,q%x"89I$))Q..8.?%d+ffT9--7->%c* & * a%Q0-cbO$%^)<<<<s,-.A-a0.2CD / 1%s   2>I8c                 F    [        SSS9u  pS H  n[        XX#5        M     g )Nr   r   )r}  r  r7  r   rJ  )r   r  )rL  ro   r   r,  s       r^   *check_cross_val_predict_with_method_binaryr  ?  s'     ;DAM&sq9 Nra   c                     [        5       nUR                  UR                  p2[        X#SS9u  p#S H  n[	        XX45        M     g )Nr   r  r  )r   r  r  rF   r  )rL  r  ro   r   r,  s        r^   .check_cross_val_predict_with_method_multiclassr  G  s;    ;D99dkkq1a(DAM*31= Nra   c                  P    [        [        5       5        [        [        5       5        g rk   )r  r   r  r   ra   r^   "test_cross_val_predict_with_methodr  O  s    ./A/CD23E3GHra   c                      [        5       n U R                  U R                  p![        XSS9u  pS H  n[	        SSS9n[        XAX#5        M     g )Nr   r  r  log_lossr   )lossr  )r   r  r  rF   r   r  )r  ro   r   r,  rL  s        r^   &test_cross_val_predict_method_checkingr  T  sI     ;D99dkkq1a(DAM!<*31= Nra   c                      [        5       n U R                  U R                  p![        XSS9u  p[	        [        SS9SSS/0SS9nS	 H  n[        X1X$5        M     g )
Nr   r  r  r  rp  r   r   r   r  )r   r  r  rF   r%   r   r  )r  ro   r   rL  r,  s        r^   /test_gridsearchcv_cross_val_predict_with_methodr  _  sX    ;D99dkkq1a(DA
)r:S3(OPQ
RCM*31= Nra   c                  v    Sn Sn[        U SUSSS9u  p#[        [        SSS	95      nS
 H  n[        XBX5S9  M     g )Nr  r   r   r   r  r<  r  r}  r  r  r)  r   )r*  r  )r   r7  r8  )r   r9   r   r  )n_sampr}  ro   r   rL  r,  s         r^   1test_cross_val_predict_with_method_multilabel_ovrr  h  sO     FI)1	aVXDA 0RST
UC8&sq@ 9ra   c                       \ rS rSrS rSrg)RFWithDecisionFunctioniv  c                     U R                  U5      nSn[        U[        5      (       d   U5       eU Vs/ s H   oDR                  S   S:X  a	  US S 2S4   OUPM"     nnU$ s  snf )Nz?This helper should only be used on multioutput-multiclass tasksr   r   r   )r   r   r   rd   )r]   ro   probsmsgr  s        r^   r7  (RFWithDecisionFunction.decision_functionz  sg    ""1%O%&&++&=BCUWWQZ1_1b5!3UC Ds   'Ar   N)r   r   r   r   r7  r   r   ra   r^   r
  r
  v  s    ra   r
  c            	         Sn [        SSU SSS9u  pUS S 2S4==   US S 2S4   -  ss'   S	 HK  n[        SSS
9n[        R                  " 5          [        R                  " S5        [        XAX#S9  S S S 5        MM     g ! , (       d  f       M_  = f)Nr   r  r   r   r  r  r   r   r   rJ  r7  n_estimatorsr  ignorer8  )r   r
  r  r  simplefilterr  )r}  ro   r   r,  rL  s        r^   0test_cross_val_predict_with_method_multilabel_rfr    s     I)Y1SUDA adGqAwGM$!!D$$&!!(+.sqH '& N&&s   !A<<
B	c                  ^   [         R                  R                  S5      n U R                  SSSS9n[         R                  " / SQ5      n[        5       nS HC  n[        R                  " 5          [        R                  " S5        [        X1X$5        S S S 5        ME     g ! , (       d  f       MW  = f)Nr   r   )r  r   r  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  )
r   rc  rd  normalrD  r   r  r  r  r  )rg  ro   r   rL  r,  s        r^   -test_cross_val_predict_with_method_rare_classr    s     ))


"C

1ah
'A
;<A

CM$$&!!(+.sqA '& N&&s   -#B
B,	c            	      t   [         R                  R                  S5      n U R                  SSSS9n[         R                  " SS/SS/SS/SS/SS//5      nS HK  n[        SSS9n[        R                  " 5          [        R                  " S	5        [        XAX#S
9  S S S 5        MM     g ! , (       d  f       M_  = f)Nr   r   )r   r   r  r   )r   rJ  r   r  r  r8  )
r   rc  rd  r  rD  r
  r  r  r  r  )rg  ro   r   r,  rL  s        r^   ;test_cross_val_predict_with_method_multilabel_rf_rare_classr    s     ))


"C

1ag
&A
1a&1a&1a&1a&1a&9:A8$!!D$$&!!(+.sqH '& 9&&s   :!B((
B7	c                    [         R                  " [        U5      U/5      n[        XE5      nUR	                  X5       H  u  pUR                  X   X   5        U" X	   5      n
US:X  a"  [         R                  " [        U	5      U45      nOJ[         R                  " [        U	5      U4[         R                  " UR                  5      R                  5      nXS S 2UR                  4'   XU	'   M     U$ )Nr   )r   r  r   r  rB  rg   r  r  r  r  r   )ro   r   r   classesrL  r,  r  funcrT  rU  expected_predictions_exp_pred_tests               r^   get_expected_predictionsr!    s    88SVW$563Dxx~!(# $QW_$HHc$i%9:MGGTG$bhh/C/I/I&J&N&NM *?ao&%2T" &  ra   c            	      l   [         R                  " S5      R                  SS5      n [         R                  " [	        S5       Vs/ s H  oS-  PM	     sn5      nSn[        SS9n[        SS9n[        5       n/ SQnU H  n[        5       n	[        XX(US	9n
[        XXCX5      n[        X5        [        XX(US	9n
[        XXSX5      n[        X5        [        [         R                  " [	        S5      S5      S
S9n[        XX(US	9n
UR                  U5      n[        XXCX5      n[        X5        M     g s  snf )Nr  r  r   r   r   r>  r   r  r+  r   r  )r   r  r   rD  r   r(   r=   r   r.   r!  rP   rF   r   fit_transform)ro   r   r   r  kfold3kfold4lemethodsr,  rL  rQ  r  s               r^   #test_cross_val_predict_class_subsetr(    s/   
		#sA&A
5:.:ar':./AGAFAF	BIG " (VL  8&3 
 	""6D (VL7&3 
 	""6D BIIeBi,1='VLQ7&3 
 	""6D5  /s   D1c                    ^^ [        5       n U R                  U R                  p![        5       n[        R
                  " SSS9nUR                  S5        UR                  5         [        R                  " UR                  [        R                  S9m[        R                  " UR                  SS[        R                  S9m [        X1UU4S	 jS
9  [        R                  " [        5         [        X1UU4S jS
9  S S S 5        Su  mm[!        S5       H$  n ["        R$                  " UR                  5          g    g ! , (       d  f       NG= f! [&         a    [)        S5         MR  f = f! Su  mm[!        S5       H@  n ["        R$                  " UR                  5          f ! [&         a    [)        S5         M>  f = f   f = f)NwbF)moder  s   Hello world!!!!!r  r   r)rd   r+  r  c                    > T$ rk   r   )rL  ro   r   rx   s      r^   r   #test_score_memmap.<locals>.<lambda>  s    Ura   r  c                    > T$ rk   r   )rL  ro   r   r  s      r^   r   r.    s    ra   r~   r   r   )r   r  r  r   tempfileNamedTemporaryFilewritecloser   memmapnamer  r/   r  r  r   r   osunlinkOSErrorr   )r  ro   r   r  tfr  rx   r  s         @@r^   test_score_memmapr:    sF   ;D99dkkq

C		$	$$u	=BHH !HHJYYrwwbjj1FIIbggRcDE+BC]]:&CA/GH '
 #qA		"''"  '&  c
 #qA		"''" c
	 sZ   )E( *D;:E(  E;
E	E( E%$E%(F>= FF>F8	4F>7F8	8F>c                  2  ^^ [         [         4/n  SSKJnJn  U R	                  X!45        U  HW  u  mm[        5       nUR                  UR                  pTT" U5      T" U5      pvU4S jnU4S jn	[        XS9n
[        XU5        MY     g ! [
         a     Njf = f)Nr   r  c                    > [        U T5      $ rk   r  r  s    r^   r   4test_permutation_test_score_pandas.<locals>.<lambda>  r  ra   c                    > [        U T5      $ rk   r  r  s    r^   r   r=    r  ra   r  )rL   r  r  r  rC  r  r   r  r  rK   r2   )r  r  r  r  ro   r   r  r  r  r  r  r  r  s              @@r^   "test_permutation_test_score_pandasr?    s    ]+,E,f() ).$
${yy$++1&q):a=e<: Hs%0 ).  s   B	 	
BBc                     [        [         R                  5      n [        R                  " SS5      n[        R                  " SS5      [        R                  " SS5      p2[	        U US [	        5       UUSS S S S9
nSUS'   [
        R                  " [        S	S
9   [        S0 UD6  S S S 5        U R                  5       S:X  d   eg ! , (       d  f       N%= f)Nr   r   r   r   r  )
r%  ro   r   r  rT  rU  r  
parametersr  score_paramsr   r   z%Failing classifier failed as requiredr  r  r   )
r8   FAILING_PARAMETERr   r  r!  r  r  r   r5   rx   )failing_clfro   rT  rU  fit_and_score_argss        r^   test_fit_and_score_failingrF    s    #$5$G$GHK
		!RA))Aq/299Q?4

v )0}%	z)P	Q,+, 
R #%%% 
R	Qs   C
Cc                      [        SSS9u  p[        SSS9n[        [        5       R	                  U 5      5      u  p4[        UU U[        5       UUSSSS.S S S	S
9n[        S0 UD6nUS   US   :X  d   eg )Nr:  r   r;  r=  r>  r  rp  )r  r  T)r%  ro   r   r  rT  rU  r  rA  r  rB  return_parametersrA  r   )r   r?   nextr,   rB  r!  r5   )ro   r   r  rT  rU  rE  results          r^   test_fit_and_score_workingrK  7  s    !<DA
XA
.C|~++A./KE

v #C0 101F,#5l#CCCCra   c                   2    \ rS rSrSS jrSS jrSS jrSrg)	DataDependentFailingClassifieriM  Nc                     Xl         g rk   max_x_value)r]   rP  s     r^   r_   'DataDependentFailingClassifier.__init__N  s    &ra   c                 h    XR                   :  R                  5       nU(       a  [        SU S35      eg )NzClassifier fit failed with z values too high)rP  r  r   )r]   ro   r   num_values_too_highs       r^   rg   "DataDependentFailingClassifier.fitQ  s>     #3#3388:-.A-BBRS  ra   c                     g)Nr  r   rv   s      r^   rx   $DataDependentFailingClassifier.scoreX  s    ra   rO  rk   r~   )r   r   r   r   r_   rg   rx   r   r   ra   r^   rM  rM  M  s    'ra   rM  r   c                 Z   [        SS9n[        R                  " SS5      n[        R                  " S5      nXU/nSU S.nSn[        R
                  " S	US
    SU 3[        R                  S9n[        R                  " [        US9   [        U0 UD6  S S S 5        g ! , (       d  f       g = f)Nr%  rO  r   r   r  r   r   r   z8ValueError: Classifier fit failed with 1 values too highzh2 fits failed.+total of 3.+The score on these train-test partitions for these parameters will be set to r   z.+flagsr  )rM  r   r  r  recompileDOTALLr  r#  r   r0   )r   rD  ro   r   cross_validate_argscross_validate_kwargsindividual_fit_error_messager(  s           r^   -test_cross_validate_some_failing_fits_warningra  \  s     1Q?K
		!RA

A&1-#$[A 	C ! jj%m45R8T7UW iiO 
&o	>+E/DE 
?	>	>s   B
B*c                 n   [        [         R                  5      n[        R                  " SS5      n[        R                  " S5      nXU/nSU S.nSn[
        R                  " SU 3[
        R                  S9n[        R                  " [        US	9   [        U0 UD6  S S S 5        g ! , (       d  f       g = f)
Nr   r   r  r$  rX  z1ValueError: Failing classifier failed as requiredz4All the 7 fits failed.+your model is misconfigured.+rY  r  )r8   rC  r   r  r  r[  r\  r]  r  r  r   r0   )r   rD  ro   r   r^  r_  r`  r  s           r^   *test_cross_validate_all_failing_fits_errorrc  x  s     $$5$G$GHK
		!RA

A&1-#$[A#V JJB+,. iiM 
z	7+E/DE 
8	7	7s   B&&
B4c                     [        U5      erk   )r   )r%  ro   r   	error_msgs       r^   _failing_scorerrf    s    
Y
ra   zignore:lbfgs failed to converger   c           
         [        SS9u  p[        SS9R                  X5      nSn[        [        US9nU S:X  a/  [
        R                  " [        US9   [        X1US	XPS
9  S S S 5        g SU  3n[
        R                  " [        US9   [        X1US	XPS
9n[        Xp5        S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)NTr  r   r  "This scorer is supposed to fail!!!re  r   r  r   )r   r  r   r  )r   r   rg   r   rf  r  r  r   r/   r#  r$  rN   )r   ro   r   r  re  failing_scorerwarning_msgr  s           r^   #test_cross_val_score_failing_scorerrm    s    
 %DA
a
(
,
,Q
2C4I_	BNg]]:Y7a 87//:m= 	 \\+[9$aF F0	 :9 87 :9s   B(B9(
B69
CrY  with_multimetricc                 Z   [        SS9u  p4[        SS9R                  X45      nSn[        [        US9nU(       a  [        [        5      nUUUS.n	OUn	U S:X  a2  [        R                  " [        US	9   [        UUUS
U	UU S9  S S S 5        g SU  3n
[        R                  " [        U
S	9   [        UUUS
U	UU S9nU HC  nSU;   d  M  SU;   a$  X    H  n[        U[        5      (       a  M   e   M5  [        X   U 5        ME     S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)NTr  r   rh  ri  rj  )score_1score_2score_3r   r  r   )r   r  rY  r   r  r6   _score_2)r   r   rg   r   rf  r   r    r  r  r   r0   r#  r$  r   ru   rN   )r   rY  rn  ro   r   r  re  rk  non_failing_scorerr  rl  r4  r   r&  s                 r^   "test_cross_validate_failing_scorerru    s>    %DA
a
(
,
,Q
2C4I_	BN();<%)%
 !g]]:Y7#5' 87//:m= 	 \\+[9$#5'G s?!S( ")A#-a#7#77#7 ".
 (kB  :9 87 :9s$   2D)D D*D
D
D*c                     g)Ng;pΈ^@r   )r&  jrf  s      r^   three_params_scorerrx    s    ra   z:train_score, scorer, verbose, split_prg, cdt_prg, expectedr   )r   r   r   r   zS\[CV\] END .................................................... total time=   0.\ds)sc1sc2)scorersr   ze\[CV 2/3\] END  sc1: \(train=3.421, test=3.421\) sc2: \(train=3.421, test=3.421\) total time=   0.\dsr   zW\[CV 2/3; 1/1\] END ....... sc1: \(test=3.421\) sc2: \(test=3.421\) total time=   0.\dsc                    [        SSS9u  px[        SSS9n	[        [        5       R	                  U5      5      u  p[        U	UUUU
UUS S S UUUS9n[        S
0 UD6  U R                  5       u  pUR	                  S5      n[        U5      S:  a!  [        R                  " XoS	   5      (       d   eg [        R                  " XoS   5      (       d   eg )Nr:  r   r;  r=  r>  )r%  ro   r   r  rT  rU  r  rA  r  rB  rY  split_progresscandidate_progress
r   r   r   )r   r?   rI  r,   rB  r!  r5   r  r   r[  r  )r  rZ  r  r  	split_prgcdt_prgexpectedro   r   r  rT  rU  rE  r  r  outliness                   r^   test_fit_and_score_verbosityr    s    N !<DA
XA
.C|~++A./KE 

& " ('( FCyyH
8}qxx1+....xx1+....ra   c            
          Sn S n[         R                  " [        U S9   [        S S S US [        R
                  S9  S S S 5        g ! , (       d  f       g = f)Nz&scoring must return a number, got Nonec                     g rk   r   )r%  X_tests     r^   two_params_scorer%test_score.<locals>.two_params_scorer<	  s    ra   r  )r%  r  r  r  rB  r   )r  r  r   r6   r   r"  )r  r  s     r^   r[  r[  9	  sF    <M 
z	7$	
 
8	7	7s   A
Ac                      S n [        SSSS9u  p[        SS9nUR                  X5        [        X1USU S9n/ S	QnU H  nS
R	                  U5      U;   a  M   e   g )Nc                 `    U R                  U5      n[        X#5      nUS   US   US   US   S.$ )N)r   r   ry  )r   r   )r   r   tnfpfntp)rp   r   )r  ro   r   rl  cms        r^   rm  Ptest_callable_multimetric_confusion_matrix_cross_validate.<locals>.custom_scorerK	  s8    Qa(hbhbhbhOOra   (   r   r  )r<  r  r  r  r   )r   r  r  ztest_{})r   r@   rg   r0   r   )rm  ro   r   rL  ry  score_namesr5  s          r^   9test_callable_multimetric_confusion_matrix_cross_validater  J	  sg    P
 KDA

$CGGAMaGJ*K%333 ra   c                  B    [        SS9u  p[        [        5       XSSS9  g)zVCheck that regressors with partial_fit is supported.

Non-regression test for #22981.
r  r  Tr   )r  r   N)r   r1   r;   )ro   r   s     r^   *test_learning_curve_partial_fit_regressorsr  Z	  s"    
 +DA <>1dqQra   c           	         [        SSSSU S9u  p[        R                  " U5      nX   X#   p![        5       nSn[        R
                  " [        US9   [        XAUS[        R                  S	9tpgpS
S
S
5        [        S5       H_  n	[        R                  " WU	   5      R                  5       (       d   e[        R                  " WU	   5      R                  5       (       a  M_   e   [        SWR                  S   5       H^  n	[        R                  " Xy   5      R                  5       (       a   e[        R                  " WU	   5      R                  5       (       d  M^   e   g
! , (       d  f       N= f)zKChecks for fit failures in `learning_curve` and raises the required warningr:  r   r   F)r<  r}  r  rF   r  z#10 fits failed out of a total of 25r  r   rX  Nr   r   )r   r   rA  r?   r  r#  r   r1   r"  r   isnanr2  rd   any)
global_random_seedro   r   
sorted_idxsvcr(  r  rZ  r[  r  s
             r^   -test_learning_curve_some_failing_fits_warningr  e	  s4    'DA AJ=!-q
%C;O	&o	>)7A!*
&
 
? QxxxC()--////xx
3(,,....  Q))!,-88K,-11333388JsO,002222 . 
?	>s   E!!
E/c           	      f   [        SS9u  p[        U5      n[        5       n[        SSU S9n[	        X1X$SSS9nSU;  d   e[	        X1X$SSS9nSU;   d   eUS   S	   nUS   S
   n[        U5      UR                  :X  d   e[        U5      UR                  :X  d   e[        U Vs/ s H  oR                  PM     snS5        [        U Vs/ s H  oR                  PM     snS5        [        UR                  X5      5       H$  u  n	u  p[        Xi   U
5        [        Xy   U5        M&     gs  snf s  snf )z<Check the behaviour of `return_indices` in `cross_validate`.Tr  r   )r?  rF   r  r   F)r   r  return_indicesindicesrT  rU  r  r5  N)r   r>   r   r(   r0   r   r?  rQ   r  r^  rB  )r  ro   r   r%  r   ry  train_indicestest_indicesr  	split_idxexpected_train_idxexpected_test_idxs               r^   "test_cross_validate_return_indicesr  	  s5   %DAaA"$I	46H	IB	aqQVWJJ&&&	aqQUVJ
"""y)'2Mi(0L},,,|+++MBMMBCHLALLA2F>GQR>W:	:&=35GH<24EF ?X CAs   #D)	D.zfunc, extra_argsalphar   )r  r  )enable_metadata_routingc           	          [         R                  " [        SS9   U " S[        5       [        [
        / S.UD6  SSS5        g! , (       d  f       g= f)z{Check that we raise an error if `groups` are passed to the cv method instead
of `params` when metadata routing is enabled.
z`groups` can only be passed ifr  )r%  ro   r   r  Nr   )r  r  r   rA   ro   r   )r  
extra_argss     r^   #test_groups_with_routing_validationr  	  sF      
z)I	J 	
)+		

 	
 
K	J	Js   A
Ac                 D    [        SSSS9u  p#U " S[        5       X#S.UD6  g)zTest that no errors are raised when passing `params=None`, which is the
default value.
Non-regression test for: https://github.com/scikit-learn/scikit-learn/issues/30447
r  r   r   r|  )r%  ro   r   Nr   )r   rA   )r  r  ro   r   s       r^   test_cross_validate_params_noner  	  s*    " JDAA&(AAjAra   c                    [         R                  " S5      n[        R                  " [        US9   U " S[        5       [        [        [        / S9S.UD6  SSS5        U [        :X  a  g[         R                  " S5      n[        R                  " [        US9   U " S[        5       R                  SS9R                  SS9[        [        [        / S9S.UD6  SSS5        g! , (       d  f       N= f! , (       d  f       g= f)	zICheck that we raise an error when passing metadata that is not
requested.z[metadata] are passed but are not explicitly set as requested or not requested for ConsumingClassifier.fit, which is used withinr  )metadata)r%  ro   r   r   Nz[metadata] are passed but are not explicitly set as requested or not requested for ConsumingClassifier.score, which is used withinTr   )r[  escaper  r  r   rA   ro   r   r!  r.   set_fit_requestset_partial_fit_request)r  r  r
  s      r^    test_passed_unrequested_metadatar  	  s      ii	FG 
/w	? 	
)+$		

 	
 
@   ii	HG 
/w	? 	
)+_d_+$$d$3$	
 	
 
@	?# 
@	?" 
@	?s   %C?C0
C-0
C>c                 p   [        5       n[        US9R                  SSS9n[        5       n[        US9R	                  SSS9n[        5       n[        US9R                  SS	S9n[        [        5      n[        R                  R                  S
5      n	U	R                  U5      n
U	R                  U5      nU	R                  S
SU5      nU	R                  U5      nU	R                  U5      nU	R                  U5      n[        [        [        USS9S9[         [        US9["        [        US9[$        [        US9[&        [        US9[(        [        5       0n[        UUUUS9nU [(        La  UR+                  U
US9  U " U4[        [,        US.UU    DUDSU0D6  U [(        La  [/        U5      (       d   eU H  n[1        USU R2                  SU
US9  M     [/        U5      (       d   eU H  n[1        USU R2                  UUS9  M     [/        U5      (       d   eU H  n[1        USU R2                  SUUS9  M     g)zYCheck that the respective cv method is properly dispatching the metadata
to the consumer.registryscore_weightsscore_metadatar   r  split_groupssplit_metadata)r  r  fit_sample_weightfit_metadatar   r   r  )	my_scorerr  r  )r  r  r  r  )r  r  )ro   r   r   r   rx   objr,  parentsplit_paramsr   r  rB  )r  r,  r  r  r  rg   N)rD   rB   set_score_requestrC   set_split_requestrA   r  rT   ro   r   rc  rd  re  randintr0   r!  r/   r1   r3   r2   r.   updater   r   rE   r   )r  r  scorer_registryr  splitter_registrysplitterestimator_registryr%  r<  rg  r  r  r  r  r  r  scoring_argsr   _scorer	_splitter
_estimators                        r^   !test_validation_functions_routingr  
  su     kOo6HH%0@ I F " *;<NN(8 O H ##-?@PP)N Q I QI
))


"CHHY'MXXi(N;;q!Y/LXXi(N+88I&L 	TFZ%PQf-V,$v.V 446L !%+!	F $$') 	 	

 	

	
 t
   $$?####"==6'#	
 #  !!!!&	==#	
 ' !""""(
==6+!	
 )ra   c                     [        [        5      n [        R                  R	                  S5      nUR                  U 5      nUR                  U 5      n[        5       n[        US9R                  SSS9n[        U[        [        [        5       S[        X#S9S9  [        U5      (       d   eU H  n[        US	S
SUUS9  M     g)zTest that learning_curve routes metadata to the estimator correctly while
partial_fitting it with `exploit_incremental_learning=True`.r   r  r  r  r  T)r  r  )ro   r   r   r  r   r   r1   r  N)rT   ro   r   rc  rd  re  rD   rA   r  r1   r   rC   r!  r   rE   )r<  rg  r  r  r  r%  r  s          r^   8test_learning_curve_exploit_incremental_learning_routingr  k
  s    
 QI
))


"C+88I&L"##)N    

%)&7S !""""(
 #6+!	
 )ra   r%  r   r   )idsr   )Nr   r   znamespace, device_, dtype_namec                    [        X#5      n[        U 5      (       a  [        SSSSSS9u  pgO[        SSSSS9u  pgUR	                  U5      nUR	                  U5      n	UR                  XS9n
UR                  XS9n[        SS	9   [        X
XS
9nSSS5        [        XXS
9n[        [        WU5      U[        U5      S9  g! , (       d  f       N7= f)zlTest that `cross_val_predict` functions correctly with the array API
with both a classifier and a regressor.i  r   r   r  )r<  r  r}  r  r  r  )deviceT)array_api_dispatchr   N)atol)rM   r
   r   r   r  asarrayr   r.   rN   rH   rG   )r%  r   	namespacedevice_
dtype_namexpro   r   X_npy_npX_xpy_xppred_xppred_nps                 r^   +test_cross_val_predict_array_api_compliancer  
  s    " 
i	1BY"qAQUW
1 q
 88JD88JD::d:+D::d:+D	4	0#ITA 
1  	=G'2&nZ6P	 
1	0s   B??
C)r   r6  r[  r0  r  	functoolsr   timer   numpyr   r  scipy.sparser   sklearnr   sklearn.baser   r   r	   r
   sklearn.clusterr   sklearn.datasetsr   r   r   r   r   r   sklearn.discriminant_analysisr   sklearn.ensembler   sklearn.exceptionsr   r   sklearn.imputer   sklearn.linear_modelr   r   r   r   sklearn.metricsr   r   r   r   r   r    r!   r"   r#   sklearn.metrics._scorerr$   sklearn.model_selectionr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   #sklearn.model_selection._validationr4   r5   r6   $sklearn.model_selection.tests.commonr7   )sklearn.model_selection.tests.test_searchr8   sklearn.multiclassr9   sklearn.neighborsr:   sklearn.neural_networkr;   sklearn.pipeliner<   sklearn.preprocessingr=   r>   sklearn.svmr?   r@   %sklearn.tests.metadata_routing_commonrA   rB   rC   rD   rE   sklearn.utilsrF   sklearn.utils._array_apirG   rH   rI   rJ   sklearn.utils._mockingrK   rL   sklearn.utils._testingrM   rN   rO   rP   rQ   sklearn.utils.fixesrR   rS   sklearn.utils.validationrT   rV   r   r   r   r   r  ro   rD  r   r   r  r   markparametrizer  r  r)  r6  r  rV  rE  rF  r  r  r  r  r  r  r  r  r  r  r  r  r  r3  rC  rH  rK  rS  rX  ra  rj  rl  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r!  r(  r:  r?  rF  rK  rM  r"  ra  rc  rf  filterwarningsrm  ru  rx  r  r[  r  r  r  r  r  r  r  r  r  r  r   ra   r^   <module>r     s     	 	       ! " M M "  E 3 I ( 
 
 
 7    " 
 A G 2 2 / % 5 &  "  E  ? 1"] "6(> <" ",	",F 	"S8_m S8p GGGHH:; XX;<FF1I .9%< :%<P)1LhL& t}5.94AD 4A : 64An?MDF9R>,0&5&86 .9 3 : 3F& J&L0 .9? :?D$MH< .95
 :5
p-W`	#	# .922 :22j2$T,
$ .9& :&:=zS&9K W4S0$NC.,,S(M`&-`I6,+D\#L= .93 :3$
*
81Eh:>I
>>A	3 	I"BI" (%EP41(&6D,]  4F 5F6 4F 5F.  =>G(<=1 > ?14 =>G(<=-e}=+eT];:C < > > ?:Cz @ $	
  3<OP ?
	
  3<OP $
	
+ #H/I#H/@
"4 R3BG: 		"	B		$	'"((A3-PQ
 -
 .

 		"	B		$	'"((A3-PQ
 -B .
B 		"	B		$	'"((A3-PQ
 -"
 .
"
J 		"	B		$	'"((A3-PQ
 -Y
 .
Y
x -"
 ."
R 
W(*+	./  
 |,$-/'  
 -ra   