§
    ¨éUgnº  ã                   óH  — d dl Z d dlZd dlZd dl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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 d d
lmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, g d¢Z-d„ Z. G d„ d¦  «        Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z;d„ Z<ej=         >                    d¦  «        ej=         ?                    d g d!¢¦  «        d"„ ¦   «         ¦   «         Z@d#„ ZAd$„ ZBd%„ ZCd&„ ZDd'„ ZEd(„ ZFd)„ ZGd*„ ZHd+„ ZIej=         >                    d¦  «        ej=         ?                    d,d-¦  «        d.„ ¦   «         ¦   «         ZJ e*e¬/¦  «        d0„ ¦   «         ZKd1„ ZLd2„ ZMd3„ ZNd4„ ZOd5„ ZPd6„ ZQ e*e¬/¦  «        d7„ ¦   «         ZRd8„ ZSej=         ?                    d9g d:¢¦  «        d;„ ¦   «         ZTej=         ?                    d9g d:¢¦  «        d<„ ¦   «         ZUd=„ ZVd>„ ZWd?„ ZXd@„ ZYej=         ?                    dAe-¦  «        dB„ ¦   «         ZZdC„ Z[dD„ Z\dS )Eé    N)ÚStringIO)ÚMock)ÚlinalgÚstats)ÚKMeans)ÚEmpiricalCovariance©Úmake_spd_matrix)ÚConvergenceWarningÚNotFittedError)Úadjusted_rand_score)ÚGaussianMixture)Ú_compute_log_det_choleskyÚ_compute_precision_choleskyÚ#_estimate_gaussian_covariances_diagÚ#_estimate_gaussian_covariances_fullÚ(_estimate_gaussian_covariances_sphericalÚ#_estimate_gaussian_covariances_tiedÚ_estimate_gaussian_parameters)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Úfast_logdet©ÚfullÚtiedÚdiagÚ	sphericalc                 óº  — t           j                             d¦  «        }g }|dk    r�t          t	          |||d         ¦  «        ¦  «        D ]j\  }\  }	}
}|                     |                     |
|t          j        |¦  «        z  t          t          j	        |	| z  ¦  «        ¦  «        ¦  «        ¦  «         Œk|dk    rŒt          t	          |||d         ¦  «        ¦  «        D ]g\  }\  }	}
}|                     |                     |
t          j
        |¦  «        t          t          j	        |	| z  ¦  «        ¦  «        ¦  «        ¦  «         Œh|dk    rxt          t	          ||¦  «        ¦  «        D ]Z\  }\  }	}
|                     |                     |
|d         t          t          j	        |	| z  ¦  «        ¦  «        ¦  «        ¦  «         Œ[|dk    rzt          t	          |||d         ¦  «        ¦  «        D ]U\  }\  }	}
}|                     |                     |
|t          t          j	        |	| z  ¦  «        ¦  «        ¦  «        ¦  «         ŒVt          j        |¦  «        }|S )Nr   r    r   r   r   )ÚnpÚrandomÚRandomStateÚ	enumerateÚzipÚappendÚmultivariate_normalÚeyeÚintÚroundr   Úvstack)Ú	n_samplesÚ
n_featuresÚweightsÚmeansÚ
precisionsÚcovariance_typeÚrngÚXÚ_ÚwÚmÚcs               új/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/mixture/tests/test_gaussian_mixture.pyÚgenerate_datar:   -   sV  € Ý
Œ)×
Ò
 Ñ
"Ô
"€Cà
€AØ˜+Ò%Ð%Ý%¥c¨'°5¸*À[Ô:QÑ&RÔ&RÑSÔSð 	ð 	‰LˆA‰y��1�aØ�HŠHØ×'Ò'Ø�q�2œ6 *Ñ-Ô-Ñ-­sµ2´8¸AÀ	¹MÑ3JÔ3JÑ/KÔ/Kñô ñô ð ð ð
 ˜&Ò Ð Ý%¥c¨'°5¸*ÀVÔ:LÑ&MÔ&MÑNÔNð 	ð 	‰LˆA‰y��1�aØ�HŠHØ×'Ò'¨­2¬7°1©:¬:µs½2¼8ÀAÈ	ÁMÑ;RÔ;RÑ7SÔ7SÑTÔTñô ð ð ð ˜&Ò Ð Ý"¥3 w°Ñ#6Ô#6Ñ7Ô7ð 	ð 	‰IˆA‰v��1Ø�HŠHØ×'Ò'Ø�z &Ô)­3­r¬x¸¸I¹Ñ/FÔ/FÑ+GÔ+Gñô ñô ð ð ð
 ˜&Ò Ð Ý%¥c¨'°5¸*ÀVÔ:LÑ&MÔ&MÑNÔNð 	Rð 	R‰LˆA‰y��1�aØ�HŠH�S×,Ò,¨Q°µ3µr´xÀÀIÁÑ7NÔ7NÑ3OÔ3OÑPÔPÑQÔQÐQÐQå
Œ	�!‰Œ€AØ€Hó    c                   ó   — e Zd Zdd„ZdS )Ú
RandomDataéÈ   é   é2   c           	      óœ  ‡ ‡‡‡— ‰‰ _         |‰ _        ‰‰ _        ‰                     |¦  «        ‰ _        ‰ j        ‰ j                             ¦   «         z  ‰ _        ‰                     |‰¦  «        |z  ‰ _        d‰                     |¦  «        z   d‰                     |‰¦  «        z   dz  t          ‰‰¬¦  «        t          j	        ˆˆfd„t          |¦  «        D ¦   «         ¦  «        dœ‰ _        d‰ j        d         z  d‰ j        d         z  t          j        ‰ j        d	         ¦  «        t          j	        d
„ ‰ j        d         D ¦   «         ¦  «        dœ‰ _        t          t!          t"          ˆˆˆ fd„t"          D ¦   «         ¦  «        ¦  «        ‰ _        t          j        ˆfd„t)          ‰ j        ¦  «        D ¦   «         ¦  «        ‰ _        d S )Nç      à?r?   ©Úrandom_statec                 ó8   •— g | ]}t          ‰‰¬ ¦  «        dz  ‘ŒS )rC   rB   r	   )Ú.0r5   r.   r3   s     €€r9   ú
<listcomp>z'RandomData.__init__.<locals>.<listcomp>Z   s;   ø€ ð ð ð àõ $ J¸SÐAÑAÔAÀCÑGðð ð r;   ©r    r   r   r   ç      ð?r    r   r   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS © ©r   Úinv)rF   Ú
covariances     r9   rG   z'RandomData.__init__.<locals>.<listcomp>e   s"   € ÐSÐSÐS¨J•”˜JÑ'Ô'ÐSÐSÐSr;   r   c           
      óV   •— g | ]%}t          ‰‰‰j        ‰j        ‰j        |¦  «        ‘Œ&S rK   )r:   r/   r0   Úcovariances)rF   Ú
