§
    qŠtj¿,  ã                   óŠ  — 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
 ddlmZmZ ddlmZ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mZmZ d„ Zd„ Zej                              dddg¦  «        ej         !                    d¦  «        d„ ¦   «         ¦   «         Z"d„ Z#d„ Z$ej                              dddg¦  «        d„ ¦   «         Z%d„ Z&ej                              dg d¢¦  «        d„ ¦   «         Z'ej                              dddge(dfddge(dfddge)d fg¦  «        d!„ ¦   «         Z*d"„ Z+ ed#¬$¦  «        d%„ ¦   «         Z,d&„ Z-dS )'z Test the graphical_lasso module.é    N)ÚStringIO)Úassert_allclose)Úlinalg)Úconfig_contextÚdatasets)ÚGraphicalLassoÚGraphicalLassoCVÚempirical_covarianceÚgraphical_lasso)Úmake_sparse_spd_matrix)Ú
GroupKFold)Úcheck_random_state)Ú_convert_containerÚassert_array_almost_equalÚassert_array_lessc                 ó6  — d}d}t          | ¦  «        }t          |d|¬¦  «        }t          j        |¦  «        }|                     t          j        |¦  «        ||¬¦  «        }t          |¦  «        }dD ]Ç}t          ¦   «         }	t          ¦   «         }
dD ]j}t          |d||d	d
d¬¦  «        \  }}}||	|<   ||
|<   t          j
        |¦  «        j        \  }}|dk    s"t          t          j        |¦  «        d¦  «         Œkt          |	d         |	d         d¬¦  «         t          |
