
     hpj              
          d dl Z d dlZd dlmZ d dlmZ d dlZd dl	m
Z
 d dl	mZ d dl	mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  d dlm!Z! d dlm"Z" d dl#m$Z$m%Z% d dl&m'Z' d dl(m)Z)m*Z* d dl(m+Z+ d dl(m,Z, d dl-m.Z. d dl/m0Z0 d dlm1Z1 d dl2m3Z3 d dl4m5Z5m6Z6 d dl7m8Z8m9Z9 d d l:m;Z; d d!l<m=Z= d d"lm>Z> d# Z?d$ Z@d% ZAd& ZBd' ZCd( ZDd) ZE ejF                    ZGeGjH        ZIeGjJ        ZK e3eKd*+          ZL e3eKd,+          ZM ejN        eKeLeMf          ZOeIjP        \  ZQZReOjP        d*         ZS eT ejU        eK                    ZV eW eXejU        eKeLeMf                    ZYd- ZZd. Z[d/ Z\d0 Z]d1 Z^d2 Z_d3 Z`d4 Zad5 Zbd6 Zcd7 Zde je        f                    d8d9d:g          d;             Zgd< Zhd= Zid> Zjd? Zkd@ ZldA ZmdB ZndC ZodD Zpe je        f                    dE ed,F           e+ ed,F                     e) ed,F                    g          dG             Zq G dH dIe8          Zr G dJ dKe9          Zse je        t                    dL          e je        f                    dM e+ esdNO                     ej                    f e, er                       ej        dPd Q          fg          dR                         ZudS Zve je        f                    dTe+efe,efg          dU             Zwe je        f                    dVeWejx        eyg          dW             ZzdX Z{dY Z|dZ Z}d[ Z~dS )\    N)	cpu_count)assert_almost_equal)assert_array_equal)assert_array_almost_equal)datasets)clone)make_classification)load_linnerud)make_multilabel_classification)make_regression)GradientBoostingRegressorRandomForestClassifier)NotFittedError)Lasso)LogisticRegression)OrthogonalMatchingPursuit)Ridge)SGDClassifier)SGDRegressor)LinearRegression)jaccard_scoremean_squared_error)OneVsRestClassifier)ClassifierChainRegressorChain)MultiOutputClassifier)MultiOutputRegressor)	LinearSVC)DecisionTreeClassifier)ClassifierMixin)shuffle)GridSearchCVtrain_test_split)DummyRegressorDummyClassifier)make_pipeline)SimpleImputer)StackingRegressorc                     t          j        dd          \  } }| d d         |d d         }}| dd          |dd          }}t          j        |          }t	          d          D ]N}t          d          }|                    ||d d |f                    |                    |          |d d |f<   Ot          t          d                    }|                    ||           |                    |          }	t          ||	           d S N   r   	n_targetsrandom_state2   r.   )
r   r   np
zeros_likeranger   fitpredictr   r   )
XyX_trainy_trainX_testy_test
referencesnrgry_preds
             Z/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/sklearn/tests/test_multioutput.pytest_multi_target_regressionrA   )   s   #aa@@@DAq"vq"vWGrssVQrssVFFv&&J1XX / /'Q777A''';;v..
111a4
8aHHH
I
ICGGGW[[  F
F+++++    c                  8   t          j        dd          \  } }| d d         |d d         }}| dd          |dd          }}t          j        |          }d}t	          d          D ]}t          dd          }	|	                    |d |         |d ||f                    |	                    ||d          ||d |f                    |	                    |          |d d |f<   t          t          dd                    }	|	                    |d |         |d |                    |	                    ||d          ||d                     |	                    |          }
t          ||
           t          t          t                    d          rJ d S )	Nr+   r   r,   r/         r.   max_iterpartial_fit)r   r   r1   r2   r3   r   rH   r5   r   r   hasattrr   )r6   r7   r8   r9   r:   r;   r<   
