§
    qŠtj‹e  ã                   óÞ  — d Z ddlZddlmZ ddlZddlZddlmZ ddl	m
Z
mZmZ ddlmZmZmZ ddlmZ ddlmZmZmZ dd	lmZ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#m$Z$ ddl%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9  G d„ dee¦  «        Z:d„ Z;ej<         =                    de9¦  «        d„ ¦   «         Z>d„ Z?d„ Z@d„ ZAej<         =                    de9¦  «        d„ ¦   «         ZBd„ ZCd „ ZDd!„ ZEd"„ ZFd#„ ZGd$„ ZHd%„ ZId&„ ZJej<         =                    d' ed(¦  «        d(g¦  «        ej<         =                    d)ed*fed+fg¦  «        d,„ ¦   «         ¦   «         ZKej<         =                    d-d.eLfd/eMfd0„ eMfg¦  «        ej<         =                    d1eeg¦  «        d2„ ¦   «         ¦   «         ZNej<         =                    d3dd*g¦  «        d4„ ¦   «         ZOd5„ ZPd6„ ZQej<         =                    g d7¢d8d+d8 ejR        g d9¢¦  «        gd8d*d8 ejR        g d:¢¦  «        gd8d+d; ejR        g d<¢¦  «        gd8d*d; ejR        g d=¢¦  «        gd8d+d> ejR        d8d+g¦  «        gd8d*d> ejR        g d?¢¦  «        gd8d+d+ ejR        d8d+g¦  «        gd8d*d+ ejR        d8d*g¦  «        gd+d+d; ejR        d+g¦  «        gd+d*d8 ejR        d+d*g¦  «        gd+d*d; ejR        d+d*g¦  «        gg¦  «        d@„ ¦   «         ZSej<         =                    dAeeg¦  «        dB„ ¦   «         ZTej<         =                    dAeeg¦  «        dC„ ¦   «         ZUej<         =                    dAeeg¦  «        ej<         =                    dDeeeg¦  «        dE„ ¦   «         ¦   «         ZVdF„ ZWej<         =                    dGedHfedIfg¦  «        dJ„ ¦   «         ZXdK„ ZYdL„ ZZdM„ Z[ej<         =                    dNdO„ dP„ g¦  «        dQ„ ¦   «         Z\dS )Rz'
Testing Recursive feature elimination
é    N)Ú
attrgetter)Úparallel_backend)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)ÚBaseEstimatorÚClassifierMixinÚis_classifier)ÚTransformedTargetRegressor)ÚCCAÚPLSCanonicalÚPLSRegression)Ú	load_irisÚmake_classificationÚmake_friedman1)ÚRandomForestClassifier)ÚRFEÚRFECV)ÚSimpleImputer)ÚLinearRegressionÚLogisticRegression)Ú
get_scorerÚmake_scorerÚzero_one_loss)Ú
GroupKFoldÚcross_val_score)Úmake_pipeline)ÚStandardScaler)ÚSVCÚSVRÚ	LinearSVR)Úcheck_random_state)Úignore_warnings)ÚCSR_CONTAINERSc                   óX   ‡ — e Zd ZdZdd„Zd„ Zd„ ZeZeZeZ	dd„Z
dd	„Zd
„ Zˆ fd„Zˆ xZS )ÚMockClassifierz@
    Dummy classifier to test recursive feature elimination
    r   c                 ó   — || _         d S ©N©Ú	foo_param)Úselfr*   s     úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/feature_selection/tests/test_rfe.pyÚ__init__zMockClassifier.__init__$   s   € Ø"ˆŒˆˆó    c                 óì   — t          |¦  «        t          |¦  «        k    sJ ‚t          j        |j        d         t          j        ¬¦  «        | _        t          t          |¦  «        ¦  «        | _        | S )Né   )Údtype)	ÚlenÚnpÚonesÚshapeÚfloat64Úcoef_ÚsortedÚsetÚclasses_©r+   ÚXÚys      r,   ÚfitzMockClassifier.fit'   sU   € Ý�1‰vŒv�˜Q™œÒÐÐÐÝ”W˜QœW QœZ­r¬zÐ:Ñ:Ô:ˆŒ