covar_typer.   r-   Úselfs     €€€r9   rG   z'RandomData.__init__.<locals>.<listcomp>l   sN   ø€ ð 
ð 
ð 
ð #õ "Ø!Ø"ØœØœ
ØÔ(Ø"ñô ð
ð 
ð 
r;   c           
      ó’   •— g | ]C\  }}t          j        t          t          j        |‰z  ¦  «        ¦  «        |t          ¬ ¦  «        ‘ŒDS ))Údtype)r"   r   r*   r+   )rF   Úkr6   r-   s      €r9   rG   z'RandomData.__init__.<locals>.<listcomp>z   sT   ø€ ð ð ð á�A�qõ ”��BœH Q¨¡]Ñ3Ô3Ñ4Ô4°a½sÐCÑCÔCðð ð r;   )r-   Ún_componentsr.   Úrandr/   Úsumr0   r
   r"   ÚarrayÚrangerP   r   rM   r1   Údictr&   ÚCOVARIANCE_TYPEr4   Úhstackr%   ÚY)rR   r3   r-   rV   r.   Úscales   ``` ` r9   Ú__init__zRandomData.__init__M   s   øøøø€ Ø"ˆŒØ(ˆÔØ$ˆŒà—x’x Ñ-Ô-ˆŒØ”| d¤l×&6Ò&6Ñ&8Ô&8Ñ8ˆŒØ—X’X˜l¨JÑ7Ô7¸%Ñ?ˆŒ
à˜sŸxšx¨Ñ5Ô5Ñ5Ø˜3Ÿ8š8 L°*Ñ=Ô=Ñ=À!ÑCÝ# J¸SÐAÑAÔAÝ”Hðð ð ð ð å" <Ñ0Ô0ðñ ô ñô ð	

ð 

ˆÔð ˜tÔ/°Ô<Ñ<Ø˜$Ô*¨6Ô2Ñ2Ý”J˜tÔ/°Ô7Ñ8Ô8Ý”HØSÐS¸$Ô:JÈ6Ô:RÐSÑSÔSñô ð	
ð 
ˆŒõ ÝÝð
ð 
ð 
ð 
ð 
ð 
õ '6ð
ñ 
ô 
ñô ñ
ô 
ˆŒõ  ”ðð ð ð å% d¤lÑ3Ô3ðñ ô ñ
ô 
ˆŒˆˆr;   N)r>   r?   r?   r@   )Ú__name__Ú
__module__Ú__qualname__r`   rK   r;   r9   r=   r=   L   s(   € € € € € ð1
ð 1
ð 1
ð 1
ð 1
ð 1
r;   r=   c            	      ó’  — t           j                             d¦  «        } |                      dd¦  «        }d\  }}}}}d\  }}t	          |||||||¬¦  «                             |¦  «        }	|	j        |k    sJ ‚|	j        |k    sJ ‚|	j        |k    sJ ‚|	j	        |k    sJ ‚|	j
        |k    sJ ‚|	j        |k    sJ ‚|	j        |k    sJ ‚d S )Nr   é
   r?   )r?   g-Cëâ6?é   é   çš™™™™™¹?)r   r#   )rV   ÚtolÚn_initÚmax_iterÚ	reg_covarr2   Úinit_params)r"   r#   r$   rW   r   ÚfitrV   r2   ri   rl   rk   rj   rm   )
r3   r4   rV   ri   rj   rk   rl   r2   rm   Úgmms
             r9   Ú test_gaussian_mixture_attributesrp   �   s	  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��Q‰Œ€Að 6JÑ2€L�#�v˜x¨Ø#3Ñ €O�[Ý
Ø!ØØØØØ'Øðñ ô ÷ 
‚cˆ!�f„fð ð Ô˜|Ò+Ð+Ð+Ð+ØÔ /Ò1Ð1Ð1Ð1ØŒ7�cŠ>ˆ>ˆ>ˆ>ØŒ=˜IÒ%Ð%Ð%Ð%ØŒ<˜8Ò#Ð#Ð#Ð#ØŒ:˜ÒÐÐÐØŒ?˜kÒ)Ð)Ð)Ð)Ð)Ð)r;   c                  óî  — t           j                             d¦  «        } t          | ¦  «        }|j        }|j        d         }t          |¬¦  «        }|                      |d¦  «        }||_        t          j
        d|› dt          |j        ¦  «        › �¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        dz   }||_        t          j
        dt          j        |¦  «        d	›d
t          j        |¦  «        d	›�¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }||                     ¦   «         dz   z  }||_        t          j
        dt          j        |¦  «        d	›�¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |j        }	t          |	|¬¦  «        }|                     |¦  «         t+          |	|j        ¦  «         d S )Nr   r   ©rV   é   z2The parameter 'weights' should have the shape of (z,), but got ©ÚmatchzIThe parameter 'weights' should be in the range [0, 1], but got max value z.5fz, min value zEThe parameter 'weights' should be normalized, but got sum(weights) = )Úweights_initrV   )r"   r#   r$   r=   rV   r4   r   rW   rv   ÚreÚescapeÚstrÚshapeÚpytestÚraisesÚ
ValueErrorrn   ÚminÚmaxrX   r/   r   )
r3   Ú	rand_datarV   r4   ÚgÚweights_bad_shapeÚmsgÚweights_bad_rangeÚweights_bad_normr/   s
             r9   Útest_check_weightsr†   œ   s0  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IàÔ)€LØŒ�FÔ€Aå \Ð2Ñ2Ô2€Að Ÿš ¨qÑ1Ô1ÐØ&€A„NÝ
Œ)ð	EØð	Eð 	EÝ&)Ð*;Ô*AÑ&BÔ&Bð	Eð 	Eñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø	�Šˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ÿš Ñ.Ô.°Ñ2ÐØ&€A„NÝ
Œ)ð	5Ý”fÐ.Ñ/Ô/Ð7ð	5ð 	5å”VÐ-Ñ.Ô.Ð4ð	5ð 	5ñô €Cõ
 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø	�Šˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð —x’x Ñ-Ô-ÐØ'Ð+;×+?Ò+?Ñ+AÔ+AÀAÑ+EÑFÐØ%€A„NÝ
Œ)ð	AÝ"$¤&Ð)9Ñ":Ô":Ð@ð	Að 	Añô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø	�Šˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ô€GÝ W¸<ÐHÑHÔH€AØ‡E‚Eˆ!�H„H€HÝ�w ¤Ñ/Ô/Ð/Ð/Ð/s6   Â7CÃCÃ CÅF Æ FÆFÈH(È(H,È/H,c                  óü  — t           j                             d¦  «        } t          | ¦  «        }|j        |j        }}|j        d         }t          |¬¦  «        }|                      |dz   |¦  «        }||_	        d}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |j        }||_	        |                     |¦  «         t          ||j	        ¦  «         d S )Nr   r   rr   rs   z/The parameter 'means' should have the shape of rt   )r"   r#   r$   r=   rV   r.   r4   r   rW   Ú
means_initr{   r|   r}   rn   r0   r   )	r3   r€   rV   r.   r4   r�   Úmeans_bad_shaperƒ   r0   s	            r9   Útest_check_meansrŠ   Ì   s#  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€Ià(Ô5°yÔ7K�*€LØŒ�FÔ€Aå \Ð2Ñ2Ô2€Að —h’h˜|¨aÑ/°Ñ<Ô<€OØ"€A„LØ
;€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø	�Šˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ŒO€EØ€A„LØ‡E‚Eˆ!�H„H€HÝ�u˜aœlÑ+Ô+Ð+Ð+Ð+s   ÂB9Â9B=Ã B=c                  ó   — t           j                             d¦  «        } t          | ¦  «        }|j        |j        }}t          j        |dz   ||f¦  «        t          j        |dz   |dz   f¦  «        t          j        |dz   |f¦  «        t          j        |dz   ¦  «        dœ}t          j        |||f¦  «        }t          j        |¦  «        |d<   d|d<   ||d         t          j        ||fd¦  «        t          j        |d¦  «        dœ}dddddœ}t          D �]4}t          | ¦  «        j
        |         }	t          ||| ¬¦  «        }
||         |
_        d	|› d
�}t          j        t          |¬¦  «        5  |
                     |	¦  «         d d d ¦  «         n# 1 swxY w Y   ||         |
_        d|› d||         › �}t          j        t          |¬¦  «        5  |
                     |	¦  «         d d d ¦  «         n# 1 swxY w Y   |j        |         |
_        |
                     |	¦  «         t%          |j        |         |
j        ¦  «         �Œ6d S )Nr   rs   r   g      ð¿)r   r   r   zsymmetric, positive-definiteÚpositive©rV   r2   rD   zThe parameter 'z$ precision' should have the shape ofrt   ú'z precision' should be )r"   r#   r$   r=   rV   r.   Úonesr)   r   r\   r4   r   Úprecisions_initr{   r|   r}   rn   r1   r   )r3   r€   rV   r.   Úprecisions_bad_shapeÚprecisions_not_posÚprecisions_not_positiveÚnot_positive_errorsrQ   r4   r�   rƒ   s               r9   Útest_check_precisionsr•   ã   sõ  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€Ià(Ô5°yÔ7K�*€Lõ ”˜¨Ñ)¨:°zÐBÑCÔCÝ”˜ a™¨°a©Ð8Ñ9Ô9Ý”˜¨Ñ)¨:Ð6Ñ7Ô7Ý”W˜l¨QÑ.Ñ0Ô0ð	ð Ðõ œ ,°
¸JÐ!GÑHÔHÐÝœF :Ñ.Ô.Ð�qÑØ"&Ð�wÑð #Ø" 1Ô%Ý”˜ zÐ2°DÑ9Ô9Ý”W˜\¨4Ñ0Ô0ð	ð Ðð /Ø.ØØð	ð Ðõ &ð Pñ Pˆ
Ý�s‰OŒOÔ˜jÔ)ˆÝØ%°zÐPSð
ñ 
ô 
ˆð
 1°Ô<ˆÔØP 
ÐPÐPÐPˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�EŠE�!‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 4°JÔ?ˆÔØU�*ÐUÐUÐ4GÈ
Ô4SÐUÐUˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�EŠE�!‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð &Ô0°Ô<ˆÔØ	�Šˆa‰ŒˆÝ˜9Ô/°
Ô;¸QÔ=NÑOÔOÐOÑOð+Pð Ps$   Å5FÆF	ÆF	ÇG:Ç:G>	ÈG>	c                  óz  — t           j                             d¦  «        } d\  }}|                      ||¦  «        }|                      |d¦  «        }t          j        |¦  «        |z  }t          j        |g¦  «        }t          j        d|f¦  «        }t          ||||d¦  «        }t          d¬¦  «        }	|	 	                    |¦  «         t          |	                     |d         d¬¦  «        d¦  «         t          |	                     |d         d¬¦  «        d¦  «         t          |d	¦  «        }
t          j        d
„ |
D ¦   «         ¦  «        }t          j        d„ |D ¦   «         ¦  «        }t          ||¦  «         t          j        |df¦  «        }t          j        |g¦  «        }|                     d¬¦  «                             d¦  «        }t          ||||d¦  «        }t          d¬¦  «        }	|	 	                    |¦  «         t          |	                     |d         d¬¦  «        d¦  «         t          |	                     |d         d¬¦  «        d¦  «         t          |d	¦  «        }
t          j        d„ |
D ¦   «         ¦  «        }t          j        d„ |D ¦   «         ¦  «        }t          ||¦  «         d S )Nr   ©éô  r?   rs   T)Úassume_centeredÚ	frobenius©ÚnormÚspectralr   c                 óB   — g | ]}t          j        ||j        ¦  «        ‘ŒS rK   ©r"   ÚdotÚT©rF   Úprecs     r9   rG   z)test_suffstat_sk_full.<locals>.<listcomp>1  ó&   € ÐLÐLÐL°D�2œ6 $¨¬Ñ/Ô/ÐLÐLÐLr;   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rK   rL   ©rF   Úcovs     r9   rG   z)test_suffstat_sk_full.<locals>.<listcomp>2  ó    € ÐAÐAÐA¨c�&œ* S™/œ/ÐAÐAÐAr;   ©Úaxis)rs   éÿÿÿÿFc                 óB   — g | ]}t          j        ||j        ¦  «        ‘ŒS rK   rŸ   r¢   s     r9   rG   z)test_suffstat_sk_full.<locals>.<listcomp>A  r¤   r;   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rK   rL   r¦   s     r9   rG   z)test_suffstat_sk_full.<locals>.<listcomp>B  r¨   r;   )r"   r#   r$   rW   ÚsqrtrY   Úzerosr   r   rn   r   Ú
error_normr   r   r�   ÚmeanÚreshape)r3   r-   r.   r4   ÚrespÚX_respÚnkÚxkÚcovars_predÚecovÚprecs_chol_predÚ
precs_predÚ	precs_ests                r9   Útest_suffstat_sk_fullr¼     s�  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ"Ñ€Iˆzð 	�Š�˜JÑ'Ô'€AØ�8Š8�I˜qÑ!Ô!€DÝŒW�T‰]Œ]˜QÑ€FÝ	Œ�9�+Ñ	Ô	€BÝ	Œ�1�j�/Ñ	"Ô	"€BÝ5°d¸A¸rÀ2ÀqÑIÔI€KÝ¨tÐ4Ñ4Ô4€DØ‡H‚HˆVÑÔÐÝ˜Ÿš¨°A¬¸[˜ÑIÔIÈ1ÑMÔMÐMÝ˜Ÿš¨°A¬¸Z˜ÑHÔHÈ!ÑLÔLÐLõ 2°+¸vÑFÔF€OÝ”ÐLÐL¸OÐLÑLÔLÑMÔM€JÝ”ÐAÐA°[ÐAÑAÔAÑBÔB€IÝ˜i¨Ñ4Ô4Ð4õ Œ7�I˜q�>Ñ"Ô"€DÝ	Œ�9�+Ñ	Ô	€BØ	
�Š�Qˆ‰Œ×	Ò	 Ñ	(Ô	(€BÝ5°d¸A¸rÀ2ÀqÑIÔI€KÝ¨uÐ5Ñ5Ô5€DØ‡H‚HˆQ�K„K€KÝ˜Ÿš¨°A¬¸[˜ÑIÔIÈ1ÑMÔMÐMÝ˜Ÿš¨°A¬¸Z˜ÑHÔHÈ!ÑLÔLÐLõ 2°+¸vÑFÔF€OÝ”ÐLÐL¸OÐLÑLÔLÑMÔM€JÝ”ÐAÐA°[ÐAÑAÔAÑBÔB€IÝ˜i¨Ñ4Ô4Ð4Ð4Ð4r;   c                  óª  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }||                     d¬¦  «        d d …t           j        f         z  }|                      ||¦  «        }|                     d¬¦  «        }t          j        |j        |¦  «        |d d …t           j        f         z  }t          ||||d¦  «        }t          j        |d d …t           j        t           j        f         |z  d¦  «        |z  }t          ||||d¦  «        }	t          ¦   «         }
||
_        t          |
                     |	d¬¦  «        d¦  «         t          |
                     |	d¬¦  «        d¦  «         t          |	d¦  «        }t          j        ||j        ¦  «        }t          j        |	¦  «        }t#          ||¦  «         d S )	Nr   ©r˜   r?   r?   rs   r©   rš   r›   r�   r   )r"   r#   r$   rW   rX   Únewaxisr    r¡   r   r   r   Úcovariance_r   r°   r   r   rM   r   )r3   r-   r.   rV   r³   r4   rµ   r¶   Úcovars_pred_fullÚcovars_pred_tiedr¸   r¹   rº   r»   s                 r9   Útest_suffstat_sk_tiedrÃ   F  s¬  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*3Ñ'€Iˆz˜<à�8Š8�I˜|Ñ,Ô,€DØ�$—(’( �(Ñ"Ô" 1 1 1¥b¤j =Ô1Ñ1€DØ�Š�˜JÑ'Ô'€AØ	�Š�qˆÑ	Ô	€BÝ	Œ�”˜Ñ	Ô	˜R   ¥2¤: Ô.Ñ	.€Bå:¸4ÀÀBÈÈAÑNÔNÐå
Œˆr�!�!�!•R”Z¥¤Ð+Ô,Ð/?Ñ?ÀÑCÔCÀiÑOð õ ;¸4ÀÀBÈÈAÑNÔNÐåÑ Ô €DØ'€DÔÝ˜ŸšÐ(8¸{˜ÑKÔKÈQÑOÔOÐOÝ˜ŸšÐ(8¸z˜ÑJÔJÈAÑNÔNÐNõ 2Ð2BÀFÑKÔK€OÝ”˜¨Ô):Ñ;Ô;€JÝ”
Ð+Ñ,Ô,€IÝ˜i¨Ñ4Ô4Ð4Ð4Ð4r;   c                  ó‚  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }||                     d¬¦  «        d d …t           j        f         z  }|                      ||¦  «        }|                     d¬¦  «        }t          j        |j        |¦  «        |d d …t           j        f         z  }t          ||||d¦  «        }t          ||||d¦  «        }	t          ¦   «         }
t          ||	¦  «        D ]Ž\  }}t          j        t          j        |¦  «        ¦  «        |
_        t          j        |¦  «        }t          |
                     |d¬¦  «        d¦  «         t          |
                     |d¬¦  «        d¦  «         Œ�t!          |	d¦  «        }t          |	d	|d
z  z  ¦  «         d S )Nr   r¾   rs   r©   rš   r›   r�   r   rI   r?   )r"   r#   r$   rW   rX   r¿   r    r¡   r   r   r   r&   r   rÀ   r   r°   r   )r3   r-   r.   rV   r³   r4   rµ   r¶   rÁ   Úcovars_pred_diagr¸   Úcov_fullÚcov_diagr¹   s                 r9   Útest_suffstat_sk_diagrÈ   d  s¤  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*3Ñ'€Iˆz˜<à�8Š8�I˜|Ñ,Ô,€DØ�$—(’( �(Ñ"Ô" 1 1 1¥b¤j =Ô1Ñ1€DØ�Š�˜JÑ'Ô'€AØ	�Š�qˆÑ	Ô	€BÝ	Œ�”˜Ñ	Ô	˜R   ¥2¤: Ô.Ñ	.€BÝ:¸4ÀÀBÈÈAÑNÔNÐÝ:¸4ÀÀBÈÈAÑNÔNÐåÑ Ô €DÝ!Ð"2Ð4DÑEÔEð Kð KÑˆ�(Ýœ7¥2¤7¨8Ñ#4Ô#4Ñ5Ô5ˆÔÝ”7˜8Ñ$Ô$ˆÝ˜DŸOšO¨H¸;˜OÑGÔGÈÑKÔKÐKÝ˜DŸOšO¨H¸:˜OÑFÔFÈÑJÔJÐJÐJõ 2Ð2BÀFÑKÔK€OÝÐ(¨#°ÀÑ0BÑ*BÑCÔCÐCÐCÐCr;   c                  ó@  — t           j                             d¦  «        } d\  }}|                      ||¦  «        }||                     ¦   «         z
  }t          j        |df¦  «        }t          j        |g¦  «        }|                     ¦   «         }t          ||||d¦  «        }t          j        | 	                    ¦   «         j
        | 	                    ¦   «         ¦  «        ||z  z  }t          ||¦  «         t          |d¦  «        }	t          |d|	dz  z  ¦  «         d S )Nr   r—   rs   r    rI   r?   )r"   r#   r$   rW   r±   r�   rY   r   r    Úflattenr¡   r   r   )
r3   r-   r.   r4   r³   rµ   r¶   Úcovars_pred_sphericalÚcovars_pred_spherical2r¹   s
             r9   Ú#test_gaussian_suffstat_sk_sphericalrÍ   }  s  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ"Ñ€Iˆzà�Š�˜JÑ'Ô'€AØ	ˆA�FŠF‰HŒH‰€AÝŒ7�I˜q�>Ñ"Ô"€DÝ	Œ�9�+Ñ	Ô	€BØ	
�Š‰Œ€BÝDÀTÈ1ÈbÐRTÐVWÑXÔXÐÝœV A§I¢I¡K¤K¤M°1·9²9±;´;Ñ?Ô?Ø�YÑñÐõ Ð-Ð/EÑFÔFÐFõ 2Ð2GÈÑUÔU€OÝÐ-¨s°_ÀaÑ5GÑ/GÑHÔHÐHÐHÐHr;   c                  óú  — d} t          t          j                             d¦  «        ¦  «        }t          D ]Ä}|j        |         }|dk    rt          j        d„ |D ¦   «         ¦  «        }nK|dk    rt          j        |¦  «        }n0|dk    rt          j        d„ |D ¦   «         ¦  «        }n|dk    r|| z  }t          t          ||¦  «        || ¬	¦  «        }t          |d
t          j        |¦  «        z  ¦  «         ŒÅd S )Nr?   r   r   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rK   )r   Údetr¦   s     r9   rG   z1test_compute_log_det_cholesky.<locals>.<listcomp>›  s    € Ð%LÐ%LÐ%L¸#¥f¤j°¡o¤oÐ%LÐ%LÐ%Lr;   r   r   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rK   )r"   Úprodr¦   s     r9   rG   z1test_compute_log_det_cholesky.<locals>.<listcomp>Ÿ  s    € Ð%IÐ%IÐ%I°s¥b¤g¨c¡l¤lÐ%IÐ%IÐ%Ir;   r    )r.   g      à¿)r=   r"   r#   r$   r\   rP   rY   r   rÐ   r   r   r   Úlog)r.   r€   rQ   rN   Úpredected_detÚexpected_dets         r9   Útest_compute_log_det_choleskyrÖ   “  s"  € Ø€JÝ�2œ9×0Ò0°Ñ3Ô3Ñ4Ô4€Iå%ð Nð Nˆ
ØÔ*¨:Ô6ˆ
à˜ÒÐÝœHÐ%LÐ%LÀÐ%LÑ%LÔ%LÑMÔMˆMˆMØ˜6Ò!Ð!Ý"œJ zÑ2Ô2ˆMˆMØ˜6Ò!Ð!ÝœHÐ%IÐ%I¸jÐ%IÑ%IÔ%IÑJÔJˆMˆMØ˜;Ò&Ð&Ø&¨
Ñ2ˆMõ 1Ý'¨
°JÑ?Ô?ØØ!ð
ñ 
ô 
ˆõ
 	" ,°µr´v¸mÑ7LÔ7LÑ0LÑMÔMÐMÐMð%Nð Nr;   c                 óR  — t          j        t          | ¦  «        t          |¦  «        f¦  «        }t          j        |¦  «        }t	          t          ||¦  «        ¦  «        D ]D\  }\  }}t          j                             | ||¦  «         	                    d¬¦  «        |d d …|f<   ŒE|S )Nrs   r©   )
r"   ÚemptyÚlenr®   r%   r&   r   rœ   ÚlogpdfrX   )r4   r0   Úcovarsr³   ÚstdsÚir±   Ústds           r9   Ú_naive_lmvnpdf_diagrß   ¬  s—   € ÝŒ8•S˜‘V”V�S ™ZœZÐ(Ñ)Ô)€DÝŒ7�6‰?Œ?€DÝ#¥C¨¨tÑ$4Ô$4Ñ5Ô5ð Að A‰ˆ‰;ˆD�#Ý”Z×&Ò& q¨$°Ñ4Ô4×8Ò8¸aÐ8Ñ@Ô@ˆˆQˆQˆQ�ˆT‰
ˆ
Ø€Kr;   c                  ó  ‡— ddl m}  t          j                             d¦  «        }t          |¦  «        }d}|j        Š|j        }|j        }| 	                    |‰¦  «        }| 	                    |‰¦  «        }t          |||¦  «        }t          j        d„ |D ¦   «         ¦  «        }	 | |||	d¦  «        }
t          |
|¦  «         dt          j        |¦  «        z  } | |||d¦  «        }
t          |
|¦  «         t          j        d„ |D ¦   «         ¦  «                             d¬	¦  «        }t          j        t          j        d|z  ¦  «        ¦  «        }t          |||g|z  ¦  «        } | |||d
¦  «        }
t          |
|¦  «         |                     d¬	¦  «        }dt          j        |                     d¬	¦  «        ¦  «        z  }t          ||ˆfd„|D ¦   «         ¦  «        } | |||d¦  «        }
t          |
|¦  «         d S )Nr   )Ú_estimate_log_gaussian_probr˜   c                 ó`   — g | ]+}t          j        d t          j        |¦  «        z  ¦  «        ‘Œ,S )rI   )r"   r   r®   ©rF   Úxs     r9   rG   z;test_gaussian_mixture_log_probabilities.<locals>.<listcomp>Ä  s/   € ÐJÐJÐJ¸�2œ7 3­¬°©¬Ñ#3Ñ4Ô4ÐJÐJÐJr;   r   rI   r   c                 ó   — g | ]}|‘ŒS rK   rK   rã   s     r9   rG   z;test_gaussian_mixture_log_probabilities.<locals>.<listcomp>Ï  s   € Ð3Ð3Ð3 !˜AÐ3Ð3Ð3r;   r©   r   rs   c                 ó   •— g | ]}|g‰z  ‘Œ	S rK   rK   )rF   rU   r.   s     €r9   rG   z;test_gaussian_mixture_log_probabilities.<locals>.<listcomp>Û  s    ø€ Ð>Ð>Ð>¨�A�3˜Ñ#Ð>Ð>Ð>r;   r    )Ú!sklearn.mixture._gaussian_mixturerá   r"   r#   r$   r=   r.   rV   r0   rW   rß   rY   r   r®   r±   r   )rá   r3   r€   r-   rV   r0   Úcovars_diagr4   Úlog_prob_naiveÚ
precs_fullÚlog_probÚprecs_chol_diagÚcovars_tiedÚ
precs_tiedÚcovars_sphericalÚprecs_sphericalr.   s                   @r9   Ú'test_gaussian_mixture_log_probabilitiesrñ   ´  s1  ø€ ØMÐMÐMÐMÐMÐMõ Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØ€IØÔ%€JØÔ)€LàŒO€EØ—(’(˜<¨Ñ4Ô4€KØ�Š�˜JÑ'Ô'€AÝ(¨¨E°;Ñ?Ô?€Nõ ”ÐJÐJ¸kÐJÑJÔJÑKÔK€Jà*Ð*¨1¨e°ZÀÑHÔH€HÝ˜h¨Ñ7Ô7Ð7ð �BœG KÑ0Ô0Ñ0€OØ*Ð*¨1¨e°_ÀfÑMÔM€HÝ˜h¨Ñ7Ô7Ð7õ ”(Ð3Ð3 {Ð3Ñ3Ô3Ñ4Ô4×9Ò9¸qÐ9ÑAÔA€KÝ”�œ  {Ñ!2Ñ3Ô3Ñ4Ô4€Jå(¨¨E°K°=À<Ñ3OÑPÔP€NØ*Ð*¨1¨e°ZÀÑHÔH€Hå˜h¨Ñ7Ô7Ð7ð #×'Ò'¨QÐ'Ñ/Ô/ÐØ�BœG K×$4Ò$4¸!Ð$4Ñ$<Ô$<Ñ=Ô=Ñ=€OÝ(Ø	ˆ5Ð>Ð>Ð>Ð>Ð-=Ð>Ñ>Ô>ñô €Nð +Ð*¨1¨e°_ÀkÑRÔR€HÝ˜h¨Ñ7Ô7Ð7Ð7Ð7r;   c            	      ón  — t           j                             d¦  «        } t          | d¬¦  «        }|j        }|j        }|j        }|                      ||¦  «        }t          D ]Ñ}|j	        }|j
        }|j        |         }	t          || |||	|¬¦  «        }
