§
    rŠtjA-  ã                   óž  — 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/e8e9¬0¦  «        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        ú_/var/www/html/CA-Chatbot/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   € ­(°U¸C°L°>Ñ*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 °'¸A¸3°À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<   ø€ àÔ  F¤OÒ3Ð3Ý$ ^°cÔ6GÑ%GÑHÔHÐHÝÔ$ V¨SÑ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   € ØˆDŒJØ!.ˆ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%   € Ýœ 1¤7¨1¤:Ñ.Ô.ˆDŒJØˆDŒMØ�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   ó   € à�OŠOÑÔÐØˆ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   ó(   € à�OŠOÑÔÐÝ”7˜1œ7 1œ:Ñ&Ô&Ð&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   € à�OŠOÑÔÐØ�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ð
 ‡L‚L�N„N€Nå3ð 0ñ 0ˆØ�<‘>”>ˆØ"×,Ò,¨XÑ6Ô6ˆ	Øð 	Kñ 	KˆFØ˜Ô4Ð4Ð4ØÝ˜8 VÑ,Ô,Ð,Ð,Ð,Ý˜9 fÑ-Ô-ð ð ð #Ô'Ð'Ð'Ø�F�Fðñô Ð-ð ˜Ò Ð Ý”]¥>Ñ2Ô2ð ð Ø.•G˜I vÑ.Ô.Ø&Ô/°Ô2°NÔ4KÈAÔ4Nñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øõ
 ”]¥>Ñ2Ô2ð Kð KØ.•G˜I vÑ.Ô.¨~Ô/FÀqÔ/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Ñ*Ô*¨>Ô+BÀ1Ô+EÑFÔFÐFÐFàð 	ð 	ˆFØ˜Ô4Ð4Ð4ØØ#�|°&Ð9Ñ9Ô9ˆHØ&×0Ò0°Ñ:Ô:ˆIÝ˜x¨Ñ0Ô0Ð0Ð0Ð0Ý˜y¨&Ñ1Ô1ð ð ð #Ô'Ð'Ð'Ø�F�Fðñô Ð1ð ñ	ðI0ð 0s$   Ã1DÄD Ä#D Å%E2Å2E6Å9E6c                 ó(  — h d£|z  r¼t          | ¦  «        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 rØt          | ¦  «        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Ð3°kÑAð 3Ý˜Ñ'Ô'ð 	?Ý%¥oÑ&7Ô&7½¹¼ÑAÔAˆIØ(¨3°¨*Ð5ˆJˆJå%¥oÑ&7Ô&7Õ9KÑ9MÔ9MÑNÔNˆIØ1°C¸°:Ð>ˆJà×#Ò#ØÐ0Ð1ñ
ô 
ð 	3ð -5¸Ð,CÐ,C˜H a˜=˜=ÈˆLØ'•4˜Ñ'Ô'¨	°:ÐNÐNÀÐNÐNÐNà'•4˜Ñ'Ô'¨	Ñ2Ô2Ð2à˜[Ð(Ð(ð •}¥_Ñ%6Ô%6½¹¼ÑGÔGÐHàÝ�oÑ/Ô/µÈ%Ð1PÑ1PÔ1PÑQÔQðð
Ðð $�t�NÑ#Ô#Ð$4Ñ5Ô5Ð5à�{Ð"Ð"å˜Ñ'Ô'ð 	à�¥Ñ'8Ô'8½%ÀcÐ:JÑ:JÔ:JÑKÔKÐLØ�¥Ñ'8Ô'8½%Àa¸.¹.¼.ÑIÔIÐJðˆIˆIð Ý!¥/Ñ"3Ô"3Õ5GÈ#Ð5NÑ5NÔ5NÑOÔOðð �¥Ñ'8Ô'8Õ:LÈqÐ:QÑ:QÔ:QÑRÔRÐSðˆIð $�t�NÑ#Ô# 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 )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›   )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ˆåˆd�IÔ&¨Ñ,Ô,Ð,Ø×Òðð ð ñ
ô 
ð 		ð å•hÑÔð 	Gð 	GÝ"6°yÑ"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Ø�
Š
•2”8Ð.Ð.Ð.µfÐ=Ñ=Ô=ÀIˆ
ÑNÔN€Aå�IÑÔð +Ø�JŠJ˜IˆJÑ&Ô&ˆˆà�KŠK˜ 	ˆKÑ*Ô*ˆõ 	" )¨QÑ/Ô/×6Ò6Ñ8Ô8€AÝ! )¨QÑ/Ô/×6Ò6Ñ8Ô8€Að
 ‡M‚M�!�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�%˜¨KÐ9LÐ+MÐNÑNÔNØ€MØ�Ð%PÐ%PÐ%Pðñ ô ð €MØØð
ð 
ð 
ðñ ô ð €MØ Ø/Ð/ØHÐHÐHðñ ô ð=#Ð ðLrð rð rðj,/ð ,/ð ,/ð^Gð Gð Gð>-ð -ð -Ð )ð"#ð #à?Ð?ÑAÔAð#ñ #ô #Ð ð(ð (ð (ð „×ÒØÐ0Ð6Lð ñ ô ð4ð 4ñô ð4ð 4ð 4r-   