Ë
    êÿæiA-  ã                   ó¤  — 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,¢Z7 e6«       D � cg c]  } | jp                  jr                  e7vr| ‘Œ c} Z:d-„ Z;ejx                  j{                  d.e:e;¬/«      d0„ «       Z>yc c} w )1z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y)ÚDelegatorData© r   )Úrandom_statec                 ó<   — || _         || _        || _        || _        y ©N)ÚnameÚ	constructÚfit_argsÚskip_methods)Úselfr&   r'   r)   r(   s        úv/Volumes/fast/ai/experiments/voice-extract-mac/.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   ©r2   s    r+   Ú<lambda>r4   2   s   € ¬(°U¸C°L°>Ô*Br-   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ÕFr-   Ú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         «      } | 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)rN   rO   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%   )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 | _        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%   ©rb   ©r*   r\   r^   r_   s       r+   rA   zEtest_metaestimator_delegation.<locals>.SubEstimator.inverse_transformo   ó   € à�O‰OÔØˆHr-   c                 ó&   — | j                  «        |S r%   rd   re   s       r+   r@   z=test_metaestimator_delegation.<locals>.SubEstimator.transformt   rf   r-   c                 óf   — | j                  «        t        j                  |j                  d   «      S ©Nr   ©rb   rV   ÚonesrX   re   s       r+   rD   z;test_metaestimator_delegation.<locals>.SubEstimator.predicty   ó#   € à�O‰OÔÜ—7‘7˜1Ÿ7™7 1™:Ó&Ð&r-   c                 óf   — | j                  «        t        j                  |j                  d   «      S ri   rj   re   s       r+   rB   zAtest_metaestimator_delegation.<locals>.SubEstimator.predict_proba~   rl   r-   c                 óf   — | j                  «        t        j                  |j                  d   «      S ri   rj   re   s       r+   rC   zEtest_metaestimator_delegation.<locals>.SubEstimator.predict_log_probaƒ   rl   r-   c                 óf   — | j                  «        t        j                  |j                  d   «      S ri   rj   re   s       r+   Údecision_functionzEtest_metaestimator_delegation.<locals>.SubEstimator.decision_functionˆ   rl   r-   c                 ó$   — | j                  «        y)Nç      ð?rd   r[   s        r+   r;   z9test_metaestimator_delegation.<locals>.SubEstimator.score�   s   € à�O‰OÔØr-   )r=   Nr%   )r.   r/   r0   r,   r`   rb   rA   r@   rD   rB   rC   rp   r;   )rQ   s   €r+   ÚSubEstimatorrS   b   sž   ø„ ó	/ó	ò
	"ñ 
ñ	ó 
ð	ñ 
ñ	ó 
ð	ñ 
ñ	'ó 
ð	'ñ 
ñ	'ó 
ð	'ñ 
ñ	'ó 
ð	'ñ 
ñ	'ó 
ð	'ñ 
ñ	ó 
ñ	r-   rs   Ú_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Ú
startswithÚsortÚDELEGATING_METAESTIMATORSr'   r)   Úhasattrr&   ÚpytestÚraisesr
   Úgetattrr(   r`   )rs   ÚkÚmethodsÚdelegator_dataÚdelegateÚ	delegatorrN   rQ   s          @r+   Útest_metaestimator_delegationrƒ   W   si  ø€ òö.”}ô .ðd ×&Ñ&×+Ñ+Ô-óá-ˆAØ�|‰|˜CÔ ¨¯©°eÔ)<ò 	
Ø-ð ð ð
 ‡L�L„Nç3Ð3ˆÙ“>ˆØ"×,Ñ,¨XÓ6ˆ	ÛˆFØ˜×4Ñ4Ñ4ØÜ˜8 VÔ,Ð,Ð,Ü˜9 fÔ-ð ð #×'Ó'ÚðóÐ-ð ˜Ò Ü—]‘]¤>Õ2Ø.”G˜I vÓ.Ø&×/Ñ/°Ñ2°N×4KÑ4KÈAÑ4Nô÷ 3Ð2ô
 —]‘]¤>Õ2Ø.”G˜I vÓ.¨~×/FÑ/FÀqÑ/IÔJ÷ 3Ð2ð% ð* 	ˆ	�‰�~×.Ñ.Ñ/ÛˆFØ˜×4Ñ4Ñ4Øà˜Ò Ø*”˜	 6Ó*Ø"×+Ñ+¨AÑ.°×0GÑ0GÈÑ0Jõð +”˜	 6Ó*¨>×+BÑ+BÀ1Ñ+EÕFð ó ˆFØ˜×4Ñ4Ñ4ØÙ#°&Ô9ˆHØ&×0Ñ0°Ó:ˆIÜ˜x¨Ô0Ð0Ð0Ü˜y¨&Õ1ð ð #×'Ó'ÚðóÐ1ò ñI 4ùò÷. 3Ñ2ú÷
 3Ñ2ú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š™™™™™¹?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°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˜   )rt   Ú	EstimatorÚsigr•   s       r+   Ú0_generate_meta_estimator_instances_with_pipeliner¢   û   s¬   è ø€ ô 
ˆ.œ#œnÓ.Ó/Ô0Üœ~Ó/Ö0‰ˆˆ9Ü”)˜IÓ&×1Ñ1Ó2ˆäˆd�I×&Ñ&¨Ô,Ø×Ñòô
ð ä”hÕÜ"6°yÖ"A�Ü�nÔ%Ü1°.À#ÓFÓFñ #B÷  Ðñ 1÷  Ðü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¯   2  s   € Ø×Ñ×'Ñ'Ð'r-   r…   )Úidsc                 óØ  — t        | «      } 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_)r   rV   ÚrandomÚRandomStater   ÚchoiceÚarrayÚobjectr   ÚnormalÚrandintr   Útolistr   r`   rz   )r…   ÚrngÚ	n_samplesr\   r]   s        r+   Ú-test_meta_estimators_delegate_data_validationrÄ   6  sÉ   € ô �iÓ €IÜ
�)‰)×
Ñ
 Ó
"€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__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!   ry   rƒ   r˜   r¢   Ú)DATA_VALIDATION_META_ESTIMATORS_TO_IGNOREr®   r.   ÚDATA_VALIDATION_META_ESTIMATORSr¯   ÚmarkÚparametrizerÄ   r3   s   0r+   Ú<module>rÝ      ss  ðÙ %ã Ý Ý ã Û ç ;Ñ ;Ý 0Ý .Ý -Ý ;ß 0ß :ß Dß 4ß >Ý :Ý (Ý Nß =÷õ 5÷)ñ )ñ& �*ÑBÓCÙØÙFØ�Yôñ
 Øñ	
ð �Yôñ �%˜¨KÐ9LÐ+MÔNÙØ�Ò%Pôñ ØØò
ôñ Ø Ù/ÚHôð=#Ð òLròj,/ò^Gò>-Ð )ñ& @ÔAó#áAˆØ
‡}�}×ÑÐ%NÑNò ØAñ#Ð ò(ð ‡�×ÑØÐ0Ð6Lð ó ñ4óñ4ùò#s   Ä!E