|
                     |¦  «         |
                     |¦  «        }t          |                     d¬¦  «        t          j        |¦  «        ¦  «         t%          |
j        |¦  «         t%          |
j        |¦  «         t%          |
j        |	¦  «         ŒÒd S )Nr   é   ©r_   ©rV   rD   rv   rˆ   r�   r2   rs   r©   )r"   r#   r$   r=   r-   r.   rV   rW   r\   r/   r0   r1   r   rn   Úpredict_probar   rX   r�   r   rv   rˆ   r�   )r3   r€   r-   r.   rV   r4   rQ   r/   r0   r1   r�   r³   s               r9   Ú,test_gaussian_mixture_estimate_log_prob_respr÷   ä  s3  € å
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ#€IØÔ%€JØÔ)€Là�Š�˜JÑ'Ô'€AÝ%ð :ð :ˆ
ØÔ#ˆØ”ˆØÔ)¨*Ô5ˆ
ÝØ%ØØ ØØ&Ø&ð
ñ 
ô 
ˆð 	
�Šˆa‰ŒˆØ�Š˜qÑ!Ô!ˆÝ! $§(¢(° (Ñ"2Ô"2µB´G¸IÑ4FÔ4FÑGÔGÐGÝ˜1œ>¨7Ñ3Ô3Ð3Ý˜1œ<¨Ñ/Ô/Ð/Ý˜1Ô,¨jÑ9Ô9Ð9Ð9ð#:ð :r;   c            	      ó†  — t           j                             d¦  «        } t          | ¦  «        }t          D �]	}|j        |         }|j        }t          |j        | |j	        |j
        |j        |         |¬¦  «        }d}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         |                     |¦  «        }|                     |¦  «                             d¬¦  «        }t'          ||¦  «         t)          ||¦  «        dk    sJ ‚�Œd S )Nr   rõ   úsThis GaussianMixture instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.rt   rs   r©   çffffffî?)r"   r#   r$   r=   r\   r4   r^   r   rV   r/   r0   r1   r{   r|   r   Úpredictrn   rö   Úargmaxr   r   )	r3   r€   rQ   r4   r^   r�   rƒ   ÚY_predÚY_pred_probas	            r9   Ú+test_gaussian_mixture_predict_predict_probarÿ     sz  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IÝ%ð 5ñ 5ˆ
