Ë
    ÷Q(h“,  ã                   ó   — 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 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l/m0Z0  G d„ d«      Z1 e1dd„ «       e1dd„ dg¬«       e1dd„ dg¬«       e1ded d!g¬«       e1d"eg d#¢¬«       e1d$eg d%¢¬«       e1d&d'„ g d(¢¬«      gZ2d)„ Z3d*„ Z4d+„ Z5g d,¢Z6 e5«       D � cg c]  } | jn                  jp                  e6vr| ‘Œ c} Z9d-„ Z:ejv                  jy                  d.e9e:¬/«      d0„ «       Z=yc c} w )1zCommon tests for metaestimatorsé    N)Úsuppress)Ú	signature)ÚBaseEstimatorÚ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y)ÚDelegatorData© r   )Úrandom_statec                 ó<   — || _         || _        || _        || _        y ©N)ÚnameÚ	constructÚfit_argsÚskip_methods)Úselfr%   r&   r(   r'   s        ú_/var/www/skyplay_api_hub/venv/lib/python3.12/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ô
)r,   r    r   c                 ó   — t        d| fg«      S )NÚest)r   ©r1   s    r*   ú<lambda>r3   2   s   € ¬(°U¸C°L°>Ó*B€ r,   r   c                 ó$   — t        | ddgid¬«      S )NÚparamé   é   )Ú
param_gridÚcv)r   r2   s    r*   r3   r3   5   s   € ”L °'¸A¸3°ÀAÔF€ r,   Úscore)r(   r   c                 ó&   — t        | ddgidd¬«      S )Nr5   r6   r7   é   )Úparam_distributionsr9   Ún_iter)r   r2   s    r*   r3   r3   :   s   € Ô&Ø g°¨s ^¸À!ô
€ r,   r   Ú	transformÚinverse_transformr   )r?   r@   r:   r   )r?   r@   r:   Úpredict_probaÚpredict_log_probaÚpredictr   c                 ó   — t        | «      S r$   r   r2   s    r*   r3   r3   Q   s   € Ô*¨3Ó/€ r,   )r?   r@   rA   c                  óæ  ‡— d„ Š G ˆfd„dt         «      } | j                  j                  «       D �cg c]&  }|j                  d«      s|j                  d«      s|‘Œ( }}|j	                  «        t
        D �]Ú  } | «       }|j                  |«      }|D ]Ø  }||j                  v rŒt        ||«      sJ ‚t        ||«      sJ |j                  ›d|›d�«       ‚|dk(  rPt        j                  t        «      5   t        ||«      |j                  d	   |j                  d
   «       d d d «       Œ˜t        j                  t        «      5   t        ||«      |j                  d	   «       d d d «       ŒÚ  |j                  |j                  Ž  |D ]c  }||j                  v rŒ|dk(  r. t        ||«      |j                  d	   |j                  d
   «       ŒE t        ||«      |j                  d	   «       Œe |D ]\  }||j                  v rŒ | |¬«      }|j                  |«      }t        ||«      rJ ‚t        ||«      sŒGJ |j                  ›d|›d�«       ‚ �ŒÝ y c c}w # 1 sw Y   �ŒÐxY w# 1 sw Y   �ŒÝxY w)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>   ø€ à× Ñ  F§O¡OÒ3Ü$ ^°c×6GÑ6GÑ%GÓHÐHÜ×$Ñ$ V¨SÓ1Ð1r,   )Úproperty)rM   rN   s   ` r*   Úhidesz,test_metaestimator_delegation.<locals>.hidesY   s   ø€ Ü	ó	2ó 
ð	2ð
 ˆr,   c                   ó¢   •— e Zd Zdd„Zdd„Zd„ ZW ° d„ «       ZW ° d„ «       ZW ° d„ «       ZW ° d„ «       Z	W ° d	„ «       Z