Ý�s 1™vœv™œˆŒØˆr.   c                 ó@   — t          j        |j        d         ¦  «        S )Nr   )r3   r4   r5   )r+   ÚTs     r,   ÚpredictzMockClassifier.predict-   s   € ÝŒw�q”w˜q”zÑ"Ô"Ð"r.   Nc                 ó   — dS )Ng        © r;   s      r,   ÚscorezMockClassifier.score4   ó   € Øˆsr.   Tc                 ó   — d| j         iS )Nr*   r)   )r+   Údeeps     r,   Ú
get_paramszMockClassifier.get_params7   s   € Ø˜Tœ^Ð,Ð,r.   c                 ó   — | S r(   rC   )r+   Úparamss     r,   Ú
set_paramszMockClassifier.set_params:   s   € Øˆr.   c                 ó`   •— t          ¦   «                              ¦   «         }d|j        _        |S )NT)ÚsuperÚ__sklearn_tags__Ú
input_tagsÚ	allow_nan)r+   ÚtagsÚ	__class__s     €r,   rN   zMockClassifier.__sklearn_tags__=   s'   ø€ Ý‰wŒw×'Ò'Ñ)Ô)ˆØ$(ˆŒÔ!Øˆr.   )r   )NN)T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r-   r>   rA   Úpredict_probaÚdecision_functionÚ	transformrD   rH   rK   rN   Ú__classcell__)rR   s   @r,   r&   r&      s½   ø€ € € € € ðð ð#ð #ð #ð #ðð ð ð#ð #ð #ð €MØÐØ€Iðð ð ð ð-ð -ð -ð -ðð ð ðð ð ð ð ð ð ð ð r.   r&   c                  óf  — t          d¦  «        } t          ¦   «         }t          j        |j        |                      t          |j        ¦  «        df¬¦  «        f         }|j        }t          d| d¬¦  «        }t          |dd¬	¦  «        }| 
                    ||¦  «         t          |j        ¦  «        |j        d
         k    sJ ‚t          d¬¦  «        }t          |dd¬	¦  «        }| 
                    ||¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         d S )Nr   é   ©Úsizeé   é   )Ún_estimatorsÚrandom_stateÚ	max_depthé   çš™™™™™¹?©Ú	estimatorÚn_features_to_selectÚstepr0   Úlinear©Úkernel)r"   r   r3   Úc_ÚdataÚnormalr2   Útargetr   r   r>   Úranking_r5   r   r   Úget_support)Ú	generatorÚirisr<   r=   ÚclfÚrfeÚclf_svcÚrfe_svcs           r,   Útest_rfe_features_importancery   C   s  € Ý" 1Ñ%Ô%€IÝ‰;Œ;€Dõ 	ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AØŒ€Aå
 ¨b¸yÐTUÐ
VÑ
VÔ
V€CÝ
˜°!¸#Ð
>Ñ
>Ô
>€CØ‡G‚GˆAˆq�M„M€MÝˆsŒ|ÑÔ ¤¨¤
Ò*Ð*Ð*Ð*å˜Ð"Ñ"Ô"€GÝ˜G¸!À#ÐFÑFÔF€GØ‡K‚K��1ÑÔÐõ �s—’Ñ(Ô(¨'×*=Ò*=Ñ*?Ô*?Ñ@Ô@Ð@Ð@Ð@r.   Úcsr_containerc                 ó6  — t          d¦  «        }t          ¦   «         }t          j        |j        |                     t          |j        ¦  «        df¬¦  «        f         } | |¦  «        }|j        }t          d¬¦  «        }t          |dd¬¦  «        }| 
                    ||¦  «         |                     |¦  «        }| 
                    ||¦  «         t          |j        ¦  «        |j        d	         k    sJ ‚t          d¬¦  «        }	t          |	dd¬¦  «        }
|
 
                    ||¦  «         |
                     |¦  «        }|j        |j        j        k    sJ ‚t          |d d
…         |j        d d
…         ¦  «         t          |                     |¦  «        |                     |j        ¦  «        ¦  «         |                     ||¦  «        |                     |j        |j        ¦  «        k    sJ ‚t          ||                     ¦   «         ¦  «         d S )Nr   r\   r]   rj   rk   rd   re   rf   r0   é
   )r"   r   r3   rm   rn   ro   r2   rp   r   r   r>   rY   rq   r5   r   rA   rD   Útoarray)rz   rs   rt   r<   ÚX_sparser=   ru   rv   ÚX_rÚ
clf_sparseÚ
rfe_sparseÚ
X_r_sparses               r,   Útest_rferƒ   X   sÚ  € å" 1Ñ%Ô%€IÝ‰;Œ;€Dõ 	ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AØˆ}˜QÑÔ€HØŒ€Aõ �XÐ
Ñ
Ô
€CÝ
˜°!¸#Ð
>Ñ
>Ô
>€CØ‡G‚GˆAˆq�M„M€MØ
�-Š-˜Ñ
Ô
€CØ‡G‚GˆC��O„O€OÝˆsŒ|ÑÔ ¤¨¤
Ò*Ð*Ð*Ð*õ ˜HÐ%Ñ%Ô%€JÝ˜zÀÈÐLÑLÔL€JØ‡N‚N�8˜QÑÔÐØ×%Ò% hÑ/Ô/€JàŒ9˜œ	œÒ'Ð'Ð'Ð'Ý˜c # 2 #œh¨¬	°#°2°#¬Ñ7Ô7Ð7å˜cŸkšk¨!™nœn¨c¯kªk¸$¼)Ñ.DÔ.DÑEÔEÐEØ�9Š9�Q˜‰?Œ?˜cŸiši¨¬	°4´;Ñ?Ô?Ò?Ð?Ð?Ð?Ý˜c :×#5Ò#5Ñ#7Ô#7Ñ8Ô8Ð8Ð8Ð8r.   c                  óŽ  —  G d„ dt           t          ¦  «        } t          d¬¦  «        \  }}t          j        t
          d¬¦  «        5  t           | ¦   «         ¬¦  «                             ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          d¬¦  «        5  t           | ¦   «         ¬¦  «                             ||d	¬
¦  «                             ||¦  «         d d d ¦  «         n# 1 swxY w Y   t           | ¦   «         ¬¦  «                             ||d	¬
¦  «                             ||d	¬
¦  «         d S )Nc                   ó   — e Zd Zdd„Zdd„ZdS )ú0test_RFE_fit_score_params.<locals>.TestEstimatorNc                 óœ   — |€t          d¦  «        ‚t          d¬¦  «                             ||¦  «        | _        | j        j        | _        | S )Núfit: prop cannot be Nonerj   rk   )Ú
ValueErrorr   r>   Úsvc_r7   ©r+   r<   r=   Úprops       r,   r>   z4test_RFE_fit_score_params.<locals>.TestEstimator.fit|   sH   € Øˆ|Ý Ð!;Ñ<Ô<Ð<Ý 8Ð,Ñ,Ô,×0Ò0°°AÑ6Ô6ˆDŒIØœœˆDŒJØˆKr.   c                 óZ   — |€t          d¦  «        ‚| j                             ||¦  «        S )Núscore: prop cannot be None)r‰   rŠ   rD   r‹   s       r,   rD   z6test_RFE_fit_score_params.<locals>.TestEstimator.scoreƒ   s,   € Øˆ|Ý Ð!=Ñ>Ô>Ð>Ø”9—?’? 1 aÑ(Ô(Ð(r.   r(   )rS   rT   rU   r>   rD   rC   r.   r,   ÚTestEstimatorr†   {   s<   € € € € € ð	ð 	ð 	ð 	ð	)ð 	)ð 	)ð 	)ð 	)ð 	)r.   r�   T©Ú
return_X_yrˆ   ©Úmatch©rg   rŽ   Úfoo)rŒ   )	r   r	   r   ÚpytestÚraisesr‰   r   r>   rD   )r�   r<   r=   s      r,   Útest_RFE_fit_score_paramsr˜   x   s×  € ð)ð )ð )ð )ð )�¥ñ )ô )ð )õ  Ð%Ñ%Ô%�D€A€qÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð 1ð 1Ý�m�m‘o”oÐ&Ñ&Ô&×*Ò*¨1¨aÑ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1å	Œ•zÐ)EÐ	FÑ	FÔ	Fð Ið IÝ�m�m‘o”oÐ&Ñ&Ô&×*Ò*¨1¨a°eÐ*Ñ<Ô<×BÒBÀ1ÀaÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Iõ �-�-‘/”/Ð"Ñ"Ô"×&Ò& q¨!°%Ð&Ñ8Ô8×>Ò>¸qÀ!È%Ð>ÑPÔPÐPÐPÐPs%   Á-BÂBÂBÂ'AC6Ã6C:Ã=C:c                  óø  — t          d¦  «        } t          ¦   «         }t          j        |j        |                      t          |j        ¦  «        df¬¦  «        f         }|j        }t          d¬¦  «        }t          |dd¬¦  «        }| 
                    ||¦  «         t          |d	d¬¦  «        }| 
                    ||¦  «         t          |j        |j        ¦  «         t          |j        |j        ¦  «         d S )
Nr   r\   r]   rj   rk   rd   re   rf   gš™™™™™Ù?)r"   r   r3   rm   rn   ro   r2   rp   r   r   r>   r   rq   Úsupport_)rs   rt   r<   r=   ru   Úrfe_numÚrfe_percs          r,   Útest_rfe_percent_n_featuresr�   ‘   sä   € å" 1Ñ%Ô%€IÝ‰;Œ;€Dõ 	ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AØŒ€Aå
�XÐ
Ñ
Ô
€CÝ˜C°a¸cÐBÑBÔB€GØ‡K‚K��1ÑÔÐå˜S°sÀÐEÑEÔE€HØ‡L‚L��AÑÔÐå�xÔ(¨'Ô*:Ñ;Ô;Ð;Ý�xÔ(¨'Ô*:Ñ;Ô;Ð;Ð;Ð;r.   c                  ó
  — t          d¦  «        } t          ¦   «         }t          j        |j        |                      t          |j        ¦  «        df¬¦  «        f         }|j        }t          ¦   «         }t          |dd¬¦  «        }| 
                    ||¦  «         |                     |¦  «        }| 
                    ||¦  «         t          |j        ¦  «        |j        d         k    sJ ‚|j        |j        j        k    sJ ‚d S )Nr   r\   r]   rd   re   rf   r0   )r"   r   r3   rm   rn   ro   r2   rp   r&   r   r>   rY   rq   r5   )rs   rt   r<   r=   ru   rv   r   s          r,   Útest_rfe_mockclassifierrŸ   ¥   sä   € Ý" 1Ñ%Ô%€IÝ‰;Œ;€Dõ 	ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AØŒ€Aõ Ñ
Ô
€CÝ
˜°!¸#Ð
>Ñ
>Ô
>€CØ‡G‚GˆAˆq�M„M€MØ
�-Š-˜Ñ
Ô
€CØ‡G‚GˆC��O„O€OÝˆsŒ|ÑÔ ¤¨¤
Ò*Ð*Ð*Ð*ØŒ9˜œ	œÒ'Ð'Ð'Ð'Ð'Ð'r.   c                 óN	  — t          d¦  «        }t          ¦   «         }t          j        |j        |                     t          |j        ¦  «        df¬¦  «        f         }t          |j        ¦  «        }t          t          d¬¦  «        d¬¦  «        }|                     ||¦  «         |j                             ¦   «         D ]-}t          |j        |         ¦  «        |j        d         k    sJ ‚Œ.t          |j        ¦  «        |j        d         k    sJ ‚|                     |¦  «        }t#          ||j        ¦  «         t          t          d¬¦  «        d¬¦  «        } | |¦  «        }	|                     |	|¦  «         |                     |	¦  «        }
t#          |
                     ¦   «         |j        ¦  «         t'          t(          d¬	¦  «        }t          t          d¬¦  «        d|¬
¦  «        } t+          |j        ¦  «        ||¦  «         |                     |¦  «        }t#          ||j        ¦  «         t-          d¦  «        }t          t          d¬¦  «        d|¬
¦  «        }|                     ||¦  «         |                     |¦  «        }t#          ||j        ¦  «         d„ }t          t          d¬¦  «        d|¬
¦  «        }|                     ||¦  «         |j        dk    sJ ‚t          t          d¬¦  «        d¬¦  «        }|                     ||¦  «         |j                             ¦   «         D ]"}t          |j        |         ¦  «        dk    sJ ‚Œ#t          |j        ¦  «        |j        d         k    sJ ‚|                     |¦  «        }t#          ||j        ¦  «         t          t          d¬¦  «        d¬¦  «        } | |¦  «        }	|                     |	|¦  «         |                     |	¦  «        }
t#          |
                     ¦   «         |j        ¦  «         t          t          d¬¦  «        d¬¦  «        } | |¦  «        }	|                     |	|¦  «         |                     |	¦  «        }
t#          |
                     ¦   «         |j        ¦  «         d S )Nr   r\   r]   rj   rk   r0   ©rg   ri   F)Úgreater_is_better)rg   ri   ÚscoringÚaccuracyc                 ó   — dS )Ng      ð?rC   )rg   r<   r=   s      r,   Útest_scorerztest_rfecv.<locals>.test_scorerä   rE   r.   r`   çš™™™™™É?)r"   r   r3   rm   rn   ro   r2   Úlistrp   r   r   r>   Úcv_results_Úkeysr5   rq   rY   r   r}   r   r   r#   r   Ún_features_)rz   rs   rt   r<   r=   ÚrfecvÚkeyr   Úrfecv_sparser~   r‚   r£   Úscorerr¦   s                 r,   Ú