ØŒK˜
Ô#ˆØŒKˆÝØ"Ô/ØØ"Ô*Ø ”Ø%Ô0°Ô<Ø&ð
ñ 
ô 
ˆðFð 	õ Œ]�>°Ð5Ñ5Ô5ð 	ð 	Ø�IŠI�a‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	
�Šˆa‰ŒˆØ—’˜1‘”ˆØ—’ qÑ)Ô)×0Ò0°aÐ0Ñ8Ô8ˆÝ˜6 <Ñ0Ô0Ð0Ý" 1 fÑ-Ô-°Ò4Ð4Ð4Ð4Ñ4ð15ð 5s   ÂB;Â;B?	ÃB?	zignore:.*did not converge.*zseed, max_iter, tol))r   r?   çH¯¼šò×z>)rs   r?   rh   )rf   é,  r   )é   r  rh   c                 óî  — t           j                             | ¦  «        }t          |¦  «        }t          D ]¾}|j        |         }|j        }t          |j        ||j	        |j
        |j        |         |||¬¦  «        }t          j        |¦  «        }	|	                     |¦  «                             |¦  «        }
|                     |¦  «        }t#          |
|¦  «         t%          ||¦  «        dk    sJ ‚Œ¿d S )N)rV   rD   rv   rˆ   r�   r2   rk   ri   rú   )r"   r#   r$   r=   r\   r4   r^   r   rV   r/   r0   r1   ÚcopyÚdeepcopyrn   rû   Úfit_predictr   r   )Úseedrk   ri   r3   r€   rQ   r4   r^   r�   ÚfÚY_pred1ÚY_pred2s               r9   Ú!test_gaussian_mixture_fit_predictr    sù   € õ Œ)×
Ò
 Ñ
%Ô
%€CÝ˜3‘”€IÝ%ð 6ð 6ˆ
ØŒK˜
Ô#ˆØŒKˆÝØ"Ô/ØØ"Ô*Ø ”Ø%Ô0°Ô<Ø&ØØð	
ñ 	
ô 	
ˆõ ŒM˜!ÑÔˆØ—%’%˜‘(”(×"Ò" 1Ñ%Ô%ˆØ—-’- Ñ"Ô"ˆÝ˜7 GÑ,Ô,Ð,Ý" 1 gÑ.Ô.°Ò5Ð5Ð5Ð5Ð5ð'6ð 6r;   c                  ó  — t           j                             d¦  «                             dd¦  «        } t	          ddd¬¦  «        }|                     | ¦  «        }|                     | ¦  «        }t          ||¦  «         d S )Nr   éè  ró   )rV   rj   rD   )r"   r#   r$   Úrandnr   r  rû   r   )r4   ÚgmÚy_pred1Úy_pred2s       r9   Ú(test_gaussian_mixture_fit_predict_n_initr  B  sq   € å
Œ	×Ò˜aÑ Ô ×&Ò& t¨QÑ/Ô/€AÝ	 a°ÀÐ	BÑ	BÔ	B€BØ�nŠn˜QÑÔ€GØ�jŠj˜‰mŒm€GÝ�w Ñ(Ô(Ð(Ð(Ð(r;   c                  óÖ  ‡— t           j                             d¦  «        } t          | ¦  «        }|j        Š|j        }t          D �]¢}|j        |         }t          |dd| |¬¦  «        }| 	                    |¦  «         t          t          j        |j        ¦  «        t          j        |j        ¦  «        dd¬¦  «         |j        d d …df                              ¦   «         }|j        d d …df                              ¦   «         }t          |j        |         |j        |         dd¬¦  «         |dk    r|j        }|j        d         }	nð|dk    rAt          j        |j        g|z  ¦  «        }t          j        |j        d         g|z  ¦  «        }	n©|d	k    rQt          j        ˆfd
„|j        D ¦   «         ¦  «        }t          j        ˆfd„|j        d	         D ¦   «         ¦  «        }	nR|dk    rLt          j        d„ |j        D ¦   «         ¦  «        }t          j        d„ |j        d         D ¦   «         ¦  «        }	t          j        |dd¬¦  «                             ¦   «         }t          j        |	dd¬¦  «                             ¦   «         }t+          ||¦  «        D ]K\  }
}t-          ¦   «         }|	|         |_        t          |                     ||
         ¦  «        dd¬¦  «         ŒL�Œ¤d S )Nr   é   ©rV   rj   rl   rD   r2   rh   g{®Gáz„?)ÚrtolÚatolr   r   r    c                 ó>   •— g | ]}t          j        ‰¦  «        |z  ‘ŒS rK   ©r"   r)   ©rF   r8   r.   s     €r9   rG   z-test_gaussian_mixture_fit.<locals>.<listcomp>o  s(   ø€ Ð!PÐ!PÐ!P¸Q¥"¤&¨Ñ"4Ô"4°qÑ"8Ð!PÐ!PÐ!Pr;   c                 ó>   •— g | ]}t          j        ‰¦  «        |z  ‘ŒS rK   r  r  s     €r9   rG   z-test_gaussian_mixture_fit.<locals>.<listcomp>q  s(   ø€ ÐSÐSÐS¨A•”˜