half_indexr=   sgrr?   s              r@   (test_multi_target_regression_partial_fitrL   ;   s   #aa@@@DAq"vq"vWGrssVQrssVFFv&&JJ1XX / /A666,gkzk1n.EFFF
,gjkk1n.EFFF;;v..
111a4
|QGGG
H
HCOOGKZK('+:+*>???OOGJKK('*++*>???[[  F
F++++E22MBBBBBBBrB   c                  
   t          j        dd          \  } }t          t          d                    }d}t	          j        t          |          5  |                    | |           d d d            d S # 1 swxY w Y   d S )N   r   r,   r0   zat least two dimensionsmatch)r   r   r   r   pytestraises
ValueErrorr4   )r6   r7   r>   msgs       r@   'test_multi_target_regression_one_targetrU   R   s    #aa@@@DAq
8aHHH
I
IC
#C	z	-	-	-  1                 s   A88A<?A<c            	      H   t          j        dd          \  } }| d d         |d d         }}| dd          }t          j        t          j        t          j        t          j        t          j        fD ]}t          t          d                    }t          t          d                    }|
                    ||           |
                     ||          |           t          |                    |          |                     ||                               d S r*   )r   r   sp
csr_matrix
csc_matrix
coo_matrix
dok_matrix
lil_matrixr   r   r4   r   r5   )r6   r7   r8   r9   r:   sparser>   
rgr_sparses           r@   #test_multi_target_sparse_regressionr_   [   s   #aa@@@DAq"vq"vWGrssVF 	



 U U #5a#8#8#899)%Q*?*?*?@@
!!!vvg000CKK//1C1CFF6NN1S1STTTTU UrB   c                  d   g dg dg} ddgddgg}ddg}t          t                                }d}t          j        t          |          5  |                    | ||           d d d            n# 1 swxY w Y   t          t          d	
                    }|                    | ||           d S )NrN      r+      rE      T㥛 	@X9v@g?g333333?zdoes not support sample weightsrO   r   r0   )r   r   rQ   rR   rS   r4   r   )r6   r7   wr>   rT   s        r@   $test_multi_target_sample_weights_apiri   p   s    	IIIA
%(A	c
A
8::
;
;C
+C	z	-	-	-  1a               8aHHH
I
ICGGAq!s   A11A58A5c                     g dg dg} ddgddgg}ddg}t          t          dd	                    }|                    | ||           ddg}t          t          dd	                    }|                    | ||           |                    |           d         d         |                    |           d         d         k    sJ d S )
Nra   rc   rf   rg          @      ?r   rE   rF   )r   r   rH   r5   )r6   r7   rh   rgr_wr>   s        r@   +test_multi_target_sample_weight_partial_fitrn      s    	IIIA
%(A	c
A 1q!I!I!IJJE	aA 
c
A
|QGGG
H
HCOOAq!;;q>>!Q5==#3#3A#6q#9999999rB   c                     g dg dg} ddgddgg}ddg}t          t          d                    }|                    | ||           g dg dg dg}ddgddgddgg}t          t          d                    }|                    ||           g d	g d
g}t          |                    |          |                    |                     d S )Nra   rc   rf   rg   rk   rl   r   r0   g      ?g      @      @rq   g      @g      @)r   r   r4   r   r5   )Xwywrh   rm   r6   r7   r>   r:   s           r@    test_multi_target_sample_weightsru      s    
))YYY	B%.5%.	)B	c
A !:!J!J!JKKE	IIb"a 
IIIyyy)A
%%8A
8aHHH
I
ICGGAqMMMoo/FF++U]]6-B-BCCCCCrB   rN   r0   rb   c                  @   t          ddd          } t          | d          }|                    t          t          t
                     |j        d         }|                    t          t                     |j        d         }t                      dk    r||usJ d S d S )Nlog_lossrN   rE   lossr.   rG   rd   )n_jobsr   )r   r   rH   r6   r7   classesestimators_r   )sgd_linear_clfmorest1est2s       r@   8test_multi_output_classification_partial_fit_parallelismr      s    "