test_rfecvr°   ·   s^  € å" 1Ñ%Ô%€IÝ‰;Œ;€Dõ 	ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AÝˆTŒ[ÑÔ€Aõ �C xÐ0Ñ0Ô0°qÐ9Ñ9Ô9€EØ	‡I‚Iˆa��O„O€Oð Ô ×%Ò%Ñ'Ô'ð 9ð 9ˆÝ�5Ô$ SÔ)Ñ*Ô*¨a¬g°a¬jÒ8Ð8Ð8Ð8Ð8åˆuŒ~ÑÔ !¤'¨!¤*Ò,Ð,Ð,Ð,Ø
�/Š/˜!Ñ
Ô
€Cõ �s˜DœIÑ&Ô&Ð&õ ¥3¨hÐ#7Ñ#7Ô#7¸aÐ@Ñ@Ô@€LØˆ}˜QÑÔ€HØ×Ò�X˜qÑ!Ô!Ð!Ø×'Ò'¨Ñ1Ô1€JÝ�z×)Ò)Ñ+Ô+¨T¬YÑ7Ô7Ð7õ �-¸5ÐAÑAÔA€GÝ�C xÐ0Ñ0Ô0°qÀ'ÐJÑJÔJ€EØ…O�E”IÑÔ˜q !Ñ$Ô$Ð$Ø
�/Š/˜!Ñ
Ô
€CÝ�s˜DœIÑ&Ô&Ð&õ ˜
Ñ#Ô#€FÝ�C xÐ0Ñ0Ô0°qÀ&ÐIÑIÔI€EØ	‡I‚Iˆa��O„O€OØ
�/Š/˜!Ñ
Ô
€CÝ�s˜DœIÑ&Ô&Ð&ðð ð õ �C xÐ0Ñ0Ô0°qÀ+ÐNÑNÔN€EØ	‡I‚Iˆa��O„O€Oð Ô Ò!Ð!Ð!Ð!õ �C xÐ0Ñ0Ô0°qÐ9Ñ9Ô9€EØ	‡I‚Iˆa��O„O€OàÔ ×%Ò%Ñ'Ô'ð 0ð 0ˆÝ�5Ô$ SÔ)Ñ*Ô*¨aÒ/Ð/Ð/Ð/Ð/åˆuŒ~ÑÔ !¤'¨!¤*Ò,Ð,Ð,Ð,Ø
�/Š/˜!Ñ
Ô
€CÝ�s˜DœIÑ&Ô&Ð&å¥3¨hÐ#7Ñ#7Ô#7¸aÐ@Ñ@Ô@€LØˆ}˜QÑÔ€HØ×Ò�X˜qÑ!Ô!Ð!Ø×'Ò'¨Ñ1Ô1€JÝ�z×)Ò)Ñ+Ô+¨T¬YÑ7Ô7Ð7õ ¥3¨hÐ#7Ñ#7Ô#7¸cÐBÑBÔB€LØˆ}˜QÑÔ€HØ×Ò�X˜qÑ!Ô!Ð!Ø×'Ò'¨Ñ1Ô1€JÝ�z×)Ò)Ñ+Ô+¨T¬YÑ7Ô7Ð7Ð7Ð7r.   c                  ó(  — t          d¦  «        } t          ¦   «         }t          j        |j        |                      t          |j        ¦  «        df¬¦  «        f         }t          |j        ¦  «        }t          t          ¦   «         d¬¦  «        }|                     ||¦  «         |j                             ¦   «         D ]-}t          |j        |         ¦  «        |j        d         k    sJ ‚Œ.t          |j        ¦  «        |j        d         k    sJ ‚d S )Nr   r\   r]   r0   r¡   )r"   r   r3   rm   rn   ro   r2   r¨   rp   r   r&   r>   r©   rª   r5   rq   )rs   rt   r<   r=   r¬   r­   s         r,   Útest_rfecv_mockclassifierr²   	  sô   € Ý" 1Ñ%Ô%€IÝ‰;Œ;€DÝ
ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AÝˆTŒ[ÑÔ€Aõ �NÑ,Ô,°1Ð5Ñ5Ô5€EØ	‡I‚Iˆa��O„O€Oð Ô ×%Ò%Ñ'Ô'ð 9ð 9ˆÝ�5Ô$ SÔ)Ñ*Ô*¨a¬g°a¬jÒ8Ð8Ð8Ð8Ð8åˆuŒ~ÑÔ !¤'¨!¤*Ò,Ð,Ð,Ð,Ð,Ð,r.   c                  ó  — dd l } ddlm}  |¦   «         | _        t	          d¦  «        }t          ¦   «         }t          j        |j        | 	                    t          |j        ¦  «        df¬¦  «        f         }t          |j        ¦  «        }t          t          d¬¦  «        dd¬¦  «        }|                     ||¦  «         | j        }|                     d¦  «         t          |                     ¦   «         ¦  «        dk    sJ ‚d S )	Nr   )ÚStringIOr\   r]   rj   rk   r0   )rg   ri   Úverbose)ÚsysÚior´   Ústdoutr"   r   r3   rm   rn   ro   r2   r¨   rp   r   r   r>   ÚseekÚreadline)r¶   r´   rs   rt   r<   r=   r¬   Úverbose_outputs           r,   Útest_rfecv_verbose_outputr¼     sö   € à€J€J€JØÐÐÐÐÐà�‘”€C„Jå" 1Ñ%Ô%€IÝ‰;Œ;€DÝ
ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AÝˆTŒ[ÑÔ€Aå�C xÐ0Ñ0Ô0°qÀ!ÐDÑDÔD€EØ	‡I‚Iˆa��O„O€Oà”Z€NØ×Ò˜ÑÔÐÝˆ~×&Ò&Ñ(Ô(Ñ)Ô)¨AÒ-Ð-Ð-Ð-Ð-Ð-r.   c                 ó   — t          | ¦  «        }t          ¦   «         }t          j        |j        |                     t          |j        ¦  «        df¬¦  «        f         }t          |j        ¦  «        }ddgddgddgfD ]Ï\  }}t          t          ¦   «         ||¬¦  «        }|                     ||¦  «         t          j        |j        d         |z
  |z  ¦  «        dz   }|j                             ¦   «         D ]"}	t          |j        |	         ¦  «        |k    sJ ‚Œ#t          |j        ¦  «        |j        d         k    sJ ‚|j        |k    sJ ‚ŒÐd S )Nr\   r]   r`   r0   é   ©rg   ri   Úmin_features_to_select)r"   r   r3   rm   rn   ro   r2   r¨   rp   r   r&   r>   Úceilr5   r©   rª   rq   r«   )
