
    /iiA-                        d Z ddlZddlmZ ddlmZ ddlZddlZddl	m
Z
mZmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZmZ ddlmZmZ ddlmZ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+m,Z, ddl-m.Z.m/Z/ ddl0m1Z1  G d d          Z2 e2dd            e2dd dg           e2dd dg           e2ded d!g           e2d"eg d#           e2d$eg d%           e2d&d' g d(          gZ3d) Z4d* Z5d+ Z6g d,Z7d-  e6            D             Z8d. Z9ej:        ;                    d/e8e90          d1             Z<dS )2zCommon tests for metaestimators    N)suppress)	signature)BaseEstimatorcloneis_regressor)make_classification)BaggingClassifier)NotFittedError)TfidfVectorizer)RFERFECV)LogisticRegressionRidge)GridSearchCVRandomizedSearchCV)Pipelinemake_pipeline)MaxAbsScalerStandardScalerSelfTrainingClassifier)all_estimators)_construct_instances)SkipTestset_random_state)_enforce_estimator_tags_X_enforce_estimator_tags_ycheck_is_fittedc                   .    e Zd Zd ed          fdZdS )DelegatorData r   )random_statec                 >    || _         || _        || _        || _        d S N)name	constructfit_argsskip_methods)selfr&   r'   r)   r(   s        g/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/sklearn/tests/test_metaestimators.py__init__zDelegatorData.__init__    s'     	" (    N)__name__
__module____qualname__r   r,   r"   r-   r+   r!   r!      s>        
 $$!444
) 
) 
) 
) 
) 
)r-   r!   r   c                 &    t          d| fg          S )Nest)r   r2   s    r+   <lambda>r4   2   s    (UCL>*B*B r-   r   c                 ,    t          | ddgid          S )Nparam      )
param_gridcv)r   r3   s    r+   r4   r4   5   s    L'A3AFFF r-   score)r)   r   c                 .    t          | ddgidd          S )Nr6   r7   r8      )param_distributionsr:   n_iter)r   r3   s    r+   r4   r4   :   s%    &gs^!
 
 
 r-   r   	transforminverse_transformr   )r@   rA   r;   r	   )r@   rA   r;   predict_probapredict_log_probapredictr   c                      t          |           S r%   r   r3   s    r+   r4   r4   Q   s    *3// r-   )r@   rA   rB   c                     d  G fddt                     } d | j                                        D             }|                                 t          D ]} |             }|                    |          }|D ]}||j        v rt          ||          sJ t          ||          sJ |j        d|d            |dk    rbt          j
        t                    5   t          ||          |j        d         |j        d	                    d d d            n# 1 swxY w Y   t          j
        t                    5   t          ||          |j        d                    d d d            n# 1 swxY w Y    |j        |j          |D ]g}||j        v r|dk    r1 t          ||          |j        d         |j        d	                    C t          ||          |j        d                    h|D ]d}||j        v r | |
          }|                    |          }t          ||          rJ t          ||          rJ |j        d|d            e	d S )Nc                 ,     t            fd            }|S )Nc                 |    | j         j        k    rt          d| j         z            t          j        |           S )Nz%r is hidden)hidden_methodr.   AttributeError	functoolspartial)objmethods    r+   wrapperz=test_metaestimator_delegation.<locals>.hides.<locals>.wrapperZ   s<     FO33$^c6G%GHHH$VS111r-   )property)rN   rO   s   ` r+   hidesz,test_metaestimator_delegation.<locals>.hidesY   s-    		2 	2 	2 	2 
	2
 r-   c                       e Zd ZddZddZd Z d             Z d             Z d             Z d	             Z	 d
             Z
 d             Z d             ZdS )3test_metaestimator_delegation.<locals>.SubEstimatorr=   Nc                 "    || _         || _        d S r%   )r6   rI   )r*   r6   rI   s      r+   r,   z<test_metaestimator_delegation.<locals>.SubEstimator.__init__c   s    DJ!.Dr-   c                 \    t          j        |j        d                   | _        g | _        dS )Nr=   T)nparangeshapecoef_classes_r*   Xyargskwargss        r+   fitz7test_metaestimator_delegation.<locals>.SubEstimator.fitg   s%    171:..DJDM4r-   c                 $    t          |            d S r%   r   )r*   s    r+   
_check_fitz>test_metaestimator_delegation.<locals>.SubEstimator._check_fitl   s    D!!!!!r-   c                 .    |                                   |S r%   rb   r*   r\   r^   r_   s       r+   rA   zEtest_metaestimator_delegation.<locals>.SubEstimator.inverse_transformo       OOHr-   c                 .    |                                   |S r%   rd   re   s       r+   r@   z=test_metaestimator_delegation.<locals>.SubEstimator.transformt   rf   r-   c                 h    |                                   t          j        |j        d                   S Nr   rb   rV   onesrX   re   s       r+   rD   z;test_metaestimator_delegation.<locals>.SubEstimator.predicty   (    OO7171:&&&r-   c                 h    |                                   t          j        |j        d                   S ri   rj   re   s       r+   rB   zAtest_metaestimator_delegation.<locals>.SubEstimator.predict_proba~   rl   r-   c                 h    |                                   t          j        |j        d                   S ri   rj   re   s       r+   rC   zEtest_metaestimator_delegation.<locals>.SubEstimator.predict_log_proba   rl   r-   c                 h    |                                   t          j        |j        d                   S ri   rj   re   s       r+   decision_functionzEtest_metaestimator_delegation.<locals>.SubEstimator.decision_function   rl   r-   c                 .    |                                   dS )N      ?rd   r[   s        r+   r;   z9test_metaestimator_delegation.<locals>.SubEstimator.score   s    OO3r-   )r=   Nr%   )r.   r/   r0   r,   r`   rb   rA   r@   rD   rB   rC   rp   r;   )rQ   s   r+   SubEstimatorrS   b   s	       	/ 	/ 	/ 	/	 	 	 	
	" 	" 	" 
	 	 
	 
	 	 
	 
	' 	' 
	' 
	' 	' 
	' 
	' 	' 
	' 
	' 	' 
	' 
	 	 
	 	 	r-   rs   c                 f    g | ].}|                     d           |                     d          ,|/S )_r`   )
startswith).0ks     r+   
<listcomp>z1test_metaestimator_delegation.<locals>.<listcomp>   sP       ||C   *+e)<)<	  r-   z does not have method z when its delegate doesr;   r   r=   )rI   z has method z when its delegate does not)r   __dict__keyssortDELEGATING_METAESTIMATORSr'   r)   hasattrr&   pytestraisesr
   getattrr(   r`   )rs   methodsdelegator_datadelegate	delegatorrN   rQ   s         @r+   test_metaestimator_delegationr   W   s     . . . . . . .} . . .` &++--  G
 LLNNN3 0 0<>>",,X66	 	K 	KF4448V,,,,,9f--   #'''FF     ]>22  .GIv..&/2N4KA4N                
 ]>22 K K.GIv..~/Fq/IJJJK K K K K K K K K K K K K K K 		~.// 		G 		GF444  *	6**"+A.0G0J    +	6**>+B1+EFFFF 	 	F444#|&999H&00::Ix00000y&11   #'''FF   	I0 0s$   1DD #D %E22E69E6c                 (   h d|z  rt          |           r/t          t                      t                                }dddgi}n.t          t                      t	                                }dddgi}|                    ddh          r!d|v rdd	ini } t          |           ||fi |S  t          |           |          S d
|v rndt          t                      t                                fdt          t                      t          d                    fg} t          |           |          S d|v rt          |           rYdt          t                      t          d                    fdt          t                      t          d                    fg}nXdt          t                      t	          d                    fdt          t                      t	          d                    fg} t          |           |          S dS )zLGiven a single meta-estimator instance, generate an instance with a pipeline>   	estimator	regressorbase_estimatorridge__alphag?rr   logisticregression__Cr9   r>   r?   r8   transformer_listtrans1trans2F)	with_mean
estimatorsest1)alphaest2r=   )CN)	r   r   r   r   r   intersectiontyper   r   )meta_estimatorinit_paramsr   r9   extra_paramsr   s         r+   _get_instance_with_pipeliner      s=   333kA 3'' 	?%o&7&7AAI(3*5JJ%o&7&79K9M9MNNI1C:>J##01
 
 	3 -5,C,CHa==L'4''	:NNNNN'4''	222[(( }_%6%6GGHo//%1P1P1PQQ
 $tN##$4555{""'' 	'8'8%c:J:J:JKKL'8'8%a...IIJII !/"3"35G#5N5N5NOO '8'8:Lq:Q:Q:QRRSI $tN##I... #"r-   c               #     K   t          dt          t                                           t          t                                D ]\  } }t	          t          |          j                  }t          d|j        |           |                    h d          sTt          t                    5  t          |          D ]#}t          |           t          ||          V  $	 ddd           n# 1 swxY w Y   dS )zGenerate instances of meta-estimators fed with a pipeline

    Are considered meta-estimators all estimators accepting one of "estimator",
    "base_estimator" or "estimators".
    zestimators: 
>   r   r   r   r   r   N)printlenr   sortedsetr   
parametersr.   r   r   r   r   r   )ru   	Estimatorsigr   s       r+   0_generate_meta_estimator_instances_with_pipeliner      si      
.#n..//000~//00 G G9)I&&122dI&,,,  
 
 		 h 	G 	G"6y"A"A G Gn%%%1.#FFFFFFG	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	GG Gs   /4C00C4	7C4	)AdaBoostClassifierAdaBoostRegressorr	   BaggingRegressorClassifierChainFrozenEstimatorIterativeImputerOneVsOneClassifierRANSACRegressorr   r   RegressorChainr   SequentialFeatureSelectorc                 8    g | ]}|j         j        t          v|S r"   )	__class__r.   )DATA_VALIDATION_META_ESTIMATORS_TO_IGNORE)rw   r2   s     r+   ry   ry   +  s3     # # #
}%NNN NNNr-   c                     | j         j        S r%   )r   r.   )r   s    r+   _get_meta_estimator_idr   2  s    ''r-   r   )idsc                 :   t          |           } t          j                            d          }t	          |            d}|                    t          j        g dt                    |          }t          |           r|	                    |          }n|
                    d|          }t          | |                                          }t          | |                                          }|                     ||           t          | d          rJ d S )Nr      )aabbcc)dtype)size   n_features_in_)r   rV   randomRandomStater   choicearrayobjectr   normalrandintr   tolistr   r`   r~   )r   rng	n_samplesr\   r]   s        r+   -test_meta_estimators_delegate_data_validationr   6  s    i  I
)