Ñ#Ô# aÑ'ÐSÐSÐSr;   r   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rK   ©r"   r   ©rF   Úds     r9   rG   z-test_gaussian_mixture_fit.<locals>.<listcomp>t  s    € Ð!DÐ!DÐ!D°¥"¤'¨!¡*¤*Ð!DÐ!DÐ!Dr;   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rK   r  r  s     r9   rG   z-test_gaussian_mixture_fit.<locals>.<listcomp>u  s    € Ð!SÐ!SÐ!S°¥"¤'¨!¡*¤*Ð!SÐ!SÐ!Sr;   rs   r?   )Úaxis1Úaxis2g333333Ã?)r  )r"   r#   r$   r=   r.   rV   r\   r4   r   rn   r   ÚsortÚweights_r/   Úmeans_Úargsortr0   Úprecisions_r1   rY   Útracer&   r   rÀ   r°   )r3   r€   rV   rQ   r4   r�   Úarg_idx1Úarg_idx2Ú	prec_predÚ	prec_testrU   Úhr¸   r.   s                @r9   Útest_gaussian_mixture_fitr.  K  s   ø€ å
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØÔ%€JØÔ)€Lå%ð +Iñ +Iˆ
ØŒK˜
Ô#ˆÝØ%ØØØØ&ð
ñ 
ô 
ˆð 	
�Šˆa‰Œˆõ 	ÝŒG�A”JÑÔ¥¤¨Ô):Ñ!;Ô!;À#ÈDð	
ñ 	
ô 	
ð 	
ð ”8˜A˜A˜A˜q˜D”>×)Ò)Ñ+Ô+ˆØ”? 1 1 1 a 4Ô(×0Ò0Ñ2Ô2ˆÝØŒH�XÔ 	¤°Ô 9ÀÈ$ð	
ñ 	
ô 	
ð 	
ð ˜ÒÐØœˆIØ!Ô,¨VÔ4ˆIˆIØ˜6Ò!Ð!Ýœ !¤- °<Ñ!?Ñ@Ô@ˆIÝœ )Ô"6°vÔ">Ð!?À,Ñ!NÑOÔOˆIˆIØ˜;Ò&Ð&ÝœÐ!PÐ!PÐ!PÐ!PÀ!Ä-Ð!PÑ!PÔ!PÑQÔQˆIÝœØSÐSÐSÐS°Ô1EÀkÔ1RÐSÑSÔSñô ˆIˆIð ˜6Ò!Ð!ÝœÐ!DÐ!D°a´mÐ!DÑ!DÔ!DÑEÔEˆIÝœÐ!SÐ!S°iÔ6JÈ6Ô6RÐ!SÑ!SÔ!SÑTÔTˆIå”8˜I¨Q°aÐ8Ñ8Ô8×@Ò@ÑBÔBˆÝ”8˜I¨Q°aÐ8Ñ8Ô8×@Ò@ÑBÔBˆÝ˜ (Ñ+Ô+ð 	Ið 	I‰DˆAˆqÝ&Ñ(Ô(ˆDØ(¨œ|ˆDÔå˜DŸOšO¨I°a¬LÑ9Ô9¸1À4ÐHÑHÔHÐHÐHñ		IðO+Ið +Ir;   c                  óP  — t           j                             d¦  «        } t          | ¦  «        }|j        }d}t
          D ]æ}|j        |         }t          |dd| |¬¦  «        }g }t          |¦  «        D ]?}| 	                    |¦  «         | 
                    |                     |¦  «        ¦  «         Œ@t          j        |¦  «        }t          ||d| |¬¦  «        }	|	 	                    |¦  «         t          |                     ¦   «         |	                     |¦  «        ¦  «         Œçd S )Nr   re   rs   r  )r"   r#   r$   r=   rV   r\   r4   r   rZ   rn   r'   ÚscorerY   r   r~   )
r3   r€   rV   rj   rQ   r4   r�   Úllr5   Úg_bests
             r9   Ú%test_gaussian_mixture_fit_best_paramsr3  €  s'  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØÔ)€LØ€FÝ%ð 7ð 7ˆ
ØŒK˜
Ô#ˆÝØ%ØØØØ&ð
ñ 
ô 
ˆð ˆÝ�v‘”ð 	"ð 	"ˆAØ�EŠE�!‰HŒHˆHØ�IŠI�a—g’g˜a‘j”jÑ!Ô!Ð!Ð!ÝŒX�b‰\Œ\ˆÝ Ø%ØØØØ&ð
ñ 
ô 
ˆð 	�
Š
�1‰ŒˆÝ˜BŸFšF™HœH f§l¢l°1¡o¤oÑ6Ô6Ð6Ð6ð-7ð 7r;   c            	      ód  — t           j                             d¦  «        } t          | d¬¦  «        }|j        }d}t
          D ]n}|j        |         }t          |d|d| |¬¦  «        }d}t          j	        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œod S )Nr   rs   rô   ©rV   rj   rk   rl   rD   r2   zˆBest performing initialization did not converge. Try different init parameters, or increase max_iter, tol, or check for degenerate data.rt   )r"   r#   r$   r=   rV   r\   r4   r   r{   Úwarnsr   rn   )r3   r€   rV   rk   rQ   r4   r�   rƒ   s           r9   Ú-test_gaussian_mixture_fit_convergence_warningr7  ž  s  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØ€HÝ%ð ð ˆ
ØŒK˜
Ô#ˆÝØ%ØØØØØ&ð
ñ 
ô 
ˆð1ð 	õ
 Œ\Õ,°CÐ8Ñ8Ô8ð 	ð 	Ø�EŠE�!‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   ÂB$Â$B(	Â+B(	c                  ó‚  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }t          D ]{}t          ||d¬¦  «                             |¦  «                             |¦  «        }t          ||dd¬¦  «                             |¦  «                             |¦  «        }||k    sJ ‚Œ|d S )Nr   ©r@   ró   r?   r�   ró   ©rV   r2   rD   rj   )r"   r#   r$   r  r\   r   rn   r0  )r3   r-   r.   rV   r4   Úcv_typeÚtrain1Útrain2s           r9   Útest_multiple_initr>  ¶  sÙ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*2Ñ'€Iˆz˜<Ø�	Š	�)˜ZÑ(Ô(€AÝ"ð  ð  ˆåØ)¸7ÐQRðñ ô ÷ ŠS�‰VŒVßŠU�1‰XŒXð 	õ Ø)Ø 'ØØð	ñ ô ÷ ŠS�‰VŒVßŠU�1‰XŒXð 	ð ˜ÒÐÐÐÐð% ð  r;   c                  ó(  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }dddddœ}t          D ]G}t          ||| ¬¦  «                             |¦  «        }|                     ¦   «         ||         k    sJ ‚ŒHd S )	Nr   r9  é   é   é   é)   rH   r�   )r"   r#   r$   r  r\   r   rn   Ú_n_parameters)r3   r-   r.   rV   r4   Ún_paramsr;  r�   s           r9   Ú"test_gaussian_mixture_n_parametersrF  Ð  s®   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*2Ñ'€Iˆz˜<Ø�	Š	�)˜ZÑ(Ô(€AØ¨°RÀÐDÐD€HÝ"ð 6ð 6ˆÝØ%°wÈSð
ñ 
ô 
ç
Š#ˆa‰&Œ&ð 	
ð �ŠÑ Ô  H¨WÔ$5Ò5Ð5Ð5Ð5Ð5ð	6ð 6r;   c                  ó†  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }t	          |d| ¬¦  «                             |¦  «                             |¦  «        }dD ]J}t	          ||| ¬¦  «                             |¦  «                             |¦  «        }t          ||¦  «         ŒKd S )Nr   )éd   rs   rs   r   r�   )r   r   r    )r"   r#   r$   r  r   rn   Úbicr   )r3   r-   Ún_dimrV   r4   Úbic_fullr2   rI  s           r9   Útest_bic_1d_1componentrL  Ý  sÖ   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ%.Ñ"€Iˆu�lØ�	Š	�)˜UÑ#Ô#€AåØ%°vÈCð	
ñ 	
ô 	
÷ 
ŠˆQ‰Œß	ŠˆQ‰Œð ð 9ð 
+ð 
+ˆåØ)Ø /Ø ðñ ô ÷
 ŠS�‰VŒVßŠS�‰VŒVð 	õ 	˜H cÑ*Ô*Ð*Ð*ð
+ð 
+r;   c                  óÜ  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }dt	          t          j        |j        d¬¦  «        ¦  «        |dt          j        dt           j        z  ¦  «        z   z  z   z  }t          D ]Õ}t          ||| d¬¦  «        }|                     |¦  «         d|z  |z  d|                     ¦   «         z  z   }d|z  |z  t          j        |¦  «        |                     ¦   «         z  z   }	|t          j        |¦  «        z  }
|                     |¦  «        |z
  |z  |
k     sJ ‚|                     |¦  «        |	z
  |z  |
k     sJ ‚ŒÖd S )	Nr   )r@   rf   r?   rB   rs   )Úbiasr?   r>   )rV   r2   rD   rk   )r"   r#   r$   r  r   r§   r¡   rÓ   Úpir\   r   rn   rD  r®   ÚaicrI  )r3   r-   r.   rV   r4   Úsghr;  r�   rP  rI  Úbounds              r9   Útest_gaussian_mixture_aic_bicrS  ÷  st  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*2Ñ'€Iˆz˜<Ø�	Š	�)˜ZÑ(Ô(€Aà
Ý•B”F˜1œ3 QÐ'Ñ'Ô'Ñ(Ô(¨:¸½R¼VÀAÍÌÁIÑ=NÔ=NÑ9NÑ+OÑOñ€Cõ #ð 4ð 4ˆÝØ%Ø#ØØð	
ñ 
ô 
ˆð 	
�Šˆa‰ŒˆØ�)‰m˜cÑ! A¨¯ªÑ(9Ô(9Ñ$9Ñ9ˆØ�)‰m˜cÑ!¥B¤F¨9Ñ$5Ô$5¸¿ºÑ8IÔ8IÑ$IÑIˆØ�RœW YÑ/Ô/Ñ/ˆØ—’�a‘”˜3‘ )Ñ+¨eÒ3Ð3Ð3Ð3Ø—’�a‘”˜3‘ )Ñ+¨eÒ3Ð3Ð3Ð3Ð3ð4ð 4r;   c            	      óÊ  — t           j                             d¦  «        } t          | ¦  «        }|j        }t
          D ]¥}|j        |         }t          |dd| |d¬¦  «        }t          |dd| |d¬¦  «        }t          j	        }t          ¦   «         t          _	        	 |                     |¦  «         |                     |¦  «         |t          _	        Œ•# |t          _	        w xY wd S )Nr   rs   )rV   rj   rl   rD   r2   Úverboser?   )r"   r#   r$   r=   rV   r\   r4   r   ÚsysÚstdoutr   rn   )r3   r€   rV   rQ   r4   r�   r-  Ú