Úglobal_random_seedrs   rt   r<   r=   ri   rÀ   r¬   Ú	score_lenr­   s
             r,   Útest_rfecv_cv_results_sizerÄ   .  sc  € Ý"Ð#5Ñ6Ô6€IÝ‰;Œ;€DÝ
ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AÝˆTŒ[ÑÔ€Að +,¨Q¨°!°Q°¸!¸Q¸Ð(@ð ;ð ;Ñ$ˆÐ$ÝÝ$Ñ&Ô&ØØ#9ð
ñ 
ô 
ˆð
 	�	Š	�!�Q‰Œˆå”G˜QœW QœZÐ*@Ñ@ÀDÑHÑIÔIÈAÑMˆ	àÔ$×)Ò)Ñ+Ô+ð 	<ð 	<ˆCÝ�uÔ(¨Ô-Ñ.Ô.°)Ò;Ð;Ð;Ð;Ð;å�5”>Ñ"Ô" a¤g¨a¤jÒ0Ð0Ð0Ð0ØÔ Ð$:Ò:Ð:Ð:Ð:Ð:ð;ð ;r.   c                  óè   — t          t          d¬¦  «        ¦  «        } t          | ¦  «        sJ ‚t          ¦   «         }t	          | |j        |j        ¦  «        }|                     ¦   «         dk    sJ ‚d S )Nrj   rk   gffffffæ?)r   r   r
   r   r   rn   rp   Úmin)rv   rt   rD   s      r,   Útest_rfe_estimator_tagsrÇ   G  sk   € Ý
�c˜Ð"Ñ"Ô"Ñ
#Ô
#€CÝ˜ÑÔÐÐÐå‰;Œ;€DÝ˜C ¤¨D¬KÑ8Ô8€EØ�9Š9‰;Œ;˜ÒÐÐÐÐÐr.   c                 ó  — d}t          d|| ¬¦  «        \  }}|j        \  }}t          d¬¦  «        }t          |d¬¦  «        }|                     ||¦  «        }|j                             ¦   «         |dz  k    sJ ‚t          |d	¬¦  «        }|                     ||¦  «        }|j                             ¦   «         |dz  k    sJ ‚t          |d
¬¦  «        }|                     ||¦  «        }|j                             ¦   «         |dz  k    sJ ‚d S )Nr|   é2   ©Ú	n_samplesÚ
n_featuresrb   rj   rk   g{®Gáz„?©ri   r`   r§   é   )r   r5   r    r   r>   rš   Úsum)rÂ   rÌ   r<   r=   rË   rg   ÚselectorÚsels           r,   Útest_rfe_min_steprÒ   P  s)  € Ø€JÝØ Ð:Lðñ ô �D€A€qð œGÑ€IˆzÝ˜8Ð$Ñ$Ô$€Iõ �9 4Ð(Ñ(Ô(€HØ
�,Š,�q˜!Ñ
Ô
€CØŒ<×ÒÑÔ ¨q¡Ò0Ð0Ð0Ð0õ �9 4Ð(Ñ(Ô(€HØ
�,Š,�q˜!Ñ
Ô
€CØŒ<×ÒÑÔ ¨q¡Ò0Ð0Ð0Ð0õ �9 1Ð%Ñ%Ô%€HØ
�,Š,�q˜!Ñ
Ô
€CØŒ<×ÒÑÔ ¨q¡Ò0Ð0Ð0Ð0Ð0Ð0r.   c                 ó4  — d„ }d„ }ddg}ddg}ddg}t          |||¦  «        D ]Þ\  }}}t          | ¦  «        }	|	                     d|f¬¦  «        }
|	                     d¦  «                             ¦   «         }t          t          d¬	¦  «        ||¬
¦  «        }|                     |
|¦  «         t          j	        |j
        ¦  «         ||||¦  «        k    sJ ‚t          j	        |j
        ¦  «         ||||¦  «        k    sJ ‚Œßd}ddg}ddg}t          ||¦  «        D ]ú\  }}t          | ¦  «        }	|	                     d|f¬¦  «        }
|	                     d¦  «                             ¦   «         }t          t          d¬	¦  «        |¬¦  «        }|                     |
|¦  «         |j                             ¦   «         D ]X}t          |j        |         ¦  «         ||||¦  «        k    sJ ‚t          |j        |         ¦  «         ||||¦  «        k    sJ ‚ŒYŒûd S )Nc                 ó$   — d| |z   |z
  dz
  |z  z   S ©Nr0   rC   ©rÌ   rh   ri   s      r,   Úformula1z4test_number_of_subsets_of_features.<locals>.formula1q  s"   € Ø�Z $Ñ&Ð)=Ñ=ÀÑAÀdÑJÑKÐKr.   c                 óV   — dt          j        | |z
  t          |¦  «        z  ¦  «        z   S rÕ   )r3   rÁ   ÚfloatrÖ   s      r,   Úformula2z4test_number_of_subsets_of_features.<locals>.formula2t  s(   € Ø•2”7˜JÐ)=Ñ=ÅÀtÁÄÑLÑMÔMÑMÐMr.   é   r¾   r`   éd   r]   rj   rk   rf   r0   r|   r¡   )Úzipr"   ro   ÚrandÚroundr   r   r>   r3   Úmaxrq   r   r©   rª   r2   )rÂ   r×   rÚ   Ún_features_listÚn_features_to_select_listÚ	step_listrÌ   rh   ri   rs   r<   r=   rv   r¬   r­   s                  r,   Ú"test_number_of_subsets_of_featuresrä   h  s©  € ðLð Lð LðNð Nð Nð ˜2�h€OØ!" A ÐØ�A�€IÝ25ØÐ2°Iñ3ô 3ð Xð XÑ.ˆ