QOOON
q
9
9
9COOAq'"""?1DOOAq?1D{{Q4 rB   c                  P   t          dd          } t          |           }|                    t          t                     t          |d          rJ t          ddd          } t          |           }|                    t          t                     t          |d          sJ d S )NrN   rE   rF   predict_probarw   rx   )r   r   r4   r6   r7   rI   )r}   multi_target_linears     r@   'test_hasattr_multi_output_predict_probar      s     #A>>>N/??Aq!!!*O<<<<< #
QOOON/??Aq!!!&8888888rB   c                     t          ddd          } ddi}d }t          | ||d	          }t          |          }|                    t          t
                     |                    t                     t          dd
          } t          |           }|                    t          t
                     d}t          j        t          |          5  |                    t                     d d d            d S # 1 swxY w Y   d S )NrN   rE   rw   )r.   rG   ry   ry   )hingelogmodified_huberc                 *    t          | d          rdS dS )Nr   rl   g        )rI   )	estimatorr6   r7   s      r@   custom_scorerz6test_multi_output_predict_proba.<locals>.custom_scorer   s    9o.. 	33rB   r+   )
param_gridscoringcvrF   z8probability estimates are not available for loss='hinge'rO   )
r   r"   r   r4   r6   r7   r   rQ   rR   AttributeError)r}   paramr   grid_clfr   err_msgs         r@   test_multi_output_predict_probar      sS   "AJOOON78E   5-A  H 099Aq!!!%%a((( #A>>>N/??Aq!!!HG	~W	5	5	5 - -))!,,,- - - - - - - - - - - - - - - - - -s   C;;C?C?c                     t          ddd          } t          |           }t          j        d         dz  }|                    t          d |         t
          d |         t                     |                    t                    }t          t          f|j        k    sJ |                    t          |d          t
          |d                     |                    t                    }t          t          f|j        k    sJ t          d          D ]}t          |           } |                     t          d |         t
          d ||f         t          |                    t          |                     t                    |d d |f                    |                     t          |d          t
          |d |f                    t          |                     t                    |d d |f                    d S )	Nrw   rN   rE   rx   r   rb   )r{   r+   )r   r   r6   shaperH   r7   r{   r5   	n_samples	n_outputsr3   r   r   )r}   r   rJ   first_predictionssecond_predictionsis         r@   ,test_multi_output_classification_partial_fitr      s    #
QOOON/?? qJ##AkzkNAkzkNG#TTT+33A66y!%6%<<<<<##AjkkNAjkkNCCC,44Q77y!%7%===== 1XX P P~..""kzkNAkzk1n-wqz 	# 	
 	
 	
 	>11!446G16MNNN""1Z[[>1Z[[!^3DEEE>11!446HA6NOOOOP PrB   c                      t          ddd          } t          |           }d}t          j        t          |          5  |                    t          t                     d d d            d S # 1 swxY w Y   d S )Nrw   rN   rE   rx   z8classes must be passed on the first call to partial_fit.rO   )r   r   rQ   rR   rS   rH   r6   r7   )r}   r   rT   s      r@   Gtest_multi_output_classification_partial_fit_no_first_classes_exceptionr     s    "
QOOON/??
DC	z	-	-	- . .''1---. . . . . . . . . . . . . . . . . .s   !A--A14A1c                     t          dd          } t          |           }|                    t          t                     |                    t                    }t          t          f|j        k    sJ |	                    t                    }t          |          t          k    sJ |D ]}t          t          f|j        k    sJ t          t          j        t          j        |          d          |           t!          d          D ]}t#          |           }|                    t          t          d d |f                    t%          |                    t                              t%          |d d |f                   k    sJ t          t%          |	                    t                              t%          ||                              d S )N
   rN   n_estimatorsr.   axisr+   )r   r   r4   r6   r7   r5   r   r   r   r   len	n_classesr   r1   argmaxdstackr3   r   list)forestmulti_target_forestpredictionsr   class_probabilitiesr   forest_s          r@    test_multi_output_classificationr     s    $!DDDF/77 Aq!!!%--a00Ky![%66666'55a88M}****, C C9%)<)BBBBBBry=!9!9BBBKPPP 1XX S S--AqAwGOOA&&''4AAAqD0A+B+BBBBB4 5 5a 8 8994a@P;Q;QRRRR	S SrB   c                  &   t          d          } t          |           }t          |          }|                    t          t
                     |                    t                    }t          t          f|j	        k    sJ t          d          D ]}t          |          }|                    t          t
          d d |f                    t          |                    t                              t          |d d |f                   k    sJ d S )Nr   r0   r+   )r   r   r   r4   r6   r7   r5   r   r   r   r3   r   r   )svcmulti_class_svcmulti_target_svcr   r   multi_class_svc_s         r@   %test_multiclass_multioutput_estimatorr   -  s   