"
"CYI

28...f===I
NNAI +JJIJ&&KK	K** 	")Q//6688A!)Q//6688A
 MM!Q y"23333333r-   )=__doc__rK   
contextlibr   inspectr   numpyrV   r   sklearn.baser   r   r   sklearn.datasetsr   sklearn.ensembler	   sklearn.exceptionsr
   sklearn.feature_extraction.textr   sklearn.feature_selectionr   r   sklearn.linear_modelr   r   sklearn.model_selectionr   r   sklearn.pipeliner   r   sklearn.preprocessingr   r   sklearn.semi_supervisedr   sklearn.utilsr   -sklearn.utils._test_common.instance_generatorr   sklearn.utils._testingr   r   sklearn.utils.estimator_checksr   r   sklearn.utils.validationr   r!   r}   r   r   r   r   DATA_VALIDATION_META_ESTIMATORSr   markparametrizer   r"   r-   r+   <module>r      s   % %                      ; ; ; ; ; ; ; ; ; ; 0 0 0 0 0 0 . . . . . . - - - - - - ; ; ; ; ; ; 0 0 0 0 0 0 0 0 : : : : : : : : D D D D D D D D 4 4 4 4 4 4 4 4 > > > > > > > > : : : : : : ( ( ( ( ( ( N N N N N N = = = = = = = =        5 4 4 4 4 4) ) ) ) ) ) ) )& M*BBCCMFFY  
 M	
 	
 Y   M%K9L+MNNNM%P%P%P   M
 
 
   M //HHH  =# Lr r rj,/ ,/ ,/^G G G>- - - )"# #??AA# # # ( ( ( 06L   4 4 4 4 4r-   