old_stdouts           r9   Útest_gaussian_mixture_verboserY    sð   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØÔ)€LÝ%ð $ð $ˆ
ØŒK˜
Ô#ˆÝØ%ØØØØ&Øð
ñ 
ô 
ˆõ Ø%ØØØØ&Øð
ñ 
ô 
ˆõ ”Zˆ
Ý‘Z”Z�Œ
ð	$Ø�EŠE�!‰HŒHˆHØ�EŠE�!‰HŒHˆHà#�CŒJˆJø˜�CŒJÐ#Ð#Ð#Ð#ð1$ð $s   Â*CÃC r  )r   rs   r?   c           	      óz  — | }t           j                             |¦  «        }d\  }}}|                     ||¦  «        }t	          |ddd|d¬¦  «        }t	          |ddd|d¬¦  «        }|                     |¦  «         |                     |¦  «                             |¦  «        }	|                     |¦  «                             |¦  «        }
t          |j        |j        ¦  «         t          |j	        |j	        ¦  «         t          |j
        |j
        ¦  «         |
|	k    sJ ‚t	          |ddd|dd	¬
¦  «        }t	          |ddd|dd	¬
¦  «        }|                     |¦  «         |j        rJ ‚|                     |¦  «         t          d¦  «        D ] }|                     |¦  «         |j        r nŒ!|j        sJ ‚d S )Nr¾   rs   r?   r   F)rV   rj   rk   rl   rD   Ú
warm_startTró   ç�íµ ÷Æ°>)rV   rj   rk   rl   rD   r[  ri   r  )r"   r#   r$   rW   r   rn   r0  r   r$  r%  r'  Ú
converged_rZ   )r  rD   r3   r-   r.   rV   r4   r�   r-  Úscore1Úscore2r5   s               r9   Útest_warm_startr`  .  sï  € ð €LÝ
Œ)×
Ò
 Ñ
-Ô
-€CØ*3Ñ'€Iˆz˜<Ø�Š�˜JÑ'Ô'€Aõ 	Ø!ØØØØ!Øð	ñ 	ô 	€Aõ 	Ø!ØØØØ!Øð	ñ 	ô 	€Að ‡E‚Eˆ!�H„H€HØ�UŠU�1‰XŒX�^Š^˜AÑÔ€FØ�UŠU�1‰XŒX�^Š^˜AÑÔ€Få˜œ
 A¤JÑ/Ô/Ð/Ý˜œ !¤(Ñ+Ô+Ð+Ý˜œ q¤}Ñ5Ô5Ð5Ø�FŠ?ˆ?ˆ?ˆ?õ 	Ø!ØØØØ!ØØð	ñ 	ô 	€Aõ 	Ø!ØØØØ!ØØð	ñ 	ô 	€Að ‡E‚Eˆ!�H„H€HØŒ|ÐÐÐà‡E‚Eˆ!�H„H€Hõ �4‰[Œ[ð ð ˆØ	�Šˆa‰ŒˆØŒ<ð 	ØˆEð	àŒ<ÐÐÐÐÐr;   )Úcategoryc                  óF  — t           j                             d¦  «        } t          | ¦  «        }|j        }|j        d         }dD ][}t          |d|| ¬¦  «        }t          d¦  «        D ] }|                     |¦  «         |j	        r nŒ!|j	        sJ ‚||j
        k    sJ ‚Œ\d S )Nr   r   )rs   r?   r@   T)rV   r[  rk   rD   rH  )r"   r#   r$   r=   rV   r4   r   rZ   rn   r]  Ún_iter_)r3   r€   rV   r4   rk   ro   r5   s          r9   Ú)test_convergence_detected_with_warm_startrd  s  sÏ   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØÔ)€LØŒ�FÔ€Aàð 'ð 'ˆÝØ%ØØØð	
ñ 
ô 
ˆõ �s‘”ð 	ð 	ˆAØ�GŠG�A‰JŒJˆJØŒ~ð Ø�ðàŒ~ÐÐÐØ˜3œ;Ò&Ð&Ð&Ð&Ð&ð'ð 'r;   c                  óF  — d} t           j                             d¦  «        }t          |d¬¦  «        }|j        }|j        |          }t          |ddd|| ¬¦  «        }d}t          j        t          |¬¦  «        5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         5  t          j        d	t          ¦  «         |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   | 
                    |¦  «        }|                     |¦  «                             ¦   «         }t%          ||¦  «         t          |dd|| ¬
¦  «                             |¦  «        }	|	 
                    |¦  «        | 
                    |¦  «        k    sJ ‚d S )Nr   r   é   rô   rs   r5  rù   rt   Úignorer  )r"   r#   r$   r=   rV   r4   r   r{   r|   r   r0  ÚwarningsÚcatch_warningsÚsimplefilterr   rn   Úscore_samplesr±   r   )
rQ   r3   r€   rV   r4   Úgmm1rƒ   Ú	gmm_scoreÚgmm_score_probaÚgmm2s
             r9   Ú
test_scorerp  Š  s  € Ø€JÝ
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØŒ�JÔ€Aõ Ø!ØØØØØ"ðñ ô €Dð	=ð õ 
Œ•~¨SÐ	1Ñ	1Ô	1ð ð Ø�
Š
�1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Ô	 Ñ	"Ô	"ð ð ÝÔ˜hÕ(:Ñ;Ô;Ð;Ø�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð —
’
˜1‘”€IØ×(Ò(¨Ñ+Ô+×0Ò0Ñ2Ô2€OÝ˜	 ?Ñ3Ô3Ð3õ Ø!ØØØØ"ðñ ô ÷ 
‚cˆ!�f„fð 	ð �:Š:�a‰=Œ=˜4Ÿ:š: a™=œ=Ò(Ð(Ð(Ð(Ð(Ð(s$   Á9BÂBÂ"BÂ90C5Ã5C9Ã<C9c                  óÎ  — d} t           j                             d¦  «        }t          |d¬¦  «        }|j        }|j        |          }t          |dd|| ¬¦  «        }d}t          j        t          |¬¦  «        5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         
                    |¦  «        }|j        d         |j        k    sJ ‚d S )	Nr   r   rf  rô   rs   r  rù   rt   )r"   r#   r$   r=   rV   r4   r   r{   r|   r   rk  rn   rz   r-   )rQ   r3   r€   rV   r4   ro   rƒ   Úgmm_score_sampless           r9   Útest_score_samplesrs  ´  s3  € Ø€JÝ
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØŒ�JÔ€Aõ Ø!ØØØØ"ðñ ô €Cð	=ð õ 
Œ•~¨SÐ	1Ñ	1Ô	1ð ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ÿš ™
œ
×0Ò0°Ñ3Ô3ÐØÔ" 1Ô%¨Ô)<Ò<Ð<Ð<Ð<Ð<Ð<s   Á8BÂBÂ!Bc            
      ó   — t           j                             d¦  «        } t          | d¬¦  «        }|j        }t
          D ]Î}|j        |         }t          ||ddd| d¬¦  «        }t           j         }t          j
        ¦   «         5  t          j        dt          ¦  «         t          d	¦  «        D ]=}|}|                     |¦  «                             |¦  «        }||k    sJ ‚|j        r nŒ>|j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   ŒÏd S )
Nr   rf  rô   Trs   r   )rV   r2   rl   r[  rk   rD   ri   rg  iX  )r"   r#   r$   r=   rV   r\   r4   r   Úinfrh  ri  rj  r   rZ   rn   r0  r]  )	r3   r€   rV   rQ   r4   ro   Úcurrent_log_likelihoodr5   Úprev_log_likelihoods	            r9   Útest_monotonic_likelihoodrx  Î  sz  € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€Lå%ð "ð "ˆ
ØŒK˜
Ô#ˆÝØ%Ø&ØØØØØð
ñ 
ô 
ˆõ #%¤& ÐÝÔ$Ñ&Ô&ð 	"ð 	"ÝÔ! (Õ,>Ñ?Ô?Ð?õ ˜3‘Z”Zð ð �Ø&<Ð#Ø),¯ª°©¬×)9Ò)9¸!Ñ)<Ô)<Ð&Ø-Ð1DÒDÐDÐDÐDà”>ð Ø�Eðð ”>Ð!Ð!Ð!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"øð"ð "s   ÂA1DÄD	Ä	D	c                  ó¤  — t           j                             d¦  «        } d\  }}t          j        t          j        |dz  |f¦  «        t          j        |dz  |f¦  «        f¦  «        }t          D ]ß}t          |d|| ¬¦  «        }t          j	        ¦   «         5  t          j
        dt          ¦  «         t          j        d¦  «        }t          j        t           |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¬	¦  «                             |¦  «         d d d ¦  «         n# 1 swxY w Y   Œàd S )
Nr   )re   ró   r?   )rV   rl   r2   rD   rg  zØFitting the mixture model failed because some components have ill-defined empirical covariance (for instance caused by singleton or collapsed samples). Try to decrease the number of components, or increase reg_covar.rt   r\  )rl   )r"   r#   r$   r,   r�   r¯   r\   r   rh  ri  rj  ÚRuntimeWarningrw   rx   r{   r|   r}   rn   Ú
set_params)r3   r-   r.   r4   rQ   ro   rƒ   s          r9   Útest_regularisationr|  ð  sÌ  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ!Ñ€Iˆzå
Œ	Ý	Œ�)˜q‘. *Ð-Ñ	.Ô	.µ´¸)Àq¹.È*Ð9UÑ0VÔ0VÐWñ	ô 	€Aõ &ð 2ð 2ˆ
ÝØ"ØØ&Øð	
ñ 
ô 
ˆõ Ô$Ñ&Ô&ð 	2ð 	2ÝÔ! (­NÑ;Ô;Ð;Ý”)ð8ñô ˆCõ ”�z°Ð5Ñ5Ô5ð ð Ø—’˜‘
”
�
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �NŠN TˆNÑ*Ô*×.Ò.¨qÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2øð2ð 2s7   ÂA
EÃ"DÃ8EÄDÄEÄDÄ,EÅE	ÅE	c                  ó$  — t           j                             d¦  «        } t          | d¬¦  «        }|j        }t
          D ]Ð}|j        |         }t          ||| d¬¦  «        }|                     |¦  «         |dk    rCt          |j
        |j        ¦  «        D ]'\  }}t          t          j        |¦  «        |¦  «         Œ(Œ€|dk    r-t          t          j        |j
        ¦  «        |j        ¦  «         Œ³t          |j
        d|j        z  ¦  «         ŒÑd S )	Nr   rf  rô   ró   r:  r   r   rI   )r"   r#   r$   r=   rV   r\   r4   r   rn   r&   r'  Úcovariances_r   r   rM   )r3   r€   rV   rQ   r4   ro   r£   Úcovars           r9   Útest_propertyr€    s'  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€Lå%ð Oð Oˆ
ØŒK˜
Ô#ˆÝØ%Ø&ØØð	
ñ 
ô 
ˆð 	�Š�‰
Œ
ˆ
Ø˜ÒÐÝ" 3¤?°CÔ4DÑEÔEð Cð C‘��eÝ)­&¬*°TÑ*:Ô*:¸EÑBÔBÐBÐBðCà˜6Ò!Ð!Ý%¥f¤j°´Ñ&AÔ&AÀ3ÔCSÑTÔTÐTÐTå% c¤o°s¸SÔ=MÑ7MÑNÔNÐNÐNðOð Or;   c                  óì  ‡‡— t           j                             d¦  «        } t          | dd¬¦  «        }|j        |j        }}t          D �]©}|j        |         }t          ||| ¬¦  «        }d}t          j
        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         d}t          j
        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   d	}|                     |¦  «        \  ŠŠt          |¦  «        D �]%}	|d
k    r?t!          |j        |	         t          j        ‰‰|	k             j        ¦  «        d¬¦  «         ŒH|dk    r9t!          |j        t          j        ‰‰|	k             j        ¦  «        d¬¦  «         Œ‡|dk    rQt!          |j        |	         t          j        t          j        ‰‰|	k             j        ¦  «        ¦  «        d¬¦  «         ŒÞt!          |j        |	         t          j        ‰‰|	k             |j        |	         z
  ¦  «        d¬¦  «         �Œ't          j        ˆˆfd„t          |¦  «        D ¦   «         ¦  «        }
t!          |j        |
d¬¦  «         ‰j        ||fk    sJ ‚t          dd¦  «        D ])}|                     |¦  «        \  Š}‰j        ||fk    sJ ‚Œ*�Œ«d S )Nr   rf  rf   )r_   rV   r�   z+This GaussianMixture instance is not fittedrt   zInvalid value for 'n_samples'i N  r   rs   )Údecimalr   r   c                 óN   •— g | ]!}t          j        ‰‰|k             d ¦  «        ‘Œ"S )r   )r"   r±   )rF   rU   ÚX_sÚy_ss     €€r9   rG   ztest_sample.<locals>.<listcomp>T  s-   ø€ ÐSÐSÐS¸!�BœG C¨¨qª¤M°1Ñ5Ô5ÐSÐSÐSr;   rH  )r"   r#   r$   r=   r.   rV   r\   r4   r   r{   r|   r   Úsamplern   r}   rZ   r   r~  r§   r¡   r   Úvarr%  rY   rz   )r3   r€   r.   rV   rQ   r4   ro   rƒ   r-   rU   Úmeans_sÚsample_sizer5   r„  r…  s                @@r9   Útest_samplerŠ  '  s   øø€ Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 a°aÐ8Ñ8Ô8€IØ(Ô3°YÔ5K�€Jå%ð 1:ñ 1:ˆ
ØŒK˜
Ô#ˆåØ%°zÐPSð
ñ 
ô 
ˆð <ˆÝŒ]�>°Ð5Ñ5Ô5ð 	ð 	Ø�JŠJ�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�‰
Œ
ˆ
à-ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�JŠJ�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆ	Ø—:’:˜iÑ(Ô(‰ˆˆSå�|Ñ$Ô$ð 	ñ 	ˆAØ˜VÒ#Ð#Ý)ØÔ$ QÔ'­¬°°C¸1²H´´Ñ)@Ô)@È!ðñ ô ð ð ð ˜vÒ%Ð%Ý)ØÔ$¥b¤f¨S°¸²¬]¬_Ñ&=Ô&=Àqðñ ô ð ð ð ˜vÒ%Ð%Ý)ØÔ$ QÔ'­¬µ´¸¸CÀ1ºH¼¼Ñ1HÔ1HÑ)IÔ)IÐSTðñ ô ð ð õ *ØÔ$ QÔ'Ý”F˜3˜s ašxœ=¨3¬:°a¬=Ñ8Ñ9Ô9Øðñ ô ð ñ õ ”(ÐSÐSÐSÐSÐS½uÀ\Ñ?RÔ?RÐSÑSÔSÑTÔTˆÝ! #¤*¨g¸qÐAÑAÔAÐAð Œy˜Y¨
Ð3Ò3Ð3Ð3Ð3å   C™=œ=ð 	:ð 	:ˆKØ—Z’Z Ñ,Ô,‰FˆC�Ø”9 ¨jÐ 9Ò9Ð9Ð9Ð9Ð9ñ	:ð_1:ð 1:s$   ÂB*Â*B.	Â1B.	Ã'D	Ä	D	ÄD	c                  ól  — t          d¦  «        D ]£} t          t          j                             | ¦  «        dd¬¦  «        }|j        }|j        d         }t          |dd| ¬¦  «                             |¦  «        }t          |dd| ¬¦  «                             |¦  «        }|j	        |j	        k    sJ ‚Œ¤d S )Né   r@   rs   )r-   r_   r   )rV   rj   rk   rD   re   )
rZ   r=   r"   r#   r$   rV   r4   r   rn   Úlower_bound_)rD   r€   rV   r4   rl  ro  s         r9   Ú	test_initrŽ  `  sØ   € õ ˜b™	œ	ð 6ð 6ˆÝÝŒI×!Ò! ,Ñ/Ô/¸2ÀQð
ñ 
ô 
ˆ	ð !Ô-ˆØŒK˜ÔˆåØ%¨a¸!È,ð
ñ 
ô 
ç
Š#ˆa‰&Œ&ð 	õ Ø%¨b¸1È<ð
ñ 
ô 
ç
Š#ˆa‰&Œ&ð 	ð Ô  DÔ$5Ò5Ð5Ð5Ð5Ð5ð6ð 6r;   c            
      óª  — t           j                             d¦  «        } d}|                      |df¬¦  «        }t          j        g d¢g d¢g d¢g d¢g d	¢g d