d         |
d         d¬¦  «         ŒÈt          dd	d
d¬¦  «                             |¦  «        }|                     |¦  «         t          |j        |	d         d¬¦  «         ||                     d¦  «        z
  }t)          ¦   «         }dD ]?}t          |¬¦  «                             |¦  «        j        }|                     |¦  «         Œ@t/          |d         |d         ¦  «         dS )z!Test the graphical lasso solvers.é
   éd   gffffffî?©ÚalphaÚrandom_state©Úsize)ç        çš™™™™™¹?ç      Ð?©ÚcdÚlarsTgH¯¼šò×z>g•dyáý¥=)Úreturn_costsr   ÚmodeÚtolÚenet_tolÚmax_iterr   g»½×Ùß|Û=r   r   gü©ñÒMb`?©Úatolr   )r   r"   r#   r$   ç�íµ ÷Æ°>)Úrtol)FT©Úassume_centeredé   N)r   r   r   ÚinvÚmultivariate_normalÚnpÚzerosr
   Údictr   ÚarrayÚTr   Údiffr   r   ÚfitÚscoreÚcovariance_ÚmeanÚlistÚ
precision_Úappendr   )Úglobal_random_seedÚdimÚ	n_samplesr   ÚprecÚcovÚXÚemp_covr   ÚcovsÚicovsÚmethodÚcov_Úicov_ÚcostsÚdual_gapÚmodelÚZÚprecsr*   Úprec_s                        úk/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/covariance/tests/test_graphical_lasso.pyÚtest_graphical_lassosrN      s(  € ð €CØ€IÝ%Ð&8Ñ9Ô9€LÝ! #¨TÀÐMÑMÔM€DÝ
Œ*�TÑ
Ô
€CØ×(Ò(­¬°#©¬¸À)Ð(ÑLÔL€AÝ" 1Ñ%Ô%€Gà!ð ?ð ?ˆÝ‰vŒvˆÝ‘”ˆØ$ð 	9ð 	9ˆFÝ!0ØØ!ØØØØØð"ñ "ô "ÑˆD�%˜ð  ˆD�‰LØ!ˆE�&‰MÝ œh u™oœoÔ/‰OˆE�8à˜A’:�:å!¥"¤'¨%¡.¤.°%Ñ8Ô8Ð8øå˜˜Tœ
 D¨¤L°tÐ<Ñ<Ô<Ð<Ý˜˜dœ U¨6¤]¸Ð>Ñ>Ô>Ð>Ð>õ  ¨4¸%È#ÐNÑNÔN×RÒRÐSTÑUÔU€EØ	‡K‚K��N„N€NÝ�EÔ% t¨D¤z¸Ð=Ñ=Ô=Ð=ð 	
ˆA�FŠF�1‰IŒI‰€AÝ‰FŒF€EØ(ð ð ˆÝ¨Ð?Ñ?Ô?×CÒCÀAÑFÔFÔQˆØ�Š�UÑÔÐÐÝ˜e Aœh¨¨a¬Ñ1Ô1Ð1Ð1Ð1ó    c                 ó¼  — t           j                             | ¦  «                             dd¦  «        }t	          |d¬¦  «        }t          dd¬¦  «                             |¦  «        }t          |j        t           j	         
                    |¦  «        ¦  «         t          |d¬¦  «        \  }}t          |t           j	         
                    |¦  «        ¦  «         d	S )
z;Test graphical_lasso's early return condition when alpha=0.r   r   Tr)   r   Úprecomputed)r   Ú
covariance)r   N)r.   ÚrandomÚRandomStateÚrandnr
   r   r4   r   r9   r   r,   r   )r;   r@   rA   rI   Ú_Ú	precisions         rM   Ú(test_graphical_lasso_when_alpha_equals_0rX   N   sµ   € å
Œ	×ÒÐ0Ñ1Ô1×7Ò7¸¸RÑ@Ô@€AÝ" 1°dÐ;Ñ;Ô;€Gå ¨}Ð=Ñ=Ô=×AÒAÀ'ÑJÔJ€EÝ�EÔ$¥b¤i§m¢m°GÑ&<Ô&<Ñ=Ô=Ð=å" 7°!Ð4Ñ4Ô4�L€A€yÝ�I�rœyŸ}š}¨WÑ5Ô5Ñ6Ô6Ð6Ð6Ð6rO   r!   r   r   z-ignore::sklearn.exceptions.ConvergenceWarningc                 ó˜   — t          j        ddd¬¦  «        \  }}t          |¦  «        }t          |d| dd¬¦  «        \  }}}|dk    sJ ‚d S )	Niˆ  é   r   )r=   Ú
n_featuresr   çš™™™™™É?é   T)r!   r$   Úreturn_n_iter)r   Úmake_classificationr
   r   )r!   r@   rV   rA   Ún_iters        rM   Útest_graphical_lasso_n_iterra   Z   se   € õ Ô'°%ÀBÐUVÐWÑWÔW�D€A€qÝ" 1Ñ%Ô%€Gå"Ø�˜4¨!¸4ðñ ô �L€A€qˆ&ð �QŠ;ˆ;ˆ;ˆ;ˆ;ˆ;rO   c                  óJ  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        ¦   «         j        }t          |¦  «        }d	D ]8}t          |d
d|¬¦  «        \  }}t          || ¦  «         t          ||¦  «         Œ9d S )N)gJSoÓÀËå?r   ç¥Ú§ã1Ñ?ç¾¥{!<™?)r   g-ªêŠ¾'È?r   r   )rc   r   gî[­—Ã@ç˜ˆ·Î¿]Ò?)rd   r   re   çóÞÿdßwâ?)glåÊE!Nø?r   ç¦',ñ€²À¿r   )r   g5ÒRy;2@r   r   )rg   r   gŽg†C%dÖ?çXéIô�Å¿)r   r   rh   g—Ìvý?r   g      ð?F©r   r    r!   ©r.   r1   r   Ú	load_irisÚdatar
   r   r   )Úcov_RÚicov_Rr@   rA   rD   r?   Úicovs          rM   Útest_graphical_lasso_irisrp   f   sñ   € õ ŒHà9Ð9Ð9Ø9Ð9Ð9Ø9Ð9Ð9Ø9Ð9Ð9ð		
ñô €Eõ ŒXà8Ð8Ð8Ø7Ð7Ð7Ø9Ð9Ð9Ø8Ð8Ð8ð		
ñô €Fõ 	ÔÑÔÔ!€AÝ" 1Ñ%Ô%€GØ ð 0ð 0ˆÝ# G°3ÀUÐQWÐXÑXÔX‰	ˆˆTÝ! # uÑ-Ô-Ð-Ý! $¨Ñ/Ô/Ð/Ð/ð0ð 0rO   c                  óJ  — t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }t          j        ¦   «         j        d d …dd …f         }t          |¦  «        }dD ]8}t          |d	d
|¬¦  «        \  }}t          || ¦  «         t          ||¦  «         Œ9d S )Ng×ê–Ã@gŒHZÖýò?rf   gÃÉ‰¸1tø?gO{Ì“%	Àg¸4#(#e @r]   r   r   Fri   rj   )Ú	cov_skggmÚ
icov_skggmr@   rA   rD   r?   ro   s          rM   Útest_graph_lasso_2Drt   �   sÆ   € õ ”˜: xÐ0°8¸ZÐ2HÐIÑJÔJ€Iå”˜J¨Ð4°{ÀJÐ6OÐPÑQÔQ€JÝÔÑÔÔ! ! ! ! Q R R %Ô(€AÝ" 1Ñ%Ô%€GØ ð 4ð 4ˆÝ# G°3ÀUÐQWÐXÑXÔX‰	ˆˆTÝ! # yÑ1Ô1Ð1Ý! $¨
Ñ3Ô3Ð3Ð3ð4ð 4rO   rD   c                 ó†  — t          j        dd¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢g d¢g d	¢g d
¢g¦  «        }t          j        ¦   «         j        |d d …f         }t          |¦  «        }t          |dd| ¬¦  «        \  }}t          ||d¬¦  «         t          ||d¬¦  «         d S )Nr   é   )g{®Gáz´?çtì<­i­?g­üªÈÑb?gHâŽWµY?)rw   gÕ«rûƒµ?gHýç´�Nk?çÛ¨šxV4b?)gå¢ÈÑb?gè`Ü´�Nk?gR*è´�N{?çLÆgö×�?)g:glWµY?gEë’xV4b?ry   rx   )gR§°%l8@gƒ¯,ôèÔ0Àr   r   )gŸ¹éÔ0ÀgÁCáKZ8@gû‘°ÜÓÀg      )À)r   gTs —ÜÓÀgìGÂrO#c@r   )r   gm>ãÿÿ(Àr   g     è|@g{®Gáz„?Fri   r'   r%   gñhãˆµøä>)	r.   Úaranger1   r   rk   rl   r
   r   r   )rD   Úindicesrm   rn   r@   rA   r?   ro   s           rM   Ú"test_graphical_lasso_iris_singularr|   �   s  € õ Œi˜˜BÑÔ€Gõ ŒHàFÐFÐFØPÐPÐPØPÐPÐPØPÐPÐPð		