Ð(¨$õ 'Ð'9Ñ:Ô:ˆ	Ø×Ò 3¨
Ð"3ÐÑ4Ô4ˆØ�NŠN˜3ÑÔ×%Ò%Ñ'Ô'ˆÝÝ Ð*Ñ*Ô*Ø!5Øð
ñ 
ô 
ˆð
 	�Š��1‰ŒˆåŒv�c”lÑ#Ô# x x°
Ð<PÐRVÑ'WÔ'WÒWÐWÐWÐWÝŒv�c”lÑ#Ô# x x°
Ð<PÐRVÑ'WÔ'WÒWÐWÐWÐWÐWð ÐØ˜2�h€OØ�A�€IÝ °Ñ;Ô;ð ð Ñˆ
�DÝ&Ð'9Ñ:Ô:ˆ	Ø×Ò 3¨
Ð"3ÐÑ4Ô4ˆØ�NŠN˜3ÑÔ×%Ò%Ñ'Ô'ˆÝ¥¨8Ð 4Ñ 4Ô 4¸4Ð@Ñ@Ô@ˆØ�	Š	�!�Q‰ŒˆàÔ$×)Ò)Ñ+Ô+ð 	ð 	ˆCÝ�uÔ(¨Ô-Ñ.Ô.°(°(ØÐ0°$ñ3ô 3ò ð ð ð õ �uÔ(¨Ô-Ñ.Ô.°(°(ØÐ0°$ñ3ô 3ò ð ð ð ð ð		ðð r.   c                 ó¼  — t          | ¦  «        }t          ¦   «         }t          j        |j        |                     t          |j        ¦  «        df¬¦  «        f         }|j        }t          t          d¬¦  «        ¬¦  «        }| 
                    ||¦  «         |j        }|j        }|                     d¬¦  «         | 
                    ||¦  «         t          |j        |¦  «         |                     ¦   «         |j                             ¦   «         k    sJ ‚|                     ¦   «         D ]-}||         t!          j        |j        |         ¦  «        k    sJ ‚Œ.d S )Nr\   r]   rj   rk   r”   r`   )Ún_jobs)r"   r   r3   rm   rn   ro   r2   rp   r   r   r>   rq   r©   rK   r   rª   r–   Úapprox)	rÂ   rs   rt   r<   r=   r¬   Úrfecv_rankingÚrfecv_cv_results_r­   s	            r,   Útest_rfe_cv_n_jobsrê   ©  sG  € Ý"Ð#5Ñ6Ô6€IÝ‰;Œ;€DÝ
ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AØŒ€Aå�C xÐ0Ñ0Ô0Ð1Ñ1Ô1€EØ	‡I‚Iˆa��O„O€OØ”N€MàÔ)Ðà	×Ò˜AÐÑÔÐØ	‡I‚Iˆa��O„O€OÝ˜eœn¨mÑ<Ô<Ð<à×!Ò!Ñ#Ô# uÔ'8×'=Ò'=Ñ'?Ô'?Ò?Ð?Ð?Ð?Ø ×%Ò%Ñ'Ô'ð Oð OˆØ  Ô%­¬°uÔ7HÈÔ7MÑ)NÔ)NÒNÐNÐNÐNÐNðOð Or.   c            	      ó´  — t          d¦  «        } t          ¦   «         }d}t          j        t          j        d|t          |j        ¦  «        ¦  «        ¦  «        }|j        }|j        dk                         t          ¦  «        }t          t          | ¬¦  «        ddt          d¬¦  «        ¬¦  «        }|                     |||¬	¦  «         |j        dk    sJ ‚d S )
Nr   rd   ©rb   r0   r¤   r`   )Ún_splits)rg   ri   r£   Úcv)Úgroups)r"   r   r3   ÚfloorÚlinspacer2   rp   rn   ÚastypeÚintr   r   r   r>   r«   )rs   rt   Únumber_groupsrï   r<   r=   Ú
est_groupss          r,   Útest_rfe_cv_groupsrö   ¾  sÎ   € Ý" 1Ñ%Ô%€IÝ‰;Œ;€DØ€MÝŒX•b”k ! ]µC¸¼Ñ4DÔ4DÑEÔEÑFÔF€FØŒ	€AØ	Œ�qŠ× Ò ¥Ñ%Ô%€AåÝ(°iÐ@Ñ@Ô@ØØÝ˜qÐ!Ñ!Ô!ð	ñ ô €Jð ‡N‚N�1�a €NÑ'Ô'Ð'ØÔ! AÒ%Ð%Ð%Ð%Ð%Ð%r.   Úimportance_getterzregressor_.coef_zselector, expected_n_featuresrÎ   rd   c                 ó   — t          ddd¬¦  «        \  }}t          d¬¦  «        }t          |t          j        t          j        ¬¦  «        } ||| ¬¦  «        }|                     ||¦  «        }|j                             ¦   «         |k    sJ ‚d S )NrÉ   r|   r   rÊ   rì   ©Ú	regressorÚfuncÚinverse_func©r÷   )	r   r!   r   r3   ÚlogÚexpr>   rš   rÏ   )r÷   rÐ   Úexpected_n_featuresr<   r=   rg   Úlog_estimatorrÑ   s           r,   Útest_rfe_wrapped_estimatorr  Ð  s›   € õ  B°2ÀAÐFÑFÔF�D€A€qÝ qÐ)Ñ)Ô)€Iå.Ø¥"¤&µr´vðñ ô €Mð ˆx˜Ð9JÐKÑKÔK€HØ
�,Š,�q˜!Ñ
Ô
€CØŒ<×ÒÑÔÐ!4Ò4Ð4Ð4Ð4Ð4Ð4r.   zimportance_getter, err_typeÚautoÚrandomc                 ó   — | j         S r(   )Ú
importance)Úxs    r,   ú<lambda>r  è  s   € �1”<€ r.   ÚSelectorc                 ó8  — t          ddd¬¦  «        \  }}t          ¦   «         }t          |t          j        t          j        ¬¦  «        }t          j        |¦  «        5   ||| ¬¦  «        }|                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÉ   r|   é*   rÊ   rù   rý   )	r   r!   r   r3   rþ   rÿ   r–   r—   r>   )r÷   Úerr_typer	  r<   r=   rg   r  Úmodels           r,   Ú%test_rfe_importance_getter_validationr  ã  sà   € õ  B°2ÀBÐGÑGÔG�D€A€qÝ‘”€IÝ.Ø¥"¤&µr´vðñ ô €Mõ 
Œ�xÑ	 Ô	 ð ð Ø�˜Ð:KÐLÑLÔLˆØ�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á$BÂBÂBrî   c                 óL  — t          ¦   «         }|j        }|j        }t          j        |d         d<   t          j        |d         d<   t          ¦   «         }| �t          || ¬¦  «        }nt          |¬¦  «        }| 	                    ||¦  «         | 
                    |¦  «         d S )Nr   r0   )rg   rî   r”   )r   rn   rp   r3   ÚnanÚinfr&   r   r   r>   rY   )rî   rt   r<   r=   ru   rv   s         r,   Útest_rfe_allow_nan_inf_in_xr  ø  s–   € å‰;Œ;€DØŒ	€AØŒ€Aõ Œf€A€a„Dˆ�GÝŒf€A€a„Dˆ�Gå