#
#
#C)#..O,_==A"**1--Ky![%66666 1XX L L 11Q!!!Q$((($,,Q//00DQQQT9J4K4KKKKKKL LrB   c            	         d} t           j                            |           }|                    d          }t          j        g d                              dd          }t          j        g d                              dd          }t          j        ||gd          }t          t          d	| 
                    }|	                    ||           |
                    |          }t          j        ddgddgddgddgddgg          t          j        g dg dg dg dg dg          g}t          t          |                    D ]}	t          ||	         ||	                    d S )Ni  )rE   rE   )size)bar   r   r   rE   rN   )defr   r   r   	liblinear)solverr.   gu)"?gu_|?gtĳ?gv?g/?g ?gK[aS?g[rO?ga]q?g?kDQ?)g 8칌?g?go|̋<?)gOW?gڔ#K?gz~?)gP1s&q?gf^?g]=!?)g{Y;?ghJ?gL$$S?)gXA	?g 7%?g?)r1   randomRandomStatenormalarrayreshapeconcatenater   r   r4   r   r3   r   r   )
seedrngr6   y1y2Yclfy_resulty_actualr   s
             r@   3test_multiclass_multioutput_estimator_predict_probar   ?  s   D )


%
%C 	


A 
+++	,	,	4	4Q	:	:B	+++	,	,	4	4Q	:	:B
Bxa(((A
+DAAA C GGAqMMM  ##H
Z(Z(Z(Z(Z(	
 	
 	333444444444444	
 	
H* 3x==!! 6 6HQK!55556 6rB   c                     g dg dg} ddgddgg}t          j        ddg          }t          dd	          }t          |          }|                    | ||           g dg dg dg}ddgddgddgg}t          dd	          }t          |          }|                    ||           g d
g dg}t          |                    |          |                    |                     d S )Nra   rc   r+   rb   rk   rl   r   rN   r   rp   rr   )r1   asarrayr   r   r4   r   r5   )	rs   rt   rh   r   clf_wr6   r7   r   r:   s	            r@   /test_multi_output_classification_sample_weightsr   n  s   
))YYY	Ba&1a&	B

C:A#!DDDF!&))E	IIb"a 
IIIyyy)A
Q!Q!Q A#!DDDF

'
'CGGAqMMMoo/FF++U]]6-B-BCCCCCrB   c                     g dg dg dg} ddgddgddgg}t          j        g d          }t          dd	          }t          |          }|                    | ||           g dg dg dg dg}ddgddgddgddgg}t          dd	          }t          |          }|                    ||           g dg}t          |                    |          |                    |                     d S )
Nra   rc   rp   r+   rb   )rk   rl   rl   rN      rF   )r1   r   r   r   r4   r   r5   )	rs   rt   rh   r}   r   r6   r7   r   r:   s	            r@   ;test_multi_output_classification_partial_fit_sample_weightsr     s"   
))YYY	0Ba&1a&1a&	!B