¢g¦  «        }t          j        g d¢¦  «        }g d¢}t          dd||| t          |¦  «        |d¬¦  «        }|                     |¦  «         |j        rJ ‚dD ]}t          ||¦  «        sJ ‚ŒdS )zÛ`GaussianMixture`'s best_parameters, `n_iter_` and `lower_bound_`
    must be set appropriately in the case of divergence.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/18216
    r   rg   rf   ©Úsize)gß¯ŒÝuå?g³ýºÕÐíÊ?gnÏ,¨€À?)gqz=|¸?gdUX'nâ?g.baË¼í?)g£Úê8à?gà—�ŸŸî?g½Í×�ƒ'¶?)g{á¼ÇÇ?g
 ³á?g(}I�^ÑÈ?)gLœähÝ?gtªã“M„Ö?gŽÈ§@.â?)g»YáŒ8ã?g›ïj4}_é?g$%ˆŸÈÈî?)g§(Ìÿ„.Ag_Sˆÿ„.Ag]°IN�@g¬òÅ•&™i@g’âçî¼/@gYa2¤i]U@)ç¡?r’  ç±?r“  ggfffffæ?gŸ™™™™™¹?r    rs   )r2   rl   rˆ   rv   rD   rV   r�   rk   )r$  r%  r~  Úprecisions_cholesky_rc  r�  N)
r"   r#   r$   ÚuniformrY   r   rÙ   rn   r]  Úhasattr)Úrndr-   r4   rˆ   r�   rv   ro   Úattrs           r9   Ú)test_gaussian_mixture_setting_best_paramsr™  t  sC  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€IØ�Š˜) Q˜ˆÑ(Ô(€Aõ ”àIÐIÐIØHÐHÐHØIÐIÐIØJÐJÐJØHÐHÐHØGÐGÐGð	
ñ	ô 	€Jõ ”hð	
ð 	
ð 	
ñ	ô 	€Oðð ð €Lõ Ø#ØØØ!ØÝ˜Ñ&Ô&Ø'Øð	ñ 	ô 	€Cð ‡G‚GˆA�J„J€Jð Œ~ÐÐÐðð "ð "ˆõ �s˜DÑ!Ô!Ð!Ð!Ð!Ð!ð"ð "r;   rm   )r#   Úrandom_from_dataz	k-means++Úkmeansc                 óR  — t           j                             |¦  «        }t          |d¬¦  «        }|j        }|j        d         }t          || |d¬¦  «        }|                     |¦  «         |j        }t          j
        |d¬¦  «        D ]\  }}	t          j        ||	¦  «        rJ ‚Œd S )Nró   rô   r   r   )rV   rm   rD   rk   r?   )Úr)r"   r#   r$   r=   rV   r4   r   rn   r%  Ú	itertoolsÚcombinationsÚallclose)
rm   Úglobal_random_seedr3   r€   rV   r4   ro   r0   Úi_meanÚj_means
             r9   Útest_init_means_not_duplicatedr¤  ¹  s¾   € õ
 Œ)×
Ò
Ð 2Ñ
3Ô
3€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØŒ�FÔ€Aå
Ø!¨{ÈÐWXðñ ô €Cð ‡G‚GˆA�J„J€JàŒJ€EÝ#Ô0°¸!Ð<Ñ<Ô<ð /ð /‰ˆ�Ý”;˜v vÑ.Ô.Ð.Ð.Ð.Ð.ð/ð /r;   c                 óø  — t           j                             |¦  «        }t          |d¬¦  «        }|j        }|j        d         }t          || |¬¦  «        }|                     |¦  «         |j        j	        ||j	        d         fk    sJ ‚t          j
        |                     d¬¦  «        |j        k    ¦  «        sJ ‚t          j
        |j        |                     d¬¦  «        k    ¦  «        sJ ‚|j        sJ ‚d S )Nró   rô   r   )rV   rm   rD   rs   r   r©   )r"   r#   r$   r=   rV   r4   r   rn   r%  rz   Úallr~   r   r]  )rm   r¡  r3   r€   rV   r4   ro   s          r9   Útest_means_for_all_initsr§  Í  só   € õ
 Œ)×
Ò
Ð 2Ñ
3Ô
3€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØŒ�FÔ€Aå
Ø!¨{Èðñ ô €Cð ‡G‚GˆA�J„J€JàŒ:Ô ¨a¬g°a¬jÐ9Ò9Ð9Ð9Ð9ÝŒ6�!—%’%˜Q�%‘-”- 3¤:Ò-Ñ.Ô.Ð.Ð.Ð.ÝŒ6�#”* §¢¨1 ¡¤Ò-Ñ.Ô.Ð.Ð.Ð.ØŒ>ÐÐÐÐÐr;   c                  ó  — t           j                             d¦  «        } t          | d¬¦  «        }|j        }|j        d         }ddgddgg}t          || |dd¬	¦  «        }|                     |¦  «         t          |j	        |¦  «         d S )
Nr   ró   rô   r   r  rg   é   r\  )rV   rD   rˆ   ri   rk   )
r"   r#   r$   r=   rV   r4   r   rn   r   r%  )r3   r€   rV   r4   rˆ   ro   s         r9   Útest_max_iter_zerorª  â  s�   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØŒ�FÔ€AØ�r�(˜R ˜HÐ%€JÝ
Ø!ØØØØðñ ô €Cð ‡G‚GˆA�J„J€Jå�C”J 
Ñ+Ô+Ð+Ð+Ð+r;   c                  ój  — d} t           j                             d¦  «        }|                     | d¦  «        t          j        ddg¦  «        z   }t          j        ddgddgg¦  «        }t          j        |                     | d¦  «        |¦  «        }t          j        ||g¦  «        }d	\  }}}}	t          j        |j        d         |f¦  «        }
t          |d
|	¬¦  «         
                    |¦  «        j        }d