Ñ
Ô
€CØ	€~Ý˜c bÐ)Ñ)Ô)ˆˆå˜CÐ Ñ Ô ˆØ‡G‚GˆAˆq�M„M€MØ‡M‚M�!ÑÔÐÐÐr.   c                  ó  — t          t          ¦   «         t          ¦   «         ¦  «        } t          d¬¦  «        \  }}t	          | dd¬¦  «        }|                     ||¦  «         |                     |¦  «        j        d         dk    sJ ‚d S )NTr�   r`   ú$named_steps.logisticregression.coef_©rh   r÷   r0   )r   r   r   r   r   r>   rY   r5   )Úpipelinern   r=   Úsfms       r,   Útest_w_pipeline_2d_coef_r    s�   € Ý�^Ñ-Ô-Õ/AÑ/CÔ/CÑDÔD€Hå 4Ð(Ñ(Ô(�G€Dˆ!Ý
ØØØ@ðñ ô €Cð ‡G‚GˆD�!ÑÔÐØ�=Š=˜ÑÔÔ$ QÔ'¨1Ò,Ð,Ð,Ð,Ð,Ð,r.   c                 ó„  ‡	— t          | ¦  «        }t          ¦   «         }t          j        |j        |                     t          |j        ¦  «        df¬¦  «        f         }|j        }t          t          d¬¦  «        ¬¦  «        Š	‰	 
                    ||¦  «         d„ ‰	j                             ¦   «         D ¦   «         }t          j        ˆ	fd„|D ¦   «         ¦  «        }t          j        |d¬	¦  «        }t          j        |d¬	¦  «        }t!          ‰	j        d
         |¦  «         t!          ‰	j        d         |¦  «         d S )Nr\   r]   rj   rk   r”   c                 ó<   — g | ]}t          j        d |¦  «        ¯|‘ŒS )zsplit\d+_test_score)ÚreÚsearch)Ú.0r­   s     r,   ú
<listcomp>z+test_rfecv_std_and_mean.<locals>.<listcomp>!  s;   € ð ð ð àÝŒ9Ð+¨SÑ1Ô1ðØðð ð r.   c                 ó*   •— g | ]}‰j         |         ‘ŒS rC   )r©   )r  r­   r¬   s     €r,   r  z+test_rfecv_std_and_mean.<locals>.<listcomp>&  s!   ø€ ÐIÐIÐI°s˜EÔ-¨cÔ2ÐIÐIÐIr.   r   ©ÚaxisÚmean_test_scoreÚstd_test_score)r"   r   r3   rm   rn   ro   r2   rp   r   r   r>   r©   rª   ÚasarrayÚmeanÚstdr   )
rÂ   rs   rt   r<   r=   Ú
split_keysÚ	cv_scoresÚexpected_meanÚexpected_stdr¬   s
            @r,   Útest_rfecv_std_and_meanr+    s1  ø€ Ý"Ð#5Ñ6Ô6€IÝ‰;Œ;€DÝ
ŒˆdŒi˜×)Ò)µ°D´I±´ÀÐ/BÐ)ÑCÔCÐCÔD€AØŒ€Aå�C xÐ0Ñ0Ô0Ð1Ñ1Ô1€EØ	‡I‚Iˆa��O„O€Oðð àÔ$×)Ò)Ñ+Ô+ðñ ô €Jõ
 ”
ÐIÐIÐIÐI¸jÐIÑIÔIÑJÔJ€IÝ”G˜I¨AÐ.Ñ.Ô.€MÝ”6˜)¨!Ð,Ñ,Ô,€Lå�EÔ%Ð&7Ô8¸-ÑHÔHÐHÝ�EÔ%Ð&6Ô7¸ÑFÔFÐFÐFÐFr.   )rÀ   rÌ   ri   Úcv_results_n_featuresr0   )r0   r`   r¾   rd   )r0   r`   r¾   rd   rÎ   r`   )r0   r`   rd   )r0   r¾   rÎ   r¾   )r0   r`   rÎ   c                 ó>  ‡— t          d||d¬¦  «        \  }}t          t          d¬¦  «        || ¬¦  «        Š‰                     ||¦  «         t	          ‰j        d         |¦  «         t          ˆfd„‰j                             ¦   «         D ¦   «         ¦  «        sJ ‚d S )	Nr_   r   )rË   rÌ   Ún_informativeÚn_redundantrj   rk   r¿   rÌ   c              3   ón   •K  — | ]/}t          |¦  «        t          ‰j        d          ¦  «        k    V — Œ0dS )rÌ   N)r2   r©   )r  Úvaluer¬   s     €r,   ú	<genexpr>z3test_rfecv_cv_results_n_features.<locals>.<genexpr>N  sR   øè è € ð ð àõ 	ˆE‰
Œ
•c˜%Ô+¨LÔ9Ñ:Ô:Ò:ðð ð ð ð ð r.   )r   r   r   r>   r   r©   ÚallÚvalues)rÀ   rÌ   ri   r,  r<   r=   r¬   s         @r,   Ú test_rfecv_cv_results_n_featuresr5  .  sØ   ø€ õ, Ø ¸:ÐSTðñ ô �D€A€qõ Ý˜XÐ&Ñ&Ô&ØØ5ðñ ô €Eð
 
‡I‚Iˆa��O„O€OÝ�uÔ(¨Ô6Ð8MÑNÔNÐNÝð ð ð ð àÔ&×-Ò-Ñ/Ô/ðñ ô ñ ô ð ð ð ð ð r.   ÚClsRFEc                 óê   — t           j                             d¬¦  «        }t           j                             dd¬¦  «        }t	          d¬¦  «        } | |¦  «        }|                     ||¦  «         d S )N)r|   r¾   r]   r`   )r|   r`   rÎ   )ra   )r3   r  ro   Úrandintr   r>   )r6  r<   r=   ru   Úrfe_tests        r,   Útest_multioutputr:  T  sk   € å
Œ	×Ò˜gÐÑ&Ô&€AÝ
Œ	×Ò˜! 'ÐÑ*Ô*€AÝ
 ¨aÐ