???##A"B???N!.11E	IIb"a 
IIIyyy///:A
Q!Q!Q!Q(A"B???N

/
/CGGAqMMMooFckk&115==3H3HIIIIIrB   c                     t          t          d                    } t          j        t                    5  |                     t          t                     d d d            n# 1 swxY w Y   t          j	        t          t          f          }|                     t          t                     t          j        t                    5  |                     t          |           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     t          t          d d df                    d d d            d S # 1 swxY w Y   d S )Nr   r0   zUnknown label typerO   rN   )r   r   rQ   rR   r   scorer6   r7   r1   column_stackr   r   r4   rS   )mocy_newrT   s      r@   test_multi_output_exceptionsr     s     	q 9 9 9
:
:C	~	&	&  		!Q              
 ORH%%EGGAqMMM	z	"	"  		!U               C	z	-	-	-  1QQQT7                 s5   !A$$A(+A(C00C47C4+EEEresponse_methodr   r5   c                     t          t                                }t          j        t                    5   t          ||           t                     ddd           dS # 1 swxY w Y   dS )zECheck that we raise the proper error when the estimator is not fittedN)r   r   rQ   rR   r   getattrr6   )r   r   s     r@   "test_multi_output_not_fitted_errorr     s       2 4 4
5
5C	~	&	& ) )%_%%a((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   A!!A%(A%c                     t          t                                } t          | d          sJ |                     t          t
                     t          | d          sJ t          t                                } t          | d          rJ d}t          j        t          |          5  | 
                    t                     ddd           n# 1 swxY w Y   |                     t          t
                     t          | d          rJ t          j        t          |          5  | 
                    t                     ddd           dS # 1 swxY w Y   dS )zVCheck the behavior for the delegation of predict_proba to the underlying
    estimatorr   z3'LinearSVC' object has no attribute 'predict_proba'rO   N)r   r   rI   r4   r6   r7   r   rQ   rR   r   r   )r   rT   s     r@   (test_multi_output_delegate_predict_probar     s   
   2 4 4
5
5C3(((((GGAqMMM3(((((  	
,
,CsO,,,,,
?C	~S	1	1	1  !              GGAqMMMsO,,,,,	~S	1	1	1  !                 s$   *CCC)EEEc                  t    t          ddddd          \  } }t          j        d |D                       }| |fS )Ni  d      r   r   )r   
n_featuresr   n_informativer.   c                 R    g | ]$}d  t          |d          dd         D             %S )c                 ,    g | ]}t          |          S  )int).0yyys     r@   
<listcomp>zLgenerate_multilabel_dataset_with_correlations.<locals>.<listcomp>.<listcomp>  s    DDDcSDDDrB   z#06brb   N)format)r   yys     r@   r   zAgenerate_multilabel_dataset_with_correlations.<locals>.<listcomp>  s:    QQQDDVB-?-?-CDDDQQQrB   )r	   r1   r   )r6   r7   Y_multis      r@   -generate_multilabel_dataset_with_correlationsr     sR     3"BUV  DAq hQQqQQQRRGg:rB   c                  R   t                      \  } }t          t                                }|                    | |           |                    |           }|j        |j        k    sJ |                    |           }|dk    }t          ||           t          |d          rJ d S )Nr   r   )	r   r   r   r4   r5   r   decision_functionr   rI   )r6   r   classifier_chainY_pred
Y_decisionY_binarys         r@   5test_classifier_chain_fit_and_predict_with_linear_svcr     s    8::DAq&y{{33A%%a((F<17""""!33A66JQHx((('9999999rB   c                     t                      \  } }t          j        |           }t          t	                                }|                    ||           |                    |          }t          t	                                }|                    | |           |                    |           }t          ||           d S N)r   rW   rX   r   r   r4   r5   r   )r6   r   X_sparser   Y_pred_sparseY_pred_denses         r@   6test_classifier_chain_fit_and_predict_with_sparse_datar     s    8::DAq}QH&'9';';<<1%%%$,,X66M&'9';';<<A#++A..L}l33333rB   c                      t                      \  } }| d dd d f         }| dd d d f         }|d dd d f         }|dd d d f         }t          t                                }|                    ||           |                    |          }t          t                                }|                    ||           |                    |          }	t          ||	d          t          ||d          k    sJ d S )NiX  samplesaverage)r   r   r   r4   r5   r   r   )
r6   r   r8   r:   Y_trainY_testovr
Y_pred_ovrchainY_pred_chains
             r@   +test_classifier_chain_vs_independent_modelsr    s$    9::DAqaaajGsttQQQwZFaaajGsttQQQwZF
022
3
3CGGGWV$$J.0011E	IIgw==((LyAAAM
IE E E      rB   c            
      `   t                      \  } }t          t                                t          t	                                g}|D ]}|                    | |           |                    |           }|j        |j        k    sJ d |j        D             t          t          | j        d         | j        d         |j        d         z                       k    sJ |d                             |           }|dk    }t          ||           t          |d         t                    sJ d S )Nc                 &    g | ]}|j         j        S r   )coef_r   )r   cs     r@   r   z3test_base_chain_fit_and_predict.<locals>.<listcomp>  s    888888rB   rN         ?)r   r   r   r   r   r4   r5   r   r|   r   r3   r   r   
isinstancer    )r6   r   chainsr  r   Y_probr   s          r@   test_base_chain_fit_and_predictr  
  s+   8::DAqUWW%%7I7K7K'L'LMF 
 
		!Qq!!|qw&&&&88e&7888D!'!*agaj171:566=
 =
 
 
 
 
 
 AY$$Q''F}Hx(((fQi1111111rB   c                  H   t                      \  } }t          j        |           }t          t	                      d          t          t                      d          g}|D ]?}|                    ||           |                    |          }|j	        |j	        k    sJ @d S )Nr+   r   )
r   rW   rX   r   r   r   r   r4   r5   r   )r6   r   r   base_chainsr  r   s         r@   7test_base_chain_fit_and_predict_with_sparse_data_and_cvr    s    8::DAq}QH*,,333uww1%%%K  ' '		(Ax((|qw&&&&&' 'rB   c                      t                      \  } }t          t                                t          t	                                fD ]D}t          |                              dd          }|                    | |           t          |                              |j                  }|                    | |           t          |j        |j                   t          |j                  t          t          d                    k    sJ t          |j                  dk    sJ t          t          |j                            dk    sJ t          |j        |j                  D ]\  }}t#          |j        |j                    Fd S )Nr   *   )orderr.   r  rd   )r   r   r   r   r   r   
set_paramsr4   order_r   r   r  r3   r   setzipr|   r   r  )r6   r   r  chain_randomchain_fixedr   r   s          r@   test_base_chain_random_orderr   +  sp   8::DAq!"4"6"6779P9PQ > >U||..XB.OOAEll--L4G-HH1;-|/BCCCL&''4a>>9999<&''1,,,,3|*++,,1111 l68OPP 	> 	>JD$%dj$*====	>> >rB   c                  l   t                      \  } }t          t                                t          t	                                fD ]}|                    | |           t          |                              d          }|                    | |           |                    |           }|                    |           }|j	        |j	        k    sJ t          j        ||k              rJ t          |t                    rt          ||d          dk    sJ t          ||          dk     sJ d S )Nr+   r  r   r   g?g      ?)r   r   r   r   r   r4   r   r  r5   r   r1   allr  r   r   )r6   r   r  chain_cv	Y_pred_cvr   s         r@   (test_base_chain_crossval_fit_and_predictr%  =  s4    9::DAq!"4"6"6779P9PQ ; ;		!Q<<**a*00Q$$Q''	q!!&,....6&I-.....e_-- 	; IyAAACGGGGG%a33d:::::; ;rB   r   )r   c                    |                      t          t                     t          | j        t
                    sJ t          | j                  t          k    sJ t          t          | j                  D ]\  }}t          ||           d S r   )r4   r6   r7   r  classes_r   r   r   r  r{   r   )r   estimator_classesexpected_classess      r@   test_multi_output_classes_r*  Q  s     MM!Qi($/////y!""i/////27I<N/O/O @ @++,.>????@ @rB   c                         e Zd Zd fd	Z xZS )DummyRegressorWithFitParamsNc                 X    || _         t                                          |||          S r   _fit_paramssuperr4   selfr6   r7   sample_weight
fit_params	__class__s        r@   r4   zDummyRegressorWithFitParams.fitd  %    %ww{{1a///rB   r   __name__
__module____qualname__r4   __classcell__r5  s   @r@   r,  r,  c  =        0 0 0 0 0 0 0 0 0 0rB   r,  c                         e Zd Zd fd	Z xZS )DummyClassifierWithFitParamsNc                 X    || _         t                                          |||          S r   r.  r1  s        r@   r4   z DummyClassifierWithFitParams.fitj  r6  rB   r   r7  r<  s   @r@   r?  r?  i  r=  rB   r?  z%ignore:`n_features_in_` is deprecatedzestimator, datasetprior)strategyr+   r,   c                     |\  }}t          j        |          }|                     |||           | j        D ]}d|j        v sJ d S )N)
some_paramrD  )r1   r2   r4   r|   r/  )r   datasetr6   r7   rD  dummy_estimators         r@   *test_multioutput_estimator_with_fit_paramsrG  o  sg     DAqq!!JMM!Q:M...$0 ; ;::::::; ;rB   c                  Z   t           j                            d          } t          j        dd          \  }}|                     |j        d                   } G d dt                    }t           |                      }d|i} |j	        ||fi | |j
        D ]}|j        |u sJ d S )Nr   r+   r,   c                        e Zd Z fdZ xZS )0test_regressor_chain_w_fit_params.<locals>.MySGDc                 X    |d         | _          t                      j        ||fi | d S )Nr3  )sample_weight_r0  r4   )r2  r6   r7   r4  r5  s       r@   r4   z4test_regressor_chain_w_fit_params.<locals>.MySGD.fit  s6    ",_"=DEGGK1++
+++++rB   r7  r<  s   @r@   MySGDrJ    s8        	, 	, 	, 	, 	, 	, 	, 	, 	,rB   rM  r3  )r1   r   r   r   r   randr   r   r   r4   r|   rL  )r   r6   r7   weightrM  model	fit_paramests           r@   !test_regressor_chain_w_fit_paramsrS    s    
)


"
"C#aa@@@DAqXXagaj!!F, , , , , , , ,
 5577##E !&)IEIa  i     , ,!V+++++, ,rB   zMultiOutputEstimator, Estimatorc                    t           j                            d          }|                    dd          |                    ddd          }}|                    ddg|j        dd	g
                              t                    }t           j	        ||<   t          t                       |                      } | |                              ||                              ||           d S )Nr  r/   rb   rN   r  )r/   r+   r   g{Gz?gGz?)p)r1   r   r   randnbinomialchoicer   astypeboolnanr&   r'   r4   r   )MultiOutputEstimator	Estimatorr   r6   r7   maskpipes          r@   test_support_missing_valuesr`    s     )


#
#C99RS\\!S'::qA::q!fag$:66==dCCDfAdG))++66D""1a((..q!44444rB   
order_typec                    g dg dg dg}ddgddgddgg} | ddg          }t          t                      |          }|                    ||           g dg}ddgg}t          |                    |          |           d S )	Nra   rc   rp   r+   rb   rN   r   r  )r   r   r4   r   r5   )ra  r6   r7   r  r  r:   r;   s          r@   !test_classifier_chain_tuple_orderrc    s    	III/A
Q!Q!Q AJ1vE244EBBBE	IIaOOOooF!fXFemmF33V<<<<<rB   c                  "   g dg dg dg} ddgddgddgg}t          ddg          }t          t                      |          }t          j        t
          d	          5  |                    | |           d d d            d S # 1 swxY w Y   d S )
Nra   rc   rp   r+   rb   rN   r  zinvalid orderrO   )tupler   r   rQ   rR   rS   r4   )r6   r7   r  r  s       r@   )test_classifier_chain_tuple_invalid_orderrf    s    	III/A
Q!Q!Q A1a&MME244EBBBE	z	9	9	9  		!Q                 s    BBBc                 2   t          ddddd          \  }}t          ||d          \  }}}}d}t          t                      g ddd	
          }|                    ||           t          j        ||                                 d                   sJ d S )Nr   rE   r+   r   )r   r   r   n_labelsr.   r0   z\[Chain\].*\(1 of 3\) Processing order 0, total=.*\n\[Chain\].*\(2 of 3\) Processing order 1, total=.*\n\[Chain\].*\(3 of 3\) Processing order 2, total=.*\n$)r   rN   rb   Tr  r.   verbose)r   r#   r   r   r4   rerP   
readouterr)	capsysr6   r7   r8   r:   r9   r;   pattern
classifiers	            r@   test_classifier_chain_verboserp    s    )!q11  DAq (811'M'M'M$GVWf	A  !  ii	  J NN7G$$$8GV..0034444444rB   c                 .   t          ddd          \  }}t          ||d          \  }}}}d}t          t                      g ddd	          }|                    ||           t          j        ||                                 d                   sJ d S )
N}   r+   r   )r   r-   r.   r0   z\[Chain\].*\(1 of 3\) Processing order 1, total=.*\n\[Chain\].*\(2 of 3\) Processing order 0, total=.*\n\[Chain\].*\(3 of 3\) Processing order 2, total=.*\n$)rN   r   rb   Tri  )r   r#   r   r   r4   rk  rP   rl  )	rm  r6   r7   r8   r:   r9   r;   rn  	regressors	            r@   test_regressor_chain_verbosert    s    SAAFFFDAq'711'M'M'M$GVWf	A 
 ii	  I MM'7###8GV..0034444444rB   c                      t          d          \  } }t          dt          d          fgt                      d          }t	          |                              | |          }|                    |            d	S )
zkTest that MultiOutputRegressor checks the fitted estimator for
    predict. Non-regression test for #16549.T)
return_X_ysgdrN   r0   rb   )
estimatorsfinal_estimatorr   )r   N)r
   r(   r   r   r   r4   r5   )r6   r7   stackerregs       r@   4test_multioutputregressor_ducktypes_fitted_estimatorr|    s     D)))DAqLa8889:  G 
1
1
1
5
5a
;
;C KKNNNNNrB   )rQ   numpyr1   scipy.sparser]   rW   joblibr   rk  sklearn.utils._testingr   r   r   sklearnr   sklearn.baser   sklearn.datasetsr	   r
   r   r   sklearn.ensembler   r   sklearn.exceptionsr   sklearn.linear_modelr   r   r   r   r   r   r   sklearn.metricsr   r   sklearn.multiclassr   sklearn.multioutputr   r   r   r   sklearn.svmr   sklearn.treer   r    sklearn.utilsr!   sklearn.model_selectionr"   r#   sklearn.dummyr$   r%   sklearn.pipeliner&   sklearn.imputer'   r(   rA   rL   rU   r_   ri   rn   ru   	load_irisirisdatar6   targetr   r   y3r   r7   r   r   r   r   r   uniquer   r   mapr{   r   r   r   r   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r  r  r  r   r%  r*  r,  r?  filterwarningsrG  rS  r`  r   re  rc  rf  rp  rt  r|  r   rB   r@   <module>r     s                    				 6 6 6 6 6 6 5 5 5 5 5 5 < < < < < <             0 0 0 0 0 0 * * * * * * ; ; ; ; ; ; , , , , , , N N N N N N N N - - - - - - & & & & & & 3 3 3 3 3 3 : : : : : : & & & & & & . . . . . . - - - - - - 1 1 1 1 1 1 = = = = = = = = 2 2 2 2 2 2 ? ? ? ? ? ? ? ? 5 5 5 5 5 5 4 4 4 4 4 4 ! ! ! ! ! ! / / / / / / ( ( ( ( ( ( ! ! ! ! ! ! B B B B B B B B 9 9 9 9 9 9 9 9 * * * * * * ( ( ( ( ( ( . . . . . ., , ,$C C C.  U U U*  : : : D D D& xI	[WRa   WRa   BORRL!! 	:GAJ	C		"	
$ss29r2rl++
,
,	  	  	 9 9 9 - - -:P P P>. . .S S S:L L L$,6 ,6 ,6^D D D(J J J&  ( *_i,HII) ) JI)  ,	 	 	: : : 4 4 4   .2 2 2&' ' '> > >$; ; ;( A...44!DDDEE..A>>>?? @ @ @0 0 0 0 0. 0 0 00 0 0 0 0? 0 0 0 CDD "!">">"P"P"PQQ3H355	

 ! !<!<!>!>??$H$qqAAA	
	 ; ;  ED;, , ,* %/03G2OP 
5 
5 
5 bh'>??
= 
= @?
=  5 5 5,5 5 5&    rB   