W ° d
„ «       ZW ° d„ «       Zy)ú3test_metaestimator_delegation.<locals>.SubEstimatorNc                 ó    — || _         || _        y r$   )r5   rH   )r)   r5   rH   s      r*   r+   z<test_metaestimator_delegation.<locals>.SubEstimator.__init__c   s   € ØˆDŒJØ!.ˆDÕr,   c                 ó`   — t        j                  |j                  d   «      | _        g | _        y)Nr<   T)ÚnpÚarangeÚshapeÚcoef_Úclasses_©r)   ÚXÚyÚargsÚkwargss        r*   Úfitz7test_metaestimator_delegation.<locals>.SubEstimator.fitg   s$   € ÜŸ™ 1§7¡7¨1¡:Ó.ˆDŒJØˆDŒMØr,   c                 ó   — t        | «       y r$   r   )r)   s    r*   Ú
_check_fitz>test_metaestimator_delegation.<locals>.SubEstimator._check_fitl   s
   € Ü˜DÕ!r,   c                 ó&   — | j                  «        |S r$   ©ra   ©r)   r[   r]   r^   s       r*   r@   zEtest_metaestimator_delegation.<locals>.SubEstimator.inverse_transformo   ó   € à�O‰OÔØˆHr,   c                 ó&   — | j                  «        |S r$   rc   rd   s       r*   r?   z=test_metaestimator_delegation.<locals>.SubEstimator.transformt   re   r,   c                 óf   — | j                  «        t        j                  |j                  d   «      S ©Nr   ©ra   rU   ÚonesrW   rd   s       r*   rC   z;test_metaestimator_delegation.<locals>.SubEstimator.predicty   ó#   € à�O‰OÔÜ—7‘7˜1Ÿ7™7 1™:Ó&Ð&r,   c                 óf   — | j                  «        t        j                  |j                  d   «      S rh   ri   rd   s       r*   rA   zAtest_metaestimator_delegation.<locals>.SubEstimator.predict_proba~   rk   r,   c                 óf   — | j                  «        t        j                  |j                  d   «      S rh   ri   rd   s       r*   rB   zEtest_metaestimator_delegation.<locals>.SubEstimator.predict_log_probaƒ   rk   r,   c                 óf   — | j                  «        t        j                  |j                  d   «      S rh   ri   rd   s       r*   Údecision_functionzEtest_metaestimator_delegation.<locals>.SubEstimator.decision_functionˆ   rk   r,   c                 ó$   — | j                  «        y)Nç      ð?rc   rZ   s        r*   r:   z9test_metaestimator_delegation.<locals>.SubEstimator.score�   s   € à�O‰OÔØr,   )r<   Nr$   )r-   r.   r/   r+   r_   ra   r@   r?   rC   rA   rB   ro   r:   )rP   s   €r*   ÚSubEstimatorrR   b   sž   ø„ ó	/ó	ò
	"ñ 
ñ	ó 
ð	ñ 
ñ	ó 
ð	ñ 
ñ	'ó 
ð	'ñ 
ñ	'ó 
ð	'ñ 
ñ	'ó 
ð	'ñ 
ñ	'ó 
ð	'ñ 
ñ	ó 
ñ	r,   rr   Ú_r_   z does not have method z when its delegate doesr:   r   r<   )rH   z has method z when its delegate does not)r   Ú__dict__ÚkeysÚ
startswithÚsortÚDELEGATING_METAESTIMATORSr&   r(   Úhasattrr%   ÚpytestÚraisesr	   Úgetattrr'   r_   )rr   ÚkÚmethodsÚdelegator_dataÚdelegateÚ	delegatorrM   rP   s          @r*   Útest_metaestimator_delegationr‚   W   sœ  ø€ òö.”}ô .ðd ×&Ñ&×+Ñ+Ó-öàØ�|‰|˜CÔ ¨¯©°eÔ)<ò 	
ð€Gð ð
 ‡L�L„Nä3ó .ˆÙ“>ˆØ"×,Ñ,¨XÓ6ˆ	Øò 	KˆFØ˜×4Ñ4Ñ4ØÜ˜8 VÔ,Ð,Ð,ÜØ˜6ôð ð ×#Ó#Úðóð ð ˜Ò Ü—]‘]¤>Ó2ñ Ø.”G˜I vÓ.Ø&×/Ñ/°Ñ2°N×4KÑ4KÈAÑ4Nô÷ð ô
 —]‘]¤>Ó2ñ KØ.”G˜I vÓ.¨~×/FÑ/FÀqÑ/IÔJ÷Kð Kð#	Kð( 	ˆ	�‰�~×.Ñ.Ñ/Øò 		GˆFØ˜×4Ñ4Ñ4Øà˜Ò Ø*”˜	 6Ó*Ø"×+Ñ+¨AÑ.°×0GÑ0GÈÑ0Jõð +”˜	 6Ó*¨>×+BÑ+BÀ1Ñ+EÕFð		Gð ò 	ˆFØ˜×4Ñ4Ñ4ØÙ#°&Ô9ˆHØ&×0Ñ0°Ó:ˆIÜ˜x¨Ô0Ð0Ð0ÜØ˜6õð ð ×#Ó#Úðóð ò	ñG.ùò÷,ñ ú÷
Kñ Kús   ²+IÃ4.IÅ I&ÉI#É&I0c                 ó  — h d£|z  r‘t        | «      r#t        t        «       t        «       «      }dddgi}n"t        t        «       t	        «       «      }dddgi}|j                  ddh«      rd|v rdd	ini } t        | «      ||fi |¤ŽS  t        | «      |«      S d
|v rOdt        t        «       t        «       «      fdt        t        «       t        d¬«      «      fg} t        | «      |«      S d|v r�t        | «      rAdt        t        «       t        d¬«      «      fdt        t        «       t        d¬«      «      fg}n@dt        t        «       t	        d¬«      «      fdt        t        «       t	        d¬«      «      fg} t        | «      |«      S y)zLGiven a single meta-estimator instance, generate an instance with a pipeline>   Ú	estimatorÚ	regressorÚbase_estimatorÚridge__alphagš™™™™™¹?rq   Úlogisticregression__Cr8   r=   r>   r7   Útransformer_listÚtrans1Útrans2F)Ú	with_meanÚ
estimatorsÚest1)ÚalphaÚest2r<   )ÚCN)	r   r   r
   r   r   ÚintersectionÚtyper   r   )Úmeta_estimatorÚinit_paramsr„   r8   Úextra_paramsr‰   s         r*   Ú_get_instance_with_pipeliner—   Ê   s˜  € â3°kÒAÜ˜Ô'Ü%¤oÓ&7¼»ÓAˆIØ(¨3°¨*Ð5‰Jä%¤oÓ&7Ô9KÓ9MÓNˆIØ1°C¸°:Ð>ˆJà×#Ñ#ØÐ0Ð1ô
ð -5¸Ñ,C˜H a™=ÈˆLØ'”4˜Ó'¨	°:ÑNÀÑNÐNà'”4˜Ó'¨	Ó2Ð2à˜[Ñ(ð ”}¤_Ó%6¼»ÓGÐHàÜœoÓ/´È%Ô1PÓQðð
Ðð $Œt�NÓ#Ð$4Ó5Ð5à�{Ñ"ä˜Ô'àœ¤Ó'8¼%ÀcÔ:JÓKÐLØœ¤Ó'8¼%Àa¼.ÓIÐJð‰Ið Ü!¤/Ó"3Ô5GÈ#Ô5NÓOðð œ¤Ó'8Ô:LÈqÔ:QÓRÐSðˆIð $Œt�NÓ# IÓ.Ð.ð #r,   c               #   óª  K  — t        dt        t        «       «      «       t        t        «       «      D ]�  \  } }t	        t        |«      j                  «      }t        d|j                  |«       |j                  h d£«      sŒOt        t        «      5  t        |«      D ]  }t        |«       t        ||«      –— Œ 	 ddd«       Œ’ y# 1 sw Y   Œ�xY w­w)zµGenerate 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—   )rs   Ú	EstimatorÚsigr”   s       r*   Ú0_generate_meta_estimator_instances_with_pipeliner¡   ù   sÇ   è ø€ ô 
ˆ.œ#œnÓ.Ó/Ô0Üœ~Ó/Ó0ò G‰ˆˆ9Ü”)˜IÓ&×1Ñ1Ó2ˆäˆd�I×&Ñ&¨Ô,Ø×Ñòô
ð ä”hÓñ 	GÜ"6°yÓ"Aò G�Ü�nÔ%Ü1°.À#ÓFÓFñG÷	Gð 	GñG÷	Gð 	Güs   ‚BCÂ*CÂ<CÃC	ÃC)ÚAdaBoostClassifierÚAdaBoostRegressorr   ÚBaggingRegressorÚClassifierChainÚFrozenEstimatorÚIterativeImputerÚOneVsOneClassifierÚRANSACRegressorr   r   ÚRegressorChainr   ÚSequentialFeatureSelectorc                 ó.   — | j                   j                  S r$   )Ú	__class__r-   )r„   s    r*   Ú_get_meta_estimator_idr®   0  s   € Ø×Ñ×'Ñ'Ð'r,   r„   )Úidsc                 óÂ  — t         j                  j                  d«      }t        | «       d}|j	                  t        j
                  g d¢t        ¬«      |¬«      }t        | «      r|j                  |¬«      }n|j                  d|¬«      }t        | |«      j                  «       }t        | |«      j                  «       }| j                  ||«       t        | d«      rJ ‚y )Nr   é   )ÚaaÚbbÚcc)Údtype)Úsizeé   Ún_features_in_)rU   ÚrandomÚRandomStater   ÚchoiceÚarrayÚobjectr   ÚnormalÚrandintr   Útolistr   r_   ry   )r„   ÚrngÚ	n_samplesr[   r\   s        r*   Ú-test_meta_estimators_delegate_data_validationrÃ   4  s¿   € ô �)‰)×
Ñ
 Ó
"€CÜ�YÔà€IØ�
‰
”2—8‘8Ò.´fÔ=ÀIˆ
ÓN€Aä�IÔØ�J‰J˜IˆJÓ&‰à�K‰K˜ 	ˆKÓ*ˆô 	" )¨QÓ/×6Ñ6Ó8€AÜ! )¨QÓ/×6Ñ6Ó8€Að
 ‡M�M�!�QÔô �yÐ"2Ô3Ð3Ð3Ð3r,   )>Ú__doc__rJ   Ú
contextlibr   Úinspectr   ÚnumpyrU   rz   Úsklearn.baser   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    rx   r‚   r—   r¡   Ú)DATA_VALIDATION_META_ESTIMATORS_TO_IGNOREr­   r-   ÚDATA_VALIDATION_META_ESTIMATORSr®   ÚmarkÚparametrizerÃ   r2   s   0r*   ú<module>rÜ      sk  ðÙ %ã Ý Ý ã Û ç 4Ý 0Ý .Ý -Ý ;ß 0ß :ß Dß 4ß >Ý :Ý (Ý Nß =÷õ 5÷)ñ )ñ& �*ÑBÓCÙØÙFØ�Yôñ
 Øñ	
ð �Yôñ �%˜¨KÐ9LÐ+MÔNÙØ�Ò%Pôñ ØØò
ôñ Ø Ù/ÚHôð=#Ð òLpòf,/ò^Gò>-Ð )ñ& @ÓAö#àØ
‡}�}×ÑÐ%NÑNò ò#Ð ò(ð ‡�×ÑØÐ0Ð6Lð ó ñ4óñ4ùò#s   Ã?!E