0Ñ
0Ô
0€CØˆv�c‰{Œ{€HØ‡L‚L��AÑÔÐÐÐr.   c                 óú   — t          d¬¦  «        \  }}t          j        |d<   t          t	          ¦   «         t          ¦   «         t          ¦   «         ¦  «        } | |d¬¦  «        }|                     ||¦  «         dS )z`Check that RFE works with pipeline that accept nans.

    Non-regression test for gh-21743.
    Tr�   )r   r   r  )rg   r÷   N)r   r3   r  r   r   r   r   r>   )r6  r<   r=   ÚpipeÚfss        r,   Útest_pipeline_with_nansr>  ]  s€   € õ  Ð%Ñ%Ô%�D€A€qÝŒf€A€d�GåÝ‰ŒÝÑÔÝÑÔñô €Dð 
ˆØØ@ð
ñ 
ô 
€Bð ‡F‚Fˆ1ˆa�L„L€L€L€Lr.   ÚPLSEstimatorc                 óÂ   — t          ddd¬¦  «        \  }} |d¬¦  «        } | |d¬¦  «                             ||¦  «        }|                     ||¦  «        dk    sJ ‚d	S )
z�Check the behaviour of RFE with PLS estimators.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/12410
    rÉ   r|   r   rÊ   r0   )Ún_componentsrÍ   g      à?N)r   r>   rD   )r6  r?  r<   r=   rg   rÐ   s         r,   Útest_rfe_plsrB  s  sw   € õ  B°2ÀAÐFÑFÔF�D€A€qØ�¨!Ð,Ñ,Ô,€IØˆv�i aÐ(Ñ(Ô(×,Ò,¨Q°Ñ2Ô2€HØ�>Š>˜!˜QÑÔ #Ò%Ð%Ð%Ð%Ð%Ð%r.   c                  ó´  — t          ¦   «         } t          t          ¦   «         ¬¦  «        }d}d}t          j        t
          |¬¦  «        5 }|                     | j        | j        ¦  «         	                    | j        ¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        j        t
          ¦  «        sJ ‚|t          |j        j        ¦  «        v sJ ‚dS )a  Check that we raise the proper AttributeError when the estimator
    does not implement the `decision_function` method, which is decorated with
    `available_if`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28108
    r”   z/This 'RFE' has no attribute 'decision_function'z>'LinearRegression' object has no attribute 'decision_function'r’   N)r   r   r   r–   r—   ÚAttributeErrorr>   rn   rp   rX   Ú
isinstancer1  Ú	__cause__Ústr)rt   rv   Ú	outer_msgÚ	inner_msgÚ	exec_infos        r,   Ú"test_rfe_estimator_attribute_errorrK  �  s  € õ ‰;Œ;€Dõ Õ(Ñ*Ô*Ð
+Ñ
+Ô
+€CàA€IØP€IÝ	Œ•~¨YÐ	7Ñ	7Ô	7ð E¸9Ø�Š�”	˜4œ;Ñ'Ô'×9Ò9¸$¼)ÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eå�i”oÔ/µÑ@Ô@Ð@Ð@Ð@Ø�˜IœOÔ5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6s   Á
9BÂBÂBzClsRFE, paramrh   rÀ   c                 óø   — t          dd¬¦  «        \  }}t          j        t          |› d�¬¦  «        5   | d	dt	          ¦   «         i|di¤Ž}|                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )
zßCheck if the correct warning is raised when trying to initialize a RFE
    object with an n_features_to_select attribute larger than the number of
    features present in the X variable that is passed to the fit method
    r_   r   )rÌ   rb   z=21 > n_features=20r’   rg   é   NrC   )r   r–   ÚwarnsÚUserWarningr   r>   )r6  Úparamr<   r=   Úclsrfes        r,   Ú%test_rfe_n_features_to_select_warningrR  —  s×   € õ ¨"¸1Ð=Ñ=Ô=�D€A€qå	Œ•k¨EÐ)FÐ)FÐ)FÐ	GÑ	GÔ	Gð ð ð �ÐFÐFÕ"4Ñ"6Ô"6ÐF¸5À"¸+ÐFÐFˆØ�
Š
�1�aÑÔÐð	ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ³/A/Á/A3Á6A3c                  óº  — t          d¬¦  «        \  } }| j        d         }t          j        |¦  «        }d|d|dz  …<   t          j        | | d|dz  …         gd¬¦  «        }t          j        ||d|dz  …         g¦  «        }t          d¬¦  «        }t          |d¬	¦  «        }|                     | ||¬
¦  «         t          |d¬	¦  «        }|                     ||¦  «         t          |j	        |j	        ¦  «         t          |d¬	¦  «        }	t          j        |¦  «        }
|	                     | ||
¬
¦  «         t          j
        |	j	        |j	        ¦  «        rJ ‚dS )z4Test that `RFE` works correctly with sample weights.r   rì   r`   Nr   rj   rk   re   r¡   )Úsample_weight)r   r5   r3   Ú	ones_likeÚconcatenater   r   r>   r   rq   Úarray_equal)r<   r=   rË   rT  ÚX2Úy2rg   Úrfe_swrv   Úrfe_sw_2Úsample_weight_2s              r,   Útest_rfe_with_sample_weightr]  ¨  s^  € å¨AÐ.Ñ.Ô.�D€A€qØ”˜”
€Iõ ”L ‘O”O€MØ&'€MÐ"�I ‘NÐ"Ñ#õ 
Œ˜˜AÐ. 	¨Q¡Ð.Ô/Ð0°qÐ	9Ñ	9Ô	9€BÝ	Œ˜˜AÐ. 	¨Q¡Ð.Ô/Ð0Ñ	1Ô	1€Bå˜8Ð$Ñ$Ô$€Iå˜9¨3Ð/Ñ/Ô/€FØ
‡J‚Jˆq�! =€JÑ1Ô1Ð1å
˜	¨Ð
,Ñ
,Ô
,€CØ‡G‚GˆB��O„O€Oå�v”¨¬Ñ5Ô5Ð5õ ˜Y¨SÐ1Ñ1Ô1€HÝ”l 1‘o”o€OØ‡L‚L��A _€LÑ5Ô5Ð5åŒ~˜hÔ/°´Ñ>Ô>Ð>Ð>Ð>Ð>Ð>r.   c                 óH  — t          | ¬¦  «        \  }}t          ¦   «         }t          |d¬¦  «        }|                     ||¦  «         |j        }t          d¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          ||j        ¦  «         d S )Nrì   r`   )rg   ræ   Ú	threading)r   r   r   r>   rq   r   r   )rÂ   r<   r=   ru   rv   Úranking_refs         r,   Ú&test_rfe_with_joblib_threading_backendra  É  sä   € ÝÐ,>Ð?Ñ?Ô?�D€A€qå
Ñ
Ô
€CÝ
ØØðñ ô €Cð
 ‡G‚GˆAˆq�M„M€MØ”,€Kå	˜+Ñ	&Ô	&ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �{ C¤LÑ1Ô1Ð1Ð1Ð1s   ÁBÂBÂ	Bc                 óè  — t          | ¬¦  «        \  }}t          ¦   «         }t          |dd¬¦  «        }|                     ||¦  «         t	          |j        d         ¦  «        t	          |j        d         ¦  «        k    sJ ‚t	          |j        d         ¦  «        t	          |j        d         ¦  «        k    sJ ‚t	          |j        d	         ¦  «        t	          |j        d
         ¦  «        k    sJ ‚dS )zx
    Test that the results of RFECV are consistent across the different folds
    in terms of length of the arrays.
    rì   r`   rÎ   )rg   ræ   rî   Úsplit1_test_scoreÚsplit2_test_scoreÚsplit1_supportÚsplit2_supportÚsplit1_rankingÚsplit2_rankingN)r   r   r   r>   r2   r©   )rÂ   r<   r=   ru   r¬   s        r,   Útest_results_per_cv_in_rfecvri  Û  s"  € õ
 Ð,>Ð?Ñ?Ô?�D€A€qå