|
t          j        |j        d         ¦  «        |f<   t          ||
||¬¦  «        \  }}}d
|z  }t          |||||	¬¦  «         
                    |¦  «        }t          ||||	¬¦  «         
                    |¦  «        }|j        |j        k    sJ ‚t!          |j        |j        ¦  «         dS )aü  Check that we properly initialize `precision_cholesky_` when we manually
    provide the precision matrix.

    In this regard, we check the consistency between estimating the precision
    matrix and providing the same precision matrix as initialization. It should
    lead to the same results with the same number of iterations.

    If the initialization is wrong then the number of iterations will increase.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/16944
    r  r   r?   r  g        gffffffæ¿g      @gffffffæ?)r?   r   r\  r   rs   )Ú
n_clustersrj   rD   )rl   r2   )rV   r2   rl   r�   rD   )rV   r2   rl   rD   N)r"   r#   r$   r  rY   r    r,   r¯   rz   r   rn   Úlabels_Úaranger   r   rc  r   r”  )r-   r3   Úshifted_gaussianÚCÚstretched_gaussianr4   rV   r2   rl   rD   r³   Úlabelr5   rN   r�   Úgm_with_initÚgm_without_inits                    r9   Ú*test_gaussian_mixture_precisions_init_diagrµ  ö  sÞ  € ð €IÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ—y’y ¨AÑ.Ô.µ´¸2¸r¸(Ñ1CÔ1CÑCÐÝ
Œ�3˜�+  S˜zÐ*Ñ+Ô+€AÝœ §	¢	¨)°QÑ 7Ô 7¸Ñ;Ô;ÐÝ
Œ	Ð#Ð%7Ð8Ñ9Ô9€Að >PÑ:€L�/ 9¨lõ Œ8�Q”W˜Q”Z Ð.Ñ/Ô/€Då˜,¨q¸|ÐLÑLÔLß	ŠˆQ‰ŒÜ	ð 
ð
 *+€D�Œ�1”7˜1”:Ñ	Ô	 Ð	%Ñ&Ý4Ø	ˆ4˜9°oðñ ô Ñ€A€qˆ*ð ˜*‘n€Oå"Ø!Ø'ØØ'Ø!ðñ ô ÷ 
‚cˆ!�f„fð õ &Ø!Ø'ØØ!ð	ñ ô ÷
 
‚cˆ!�f„fð ð Ô" lÔ&:Ò:Ð:Ð:Ð:ÝØÔ)¨?Ô+Oñô ð ð ð r;   c                 óþ   — t           j                             | ¦  «        }|                     ||f¦  «        }|                     ||f¦  «        }||                     d¬¦  «        dd…t           j        f         z  }||fS )z/Randomly generate samples and responsibilities.rs   r©   N)r"   r#   r$   Úrandom_samplerX   r¿   )r  r-   r.   rV   Úrsr4   r³   s          r9   Ú_generate_datar¹  3  sw   € å	Œ×	Ò	˜tÑ	$Ô	$€BØ
×Ò˜) ZÐ0Ñ1Ô1€AØ×Ò˜Y¨Ð5Ñ6Ô6€DØˆD�HŠH˜!ˆHÑÔ˜Q˜Q˜Q¥¤
˜]Ô+Ñ+€DØˆdˆ7€Nr;   c                 óÚ   — d}t          | |||¦  «        \  }}}t          ||¦  «        }|j        \  }}	t          |	|¬¦  «        }
||||f}|
                     |¦  «         |
j        |
j        fS )zfCalculate precision matrix of X and its Cholesky decomposition
    for the given covariance type.
    r\  )rV   r2   )r   r   rz   r   Ú_set_parametersr'  r”  )r4   r³   r2   rl   r/   r0   rP   Úprecisions_choleskyr5   rV   ro   Úparamss               r9   Ú_calculate_precisionsr¾  <  sŒ   € ð €IÝ"?Ø	ˆ4�˜Oñ#ô #Ñ€GˆU�Kõ 6°kÀ?ÑSÔSÐà”j�O€A€|õ
  |À_Ð
UÑ
UÔ
U€CØ�u˜kÐ+>Ð?€FØ×Ò˜ÑÔÐØŒ?˜CÔ4Ð4Ð4r;   r2   c                 óÖ   — t          |ddd¬¦  «        \  }}t          ||| ¦  «        \  }}t          | |¬¦  «        }|                     ||¦  «         |j        }t          ||¦  «         dS )zNon-regression test for #26415.rH  rf   r  )r  r-   r.   rV   )r2   r�   N)r¹  r¾  r   Ú_initializer”  r   )r2   r¡  r4   r³   r�   Údesired_precisions_choleskyro   Úactual_precisions_choleskys           r9   Ú%test_gaussian_mixture_precisions_initrÃ  Q  s™   € õ ØØØØð	ñ ô �G€A€tõ 4IØ	ˆ4�ñ4ô 4Ñ0€OÐ0õ Ø'¸ðñ ô €Cð ‡O‚O�A�tÑÔÐØ!$Ô!9ÐÝÐ.Ð0KÑLÔLÐLÐLÐLr;   c                  ó*  — t           j                             d¦  «        } |                      t          j        d¦  «        t          j        d¦  «        d¬¦  «        }t          d¬¦  «        }|                     |¦  «                             ¦   «          dS )za
    Non-regression test for #23032 ensuring 1-component GM works on only a
    few samples.
    r   r?   rf   r�  rs   rr   N)	r"   r#   r$   r(   r¯   Úidentityr   rn   r†  )r3   r4   r  s      r9   Ú-test_gaussian_mixture_single_component_stablerÆ  g  su   € õ
 Œ)×
Ò
 Ñ
"Ô
"€CØ×Ò¥¤¨¡¤­R¬[¸©^¬^À!ÐÑDÔD€AÝ	 aÐ	(Ñ	(Ô	(€BØ‡F‚Fˆ1�I„I×ÒÑÔÐÐÐr;   c                 ó˜  — t          t          ¬¦  «        }|                      t          j        j        d|¦  «         t          j                             |¦  «        }t          |¦  «        }t          |j        |j        |j        |j        d         |¬¦  «        }|                     |j        d         ¦  «         |j        |j        k    sJ ‚dS )z�When all init parameters are provided, the Gaussian parameters
    are not estimated.

    Non-regression test for gh-26015.
    )Úside_effectr   r   )rV   rv   rˆ   r�   rD   N)r   r   ÚsetattrÚsklearnÚmixtureÚ_gaussian_mixturer"   r#   r$   r=   r   rV   r/   r0   r1   rn   r4   Ú
call_countrc  )Úmonkeypatchr¡  Úmockr3   r€   r  s         r9   ÚDtest_gaussian_mixture_all_init_does_not_estimate_gaussian_parametersrÐ  r  sÈ   € õ Õ9Ð:Ñ:Ô:€DØ×ÒÝŒÔ)Ð+JÈDñô ð õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CÝ˜3‘”€Iå	ØÔ+ØÔ&Ø”?Ø!Ô,¨VÔ4Øð
ñ 
ô 
€Bð ‡F‚Fˆ9Œ;�vÔÑÔÐð Œ?˜bœjÒ(Ð(Ð(Ð(Ð(Ð(r;   )]r  rž  rw   rV  rh  Úior   Úunittest.mockr   Únumpyr"   r{   Úscipyr   r   rÊ  Úsklearn.clusterr   Úsklearn.covariancer   Úsklearn.datasetsr
   Úsklearn.exceptionsr   r   Úsklearn.metrics.clusterr   Úsklearn.mixturer   rç   r   r   r   r   r   r   r   Úsklearn.utils._testingr   r   r   r   r   Úsklearn.utils.extmathr   r\   r:   r=   rp   r†   rŠ   r•   r¼   rÃ   rÈ   rÍ   rÖ   rß   rñ   r÷   rÿ   ÚmarkÚfilterwarningsÚparametrizer  r  r.  r3  r7  r>  rF  rL  rS  rY  r`  rd  rp  rs  rx  r|  r€  rŠ  rŽ  r™  r¤  r§  rª  rµ  r¹  r¾  rÃ  rÆ  rÐ  rK   r;   r9   ú<module>rà     sÛ  ðð
 €€€Ø Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ð Ð à €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -à7Ð7Ð7€ðð ð ð>2
ð 2
ð 2
ð 2
ð 2
ñ 2
ô 2
ð 2
ðj*ð *ð *ð6-0ð -0ð -0ð`,ð ,ð ,ð.6Pð 6Pð 6Pðr'5ð '5ð '5ðT5ð 5ð 5ð<Dð Dð Dð2Ið Ið Ið,Nð Nð Nð2ð ð ð*8ð *8ð *8ð`:ð :ð :ð:5ð 5ð 5ð< „×ÒÐ9Ñ:Ô:Ø„×ÒØðð ð ñô ð6ð 6ñô ñ ;Ô:ð6ð2)ð )ð )ð2Ið 2Ið 2Iðj7ð 7ð 7ð<ð ð ð0 ð  ð  ð4
6ð 
6ð 
6ð+ð +ð +ð44ð 4ð 4ð0$ð $ð $ð> „×ÒÐ9Ñ:Ô:Ø„×Ò˜ Ñ+Ô+ð@ð @ñ ,Ô+ñ ;Ô:ð@ðF €Ð,Ð-Ñ-Ô-ð'ð 'ñ .Ô-ð'ð,')ð ')ð ')ðT=ð =ð =ð4"ð "ð "ðD2ð 2ð 2ð@Oð Oð Oð.6:ð 6:ð 6:ðr €Ð,Ð-Ñ-Ô-ð6ð 6ñ .Ô-ð6ð&B"ð B"ð B"ðJ „×ÒØÐHÐHÐHñô ð/ð /ñô ð/ð" „×ÒØÐHÐHÐHñô ðð ñô ðð$,ð ,ð ,ð(:ð :ð :ðzð ð ð5ð 5ð 5ð* „×ÒÐ*¨OÑ<Ô<ðMð Mñ =Ô<ðMð*ð ð ð)ð )ð )ð )ð )r;   