ñô €Eõ ŒXà2Ð2Ð2Ø=Ð=Ð=Ø3Ð3Ð3Ø,Ð,Ð,ð		
ñô €Fõ 	ÔÑÔÔ! '¨1¨1¨1 *Ô-€AÝ" 1Ñ%Ô%€GÝ ¨tÀ%ÈfÐUÑUÔU�I€CˆÝ�C˜ TÐ*Ñ*Ô*Ð*Ý�D˜& tÐ,Ñ,Ô,Ð,Ð,Ð,rO   c                 óº  — d}d}t           j                             | ¦  «        }t          |d|¬¦  «        }t	          j        |¦  «        }|                     t          j        |¦  «        ||¬¦  «        }t          j	        }	 t          ¦   «         t          _	        t          ddd¬¦  «                             |¦  «         |t          _	        d S # |t          _	        w xY w)	Né   é   g¸…ëQ¸î?r   r   r   r   )ÚverboseÚalphasr"   )r.   rS   rT   r   r   r,   r-   r/   ÚsysÚstdoutr   r	   r4   )r;   r<   r=   r   r>   r?   r@   Úorig_stdouts           rM   Útest_graphical_lasso_cvr…   ¹   s¿   € à
€CØ€IÝ”9×(Ò(Ð);Ñ<Ô<€LÝ! #¨TÀÐMÑMÔM€DÝ
Œ*�TÑ
Ô
€CØ×(Ò(­¬°#©¬¸À)Ð(ÑLÔL€Aå”*€Kð!Ý‘Z”Z�Œ
å ¨Q°DÐ9Ñ9Ô9×=Ò=¸aÑ@Ô@Ð@à �Œ
ˆ
ˆ
ø�[�Œ
Ð Ð Ð Ð s   Â=C ÃCÚalphas_container_type)r8   Útupler1   c                 ó&  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t           j                             d¦  «        }|                     g d¢|d¬¦  «        }t          d	d
g| ¦  «        }t          |dd¬¦  «                             |¦  «         dS )z’Check that we can pass an array-like to `alphas`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/22489
    ©gš™™™™™é?r   r\   r   ©r   gš™™™™™Ù?r   r   ©r\   r   g333333Ó?r   ©r   r   r   gffffffæ?r   ©r   r   r   r   éÈ   ©r7   r?   r   g{®Gáz”?ç¸…ëQ¸ž?r   r+   ©r�   r"   Ún_jobsN)r.   r1   rS   rT   r-   r   r	   r4   )r†   Útrue_covÚrngr@   r�   s        rM   Ú'test_graphical_lasso_cv_alphas_iterabler•   Ë   s°   € õ Œxà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Hõ Œ)×
Ò
 Ñ
"Ô
"€CØ×Ò \ \ \°xÀcÐÑJÔJ€AÝ  t Ð.CÑDÔD€FÝ˜F¨°QÐ7Ñ7Ô7×;Ò;¸AÑ>Ô>Ð>Ð>Ð>rO   zalphas,err_type,err_msgg{®Gáz”¿r�   zmust be > 0Ú
not_numberzmust be an instance of floatc                 ó`  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t           j                             d¦  «        }|                     g d¢|d¬¦  «        }t          j        ||¬	¦  «        5  t          | d
d¬¦  «                             |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z²Check that if an array-like containing a value
    outside of (0, inf] is passed to `alphas`, a ValueError is raised.
    Check if a string is passed, a TypeError is raised.
    r‰   rŠ   r‹   rŒ   r   r�   rŽ   r�   )Úmatchr   r+   r‘   N)	r.   r1   rS   rT   r-   ÚpytestÚraisesr	   r4   )r�   Úerr_typeÚerr_msgr“   r”   r@   s         rM   Ú,test_graphical_lasso_cv_alphas_invalid_arrayr�   à   s#  € õ Œxà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Hõ Œ)×
Ò
 Ñ
"Ô
"€CØ×Ò \ \ \°xÀcÐÑJÔJ€Aå	Œ�x wÐ	/Ñ	/Ô	/ð Cð CÝ ¨D¸Ð;Ñ;Ô;×?Ò?ÀÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs   Á0&B#Â#B'Â*B'c                 ó4  — d}d}d}t          j        g d¢g d¢g d¢g d¢g¦  «        }t           j                             | ¦  «        }|                     g d¢|d	¬
¦  «        }t          |||¬¦  «                             |¦  «        }t          ||||¬¦  «         d S )Né   r~   é   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   ©Úcvr�   Ún_refinements©r?   Ún_splitsr£   Ún_alphas)r.   r1   rS   rT   r-   r	   r4   Ú!_assert_graphical_lasso_cv_scores)r;   Úsplitsr¦   r£   r“   r”   r@   r?   s           rM   Útest_graphical_lasso_cv_scoresr©   ü   s×   € Ø€FØ€HØ€MÝŒxà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Hõ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ×Ò \ \ \°xÀcÐÑJÔJ€AÝ
˜f¨XÀ]Ð
SÑ
SÔ
S×
WÒ
WØ	ñô €Cõ &ØØØ#Øð	ñ ô ð ð ð rO   T)Úenable_metadata_routingc                 óÂ  — d}d}d}t          j        g d¢g d¢g d¢g d¢g¦  «        }t           j                             | ¦  «        }|                     g d¢|d¬	¦  «        }|j        d
         }|                     d
d|¦  «        }d|i}	t          |¬¦  «        }
|
                     d¬¦  «          t          |
||¬¦  «        j
        |fi |	¤Ž}t          ||||¬¦  «         dS )zVCheck that `GraphicalLassoCV` internally dispatches metadata to
    the splitter.
    r~   r    r‰   rŠ   r‹   rŒ   r�   i,  r�   r   Úgroups)r¥   T)r¬   r¡   r¤   N)r.   r1   rS   rT   r-   ÚshapeÚrandintr   Úset_split_requestr	   r4   r§   )r;   r¨   r¦   r£   r“   r”   r@   r=   r¬   Úparamsr¢   r?   s               rM   Ú+test_graphical_lasso_cv_scores_with_routingr±     s7  € ð
 €FØ€HØ€MÝŒxà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Hõ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ×Ò \ \ \°xÀcÐÑJÔJ€AØ”˜”
€IØ�[Š[˜˜A˜yÑ)Ô)€FØ˜Ð€FÝ	˜VÐ	$Ñ	$Ô	$€BØ×Ò ÐÑ%Ô%Ð%à
SÕ
˜b¨ÀÐ
OÑ
OÔ
OÔ
SØ	ðð Øðð €Cõ &ØØØ#Øð	ñ ô ð ð ð rO   c                 ó´  ‡ — ‰ j         }||z  dz   }dg}d„ t          |¦  «        D ¦   «         }||z   D ]#}||v sJ ‚t          ||         ¦  «        |k    sJ ‚Œ$t          j        ˆ fd„|D ¦   «         ¦  «        }	|	                     d¬¦  «        }
|	                     d¬¦  «        }t          ‰ j         d         |
¦  «         t          ‰ j         d         |¦  «         d S )	Nr+   r�   c                 ó   — g | ]}d |› d�‘Œ	S )ÚsplitÚ_test_score© )Ú.0Úis     rM   ú
<listcomp>z5_assert_graphical_lasso_cv_scores.<locals>.<listcomp>@  s$   € ÐBÐBÐB¨QÐ(˜!Ð(Ð(Ð(ÐBÐBÐBrO   c                 ó*   •— g | ]}‰j         |         ‘ŒS r¶   )Úcv_results_)r·   Úkeyr?   s     €rM   r¹   z5_assert_graphical_lasso_cv_scores.<locals>.<listcomp>E  s    ø€ ÐGÐGÐG°S˜CœO¨CÔ0ÐGÐGÐGrO   r   )ÚaxisÚmean_test_scoreÚstd_test_score)r»   ÚrangeÚlenr.   Úasarrayr7   Ústdr   )r?   r¥   r£   r¦   Ú
cv_resultsÚtotal_alphasÚkeysÚ
split_keysr¼   Ú	cv_scoresÚexpected_meanÚexpected_stds   `           rM   r§   r§   :  s   ø€ Ø”€Jð ! 8Ñ+¨aÑ/€LØˆ:€DØBÐBµ%¸±/´/ÐBÑBÔB€JØ�jÑ ð 4ð 4ˆØ�jÐ Ð Ð Ð Ý�:˜c”?Ñ#Ô# |Ò3Ð3Ð3Ð3Ð3å”
ÐGÐGÐGÐG¸JÐGÑGÔGÑHÔH€IØ—N’N¨�NÑ*Ô*€MØ—=’= a�=Ñ(Ô(€Lå�C”OÐ$5Ô6¸ÑFÔFÐFÝ�C”OÐ$4Ô5°|ÑDÔDÐDÐDÐDrO   ).Ú__doc__r‚   Úior   Únumpyr.   r™   Únumpy.testingr   Úscipyr   Úsklearnr   r   Úsklearn.covariancer   r	   r
   r   Úsklearn.datasetsr   Úsklearn.model_selectionr   Úsklearn.utilsr   Úsklearn.utils._testingr   r   r   rN   rX   ÚmarkÚparametrizeÚfilterwarningsra   rp   rt   r|   r…   r•   Ú
ValueErrorÚ	TypeErrorr�   r©   r±   r§   r¶   rO   rM   ú<module>rÛ      sà  ðØ &Ð &à 
€
€
€
Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø .Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð/2ð /2ð /2ðd	7ð 	7ð 	7ð „×Ò˜ $¨ Ñ0Ô0Ø„×ÒÐKÑLÔLðð ñ MÔLñ 1Ô0ðð0ð 0ð 0ð64ð 4ð 4ð „×Ò˜ D¨& >Ñ2Ô2ð&-ð &-ñ 3Ô2ð&-ðR!ð !ð !ð$ „×ÒÐ0Ð2LÐ2LÐ2LÑMÔMð?ð ?ñ NÔMð?ð( „×ÒØà
�ˆ˜
 MÐ2Ø
ˆTˆ�J Ð.Ø
˜Ð	˜yÐ*HÐIðñô ðCð Cñô ðCð(ð ð ð4 €¨Ð-Ñ-Ô-ð ð  ñ .Ô-ð ðFEð Eð Eð Eð ErO   