Ñ
Ô
€CÝØØØðñ ô €Eð 
‡I‚Iˆa��O„O€OåˆuÔ Ð!4Ô5Ñ6Ô6½#ØÔÐ-Ô.ñ;ô ;ò ð ð ð õ ˆuÔ Ð!1Ô2Ñ3Ô3µsØÔÐ*Ô+ñ8ô 8ò ð ð ð õ ˆuÔ Ð!1Ô2Ñ3Ô3µsØÔÐ*Ô+ñ8ô 8ò ð ð ð ð ð r.   Úfeature_importancec                 ó4   — |                       ¦   «         j        S r(   )Úsparsifyr7   r”   s    r,   r  r  ù  s   € ˜)×,Ò,Ñ.Ô.Ô4€ r.   c                 óX   — |                       ¦   «         j                             ¦   «         S r(   )rl  r7   Útocscr”   s    r,   r  r  ú  s!   € ˜)×,Ò,Ñ.Ô.Ô4×:Ò:Ñ<Ô<€ r.   c                 óL  — g d¢g d¢g d¢g d¢g}g d¢}t          ¦   «         }t          |d| ¬¦  «        }t          |d¬¦  «        }|                     ||¦  «         |                     ||¦  «         t          |j        |j        ¦  «         t          |j        |j        ¦  «         d S )	N)r   r0   r¾   )r0   r   r   )r`   r   rd   )r   r`   rd   )r   r0   r`   r¾   r0   r  )rh   )r   r   r>   r   rš   rq   )rj  r<   r=   rg   Úselector_sparseÚselector_denses         r,   Útest_rfe_sparse_coefrr  ö  sÄ   € ð 
ˆˆ�I�I�I˜y˜y˜y¨)¨)¨)Ð4€AØˆˆ€Aå"Ñ$Ô$€IÝØ¨Ð=Oðñ ô €Oõ ˜¸Ð;Ñ;Ô;€NØ×Ò˜˜1ÑÔÐØ×Ò�q˜!ÑÔÐå�Ô/°Ô1HÑIÔIÐIÝ�Ô/°Ô1HÑIÔIÐIÐIÐIr.   )]rV   r  Úoperatorr   Únumpyr3   r–   Újoblibr   Únumpy.testingr   r   r   Úsklearn.baser   r	   r
   Úsklearn.composer   Úsklearn.cross_decompositionr   r   r   Úsklearn.datasetsr   r   r   Úsklearn.ensembler   Úsklearn.feature_selectionr   r   Úsklearn.imputer   Úsklearn.linear_modelr   r   Úsklearn.metricsr   r   r   Úsklearn.model_selectionr   r   Úsklearn.pipeliner   Úsklearn.preprocessingr   Úsklearn.svmr   r    r!   Úsklearn.utilsr"   Úsklearn.utils._testingr#   Úsklearn.utils.fixesr$   r&   ry   ÚmarkÚparametrizerƒ   r˜   r�   rŸ   r°   r²   r¼   rÄ   rÇ   rÒ   rä   rê   rö   r  r‰   rD  r  r  r  r+  Úarrayr5  r:  r>  rB  rK  rR  r]  ra  ri  rr  rC   r.   r,   ú<module>rŠ     sf  ððð ð 
€	€	€	Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ Xà FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø (Ð (Ð (Ð (Ð (Ð (Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø *Ð *Ð *Ð *Ð *Ð *Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø .Ð .Ð .Ð .Ð .Ð .ð!ð !ð !ð !ð !�_ mñ !ô !ð !ðHAð Að Að* „×Ò˜¨.Ñ9Ô9ð9ð 9ñ :Ô9ð9ð>Qð Qð Qð2<ð <ð <ð((ð (ð (ð$ „×Ò˜¨.Ñ9Ô9ðN8ð N8ñ :Ô9ðN8ðb-ð -ð -ð".ð .ð .ð(;ð ;ð ;ð2ð ð ð1ð 1ð 1ð0>ð >ð >ðBOð Oð Oð*&ð &ð &ð$ „×ÒØ˜*˜*Ð%7Ñ8Ô8Ð:LÐMñô ð „×ÒÐ8¸CÀ¸8ÀeÈQÀZÐ:PÑQÔQð5ð 5ñ RÔQñô ð5ð „×ÒØ!à	�ÐØ	�>Ð"Ø	Ð	 Ð0ðñô ð „×Ò˜ c¨5 \Ñ2Ô2ð	ð 	ñ 3Ô2ñô ð	ð „×Ò˜  a˜yÑ)Ô)ðð ñ *Ô)ðð$-ð -ð -ðGð Gð Gð* „×ÒØMÐMÐMà	
ˆAˆq�(�"”(˜<˜<˜<Ñ(Ô(Ð)Ø	
ˆAˆq�(�"”(˜?˜?˜?Ñ+Ô+Ð,Ø	
ˆAˆq�(�"”(˜9˜9˜9Ñ%Ô%Ð&Ø	
ˆAˆq�(�"”(˜9˜9˜9Ñ%Ô%Ð&Ø	
ˆAˆq�(�"”(˜A˜q˜6Ñ"Ô"Ð#Ø	
ˆAˆq�(�"”(˜9˜9˜9Ñ%Ô%Ð&Ø	
ˆAˆq�(�"”(˜A˜q˜6Ñ"Ô"Ð#Ø	
ˆAˆq�(�"”(˜A˜q˜6Ñ"Ô"Ð#Ø	
ˆAˆq�(�"”(˜A˜3‘-”-Ð Ø	
ˆAˆq�(�"”(˜A˜q˜6Ñ"Ô"Ð#Ø	
ˆAˆq�(�"”(˜A˜q˜6Ñ"Ô"Ð#ðñô ð ð ñ!ô ð ð, „×Ò˜ C¨ <Ñ0Ô0ðð ñ 1Ô0ðð „×Ò˜ C¨ <Ñ0Ô0ðð ñ 1Ô0ðð* „×Ò˜ C¨ <Ñ0Ô0Ø„×Ò˜¨#¨|¸]Ð)KÑLÔLð	&ð 	&ñ MÔLñ 1Ô0ð	&ð7ð 7ð 7ð, „×ÒØ�sÐ2Ð3°eÐ=UÐ5VÐWñô ðð ñô ðð?ð ?ð ?ðB2ð 2ð 2ð$ð ð ð6 „×ÒØà4Ð4Ø<Ð<ðñô ðJð Jñô ðJð Jð Jr.   