§
    ¨éUgó&  ã                   ó¦  — d 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	m
Z
 ddlmZmZmZ ddlmZ ddlmZ dd	lmZmZ d
„ Z ej         ej        ddd¦  «        ¦  «        j        Z ej        g d¢¦  «        j        Z ej         ee¦  «                             ¦   «         dk    e¬¦  «        Z ee¦  «                             ¦   «         Z  ej!        ej"        e¬¦  «        Z#de#e dk     <   de#e dk    e dk     z  <   de#e dk    <    edd¬¦  «        Z$ ed¬¦  «        e$ edd¬¦  «         edd¦  «         edd¬¦  «        z  gZ%d„ e%D ¦   «         Z&ej'         (                    de%¦  «        d„ ¦   «         Z)d„ Z*ej'         (                    de&¦  «        d„ ¦   «         Z+ej'         (                    de%¦  «        d„ ¦   «         Z,ej'         (                    de%¦  «        d „ ¦   «         Z-ej'         (                    de&¦  «        d!„ ¦   «         Z.ej'         (                    de%¦  «        d"„ ¦   «         Z/d#„ Z0ej'         (                    de&¦  «        d$„ ¦   «         Z1ej'         (                    de%¦  «        d%„ ¦   «         Z2ej'         (                    de%¦  «        d&„ ¦   «         Z3d'„ Z4ej'         (                    d(d ed¦  «        ie5d)fg¦  «        d*„ ¦   «         Z6dS )+z+Testing for Gaussian process classificationé    N)Úapprox_fprime)ÚConvergenceWarning)ÚGaussianProcessClassifier)ÚRBFÚCompoundKernelÚWhiteKernel)ÚConstantKernel)ÚMiniSeqKernel)Úassert_almost_equalÚassert_array_equalc                 ó*   — t          j        | ¦  «        S )N)ÚnpÚsin)Úxs    úf/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/gaussian_process/tests/test_gpc.pyÚfr      s   € ÝŒ6�!‰9Œ9Ðó    é
   é   )ç       @g      @g      @g      @g      @©ÚdtypegffffffÖ¿é   gffffffÖ?é   ç      ð?Úfixed©Úlength_scaleÚlength_scale_boundsgš™™™™™¹?)r   )çü©ñÒMbP?ç     @�@©g{®Gáz„?ç      Y@c                 ó(   — g | ]}|t           k    ¯|‘ŒS © )Úfixed_kernel)Ú.0Úkernels     r   ú
<listcomp>r)   /   s"   € ÐLÐLÐL °V½|Ò5KÐ5K�VÐ5KÐ5KÐ5Kr   r(   c                 óþ   — t          | ¬¦  «                             t          t          ¦  «        }t	          |                     t          ¦  «        |                     t          ¦  «        d d …df         dk    ¦  «         d S )N©r(   r   ç      à?)r   ÚfitÚXÚyr   ÚpredictÚpredict_proba©r(   Úgpcs     r   Útest_predict_consistentr4   2   sd   € õ $¨6Ð
2Ñ
2Ô
2×
6Ò
6µq½!Ñ
<Ô
<€CÝ�s—{’{¥1‘~”~ s×'8Ò'8½Ñ';Ô';¸A¸A¸A¸q¸DÔ'AÀSÒ'HÑIÔIÐIÐIÐIr   c                  ó*  — g d¢} t          j        g d¢¦  «        }t          d¬¦  «        }t          |¬¦  «                             | |¦  «        }t          |                     | ¦  «        |                     | ¦  «        d d …df         dk    ¦  «         d S )N)ÚAÚABÚB)TFTr   )Úbaseline_similarity_boundsr+   r   r,   )r   Úarrayr
   r   r-   r   r0   r1   )r.   r/   r(   r3   s       r   Ú"test_predict_consistent_structuredr;   9   s“   € àÐÐ€AÝ
ŒÐ$Ð$Ð$Ñ%Ô%€AÝ°gÐ>Ñ>Ô>€FÝ
#¨6Ð
2Ñ
2Ô
2×
6Ò
6°q¸!Ñ
<Ô
<€CÝ�s—{’{ 1‘~”~ s×'8Ò'8¸Ñ';Ô';¸A¸A¸A¸q¸DÔ'AÀSÒ'HÑIÔIÐIÐIÐIr   c                 óÜ   — t          | ¬¦  «                             t          t          ¦  «        }|                     |j        j        ¦  «        |                     | j        ¦  «        k    sJ ‚d S )Nr+   )r   r-   r.   r/   Úlog_marginal_likelihoodÚkernel_Úthetar2   s     r   Útest_lml_improvingr@   B   so   € õ $¨6Ð
2Ñ
2Ô
2×
6Ò
6µq½!Ñ
<Ô
<€CØ×&Ò& s¤{Ô'8Ñ9Ô9¸C×<WÒ<WØŒñ=ô =ò ð ð ð ð ð r   c                 óâ   — t          | ¬¦  «                             t          t          ¦  «        }t	          |                     |j        j        ¦  «        |                     ¦   «         d¦  «         d S )Nr+   é   )r   r-   r.   r/   r   r=   r>   r?   r2   s     r   Útest_lml_precomputedrC   K   sg   € õ $¨6Ð
2Ñ
2Ô
2×
6Ò
6µq½!Ñ
<Ô
<€CÝØ×#Ò# C¤KÔ$5Ñ6Ô6¸×8SÒ8SÑ8UÔ8UÐWXñô ð ð ð r   c                 ó$  — t          | ¬¦  «                             t          t          ¦  «        }t	          j        |j        j        j        t          j	        ¬¦  «        }| 
                    |d¬¦  «         t          |j        j        |d¦  «         d S )Nr+   r   F)Úclone_kernelrB   )r   r-   r.   r/   r   Úonesr>   r?   ÚshapeÚfloat64r=   r   )r(   r3   Úinput_thetas      r   Útest_lml_without_cloning_kernelrJ   T   sx   € õ $¨6Ð
2Ñ
2Ô
2×
6Ò
6µq½!Ñ
<Ô
<€CÝ”'˜#œ+Ô+Ô1½¼ÐDÑDÔD€Kà×Ò ¸%ÐÑ@Ô@Ð@Ý˜œÔ)¨;¸Ñ:Ô:Ð:Ð:Ð:r   c                 ó”  — t          | ¬¦  «                             t          t          ¦  «        }|                     |j        j        d¦  «        \  }}t          j        t          j	        |¦  «        dk     |j        j        |j        j
        d d …df         k    z  |j        j        |j        j
        d d …df         k    z  ¦  «        sJ ‚d S )Nr+   Tç-Cëâ6?r   r   )r   r-   r.   r/   r=   r>   r?   r   ÚallÚabsÚbounds)r(   r3   ÚlmlÚlml_gradients       r   Útest_converged_to_local_maximumrR   ^   sÅ   € õ $¨6Ð
2Ñ
2Ô
2×
6Ò
6µq½!Ñ
<Ô
<€Cà×3Ò3°C´KÔ4EÀtÑLÔLÑ€CˆåŒ6Ý	Œ�Ñ	Ô	 Ò	$ØŒ;Ô ¤Ô 2°1°1°1°a°4Ô 8Ò8ñ	:àŒ;Ô ¤Ô 2°1°1°1°a°4Ô 8Ò8ñ	:ñô ð ð ð ð ð r   c                 óô   ‡— t          | ¬¦  «                             t          t          ¦  «        Š‰                     | j        d¦  «        \  }}t          | j        ˆfd„d¦  «        }t          ||d¦  «         d S )Nr+   Tc                 ó0   •— ‰                      | d¦  «        S )NF)r=   )r?   r3   s    €r   ú<lambda>z#test_lml_gradient.<locals>.<lambda>s   s   ø€  C×$?Ò$?ÀÀuÑ$MÔ$M€ r   g»½×Ùß|Û=é   )r   r-   r.   r/   r=   r?   r   r   )r(   rP   rQ   Úlml_gradient_approxr3   s       @r   Útest_lml_gradientrX   l   s   ø€ õ $¨6Ð
2Ñ
2Ô
2×
6Ò
6µq½!Ñ
<Ô
<€Cà×3Ò3°F´LÀ$ÑGÔGÑ€CˆÝ'ØŒÐMÐMÐMÐMÈuñô Ðõ ˜Ð&9¸1Ñ=Ô=Ð=Ð=Ð=r   c                 ó®  — d\  }}t           j                             | ¦  «        }|                     ||¦  «        dz  dz
  }t          j        |¦  «                             d¬¦  «        t          j        d|z  ¦  «                             d¬¦  «        z   dk    }t          dd¦  «        t          d	g|z  d
g|z  ¬¦  «        z  }t           j         }t          d¦  «        D ]u}t          ||| ¬¦  «                             ||¦  «        }	|	                     |	j        j        ¦  «        }
|
|t          j        t           j        ¦  «        j        z
  k    sJ ‚|
}Œvd S )N)é   r   r   r   )ÚaxisrV   r   r   r"   r    )rL   r#   r   é   )r(   Ún_restarts_optimizerÚrandom_state)r   ÚrandomÚRandomStateÚrandnr   ÚsumÚCr   ÚinfÚranger   r-   r=   r>   r?   ÚfinfoÚfloat32Úeps)Úglobal_random_seedÚ	n_samplesÚ
n_featuresÚrngr.   r/   r(   Úlast_lmlr]   ÚgprP   s              r   Útest_random_startsro   y   s[  € ð "Ñ€IˆzÝ
Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ�	Š	�)˜ZÑ(Ô(¨1Ñ,¨qÑ0€AÝ	Œ�‰Œ�Š˜AˆÑ	Ô	¥¤¨¨A©¡¤×!2Ò!2¸Ð!2Ñ!:Ô!:Ñ	:¸aÒ?€Aåˆs�KÑ Ô ¥3Ø�V˜jÑ(¸{¸mÈjÑ>Xð$ñ $ô $ñ €Fõ ”ˆw€HÝ % a¡¤ð ð ÐÝ&ØØ!5Ø+ð
ñ 
ô 
÷ Š#ˆa�‰)Œ)ð	 	ð
 ×(Ò(¨¬Ô)9Ñ:Ô:ˆØ�X¥¤­¬Ñ 4Ô 4Ô 8Ñ8Ò8Ð8Ð8Ð8Øˆˆðð r   c                 óî   ‡— ˆfd„}t          | |¬¦  «        }|                     t          t          ¦  «         |                     |j        j        ¦  «        |                     | j        ¦  «        k    sJ ‚d S )Nc                 ó~  •— t           j                             ‰	¦  «        }| | |d¬¦  «        }}t          d¦  «        D ]{}t          j        |                     t          j        d|d d …df         ¦  «        t          j        d|d d …df         ¦  «        ¦  «        ¦  «        } | |d¬¦  «        }||k     r||}}Œ|||fS )NF)Úeval_gradientr   éþÿÿÿr   r   )r   r_   r`   re   Ú
atleast_1dÚuniformÚmaximumÚminimum)
Úobj_funcÚinitial_thetarO   rl   Ú	theta_optÚfunc_minÚ_r?   r   ri   s
            €r   Ú	optimizerz(test_custom_optimizer.<locals>.optimizer”   sÖ   ø€ ÝŒi×#Ò#Ð$6Ñ7Ô7ˆØ+¨X¨XØ¨ð.
ñ .
ô .
�8ˆ	õ �r‘”ð 	/ð 	/ˆAÝ”MØ—’�BœJ r¨6°!°!°!°Q°$¬<Ñ8Ô8½"¼*ÀQÈÈqÈqÈqÐRSÈtÌÑ:UÔ:UÑVÔVñô ˆEð �˜¨eÐ4Ñ4Ô4ˆAØ�8Š|ˆ|Ø&+¨Q˜8�	øØ˜(Ð"Ð"r   )r(   r}   )r   r-   r.   Úy_mcr=   r>   r?   )r(   ri   r}   r3   s    `  r   Útest_custom_optimizerr   �   s�   ø€ ð#ð #ð #ð #ð #õ $¨6¸YÐ
GÑ
GÔ
G€CØ‡G‚G�A�tÑÔÐà×&Ò&ØŒÔñô à	×	$Ò	$ V¤\Ñ	2Ô	2ò3ð 3ð 3ð 3ð 3ð 3r   c                 óZ  — t          | ¬¦  «        }|                     t          t          ¦  «         |                     t
          ¦  «        }t          |                     d¦  «        d¦  «         |                     t
          ¦  «        }t          t          j        |d¦  «        |¦  «         d S )Nr+   r   )r   r-   r.   r~   r1   ÚX2r   rb   r0   r   r   Úargmax)r(   r3   Úy_probÚy_preds       r   Útest_multi_classr…   ª   s†   € õ $¨6Ð
2Ñ
2Ô
2€CØ‡G‚G�A�tÑÔÐà×Ò�rÑ"Ô"€FÝ˜Ÿ
š
 1™œ qÑ)Ô)Ð)à�[Š[�‰_Œ_€FÝ•r”y ¨Ñ+Ô+¨VÑ4Ô4Ð4Ð4Ð4r   c                 óP  — t          | ¬¦  «        }|                     t          t          ¦  «         t          | d¬¦  «        }|                     t          t          ¦  «         |                     t
          ¦  «        }|                     t
          ¦  «        }t          ||¦  «         d S )Nr+   r   )r(   Ún_jobs)r   r-   r.   r~   r1   r�   r   )r(   r3   Úgpc_2rƒ   Úy_prob_2s        r   Útest_multi_class_n_jobsrŠ   ·   sŠ   € õ $¨6Ð
2Ñ
2Ô
2€CØ‡G‚G�A�tÑÔÐå%¨V¸AÐ>Ñ>Ô>€EØ	‡I‚I�a•ÑÔÐà×Ò�rÑ"Ô"€FØ×"Ò"¥2Ñ&Ô&€HÝ˜ Ñ)Ô)Ð)Ð)Ð)r   c                  ó°  — t          ddg¬¦  «        } t          | ¬¦  «        }d}t          j        t          |¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddg¬¦  «        t          dd	g¬¦  «        z   }t          |¬¦  «        }t          j
        d
¬¦  «        5 }t          j        d¦  «         |                     t          t          ¦  «         t          |¦  «        dk    sJ ‚t          |d         j        t          ¦  «        sJ ‚|d         j        j        d         dk    sJ ‚t          |d         j        t          ¦  «        sJ ‚|d         j        j        d         dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t#          j        t          d¦  «        }t          ddgddg¬¦  «        }t          |¬¦  «        }t          j
        d
¬¦  «        5 }t          j        d¦  «         |                     |t          ¦  «         t          |¦  «        dk    sJ ‚t          |d         j        t          ¦  «        sJ ‚|d         j        j        d         dk    sJ ‚t          |d         j        t          ¦  «        sJ ‚|d         j        j        d         dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Ngñhãˆµøä>r    )r   r+   z²The optimal value found for dimension 0 of parameter length_scale is close to the specified upper bound 0.001. Increasing the bound and calling fit again may find a better value.©Úmatch)Únoise_level_boundsr!   g     jø@T)ÚrecordÚalwaysr   r   zµThe optimal value found for dimension 0 of parameter k1__noise_level is close to the specified upper bound 0.001. Increasing the bound and calling fit again may find a better value.r   z·The optimal value found for dimension 0 of parameter k2__length_scale is close to the specified lower bound 1000.0. Decreasing the bound and calling fit again may find a better value.r   r   g      $@r#   r   z²The optimal value found for dimension 0 of parameter length_scale is close to the specified upper bound 100.0. Increasing the bound and calling fit again may find a better value.z²The optimal value found for dimension 1 of parameter length_scale is close to the specified upper bound 100.0. Increasing the bound and calling fit again may find a better value.)r   r   ÚpytestÚwarnsr   r-   r.   r/   r   ÚwarningsÚcatch_warningsÚsimplefilterÚlenÚ
issubclassÚcategoryÚmessageÚargsr   Útile)	r(   r3   Úwarning_messageÚ
kernel_sumÚgpc_sumr�   ÚX_tileÚkernel_dimsÚgpc_dimss	            r   Útest_warning_boundsr¢   Å   s¶  € Ý d¨D \Ð2Ñ2Ô2€FÝ
#¨6Ð
2Ñ
2Ô
2€Cð	ð õ 
ŒÕ(°Ð	@Ñ	@Ô	@ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ °°t°Ð=Ñ=Ô=ÅØ  #˜JðAñ Aô Añ €Jõ (¨zÐ:Ñ:Ô:€GÝ	Ô	 ¨Ð	-Ñ	-Ô	-ð 
°ÝÔ˜hÑ'Ô'Ð'Ø�Š•A•qÑÔÐå�6‰{Œ{˜aÒÐÐÐå˜& œ)Ô,Õ.@ÑAÔAÐAÐAÐAà�1ŒIÔÔ" 1Ô%ð *1ò 1ð 1ð 1ð 1õ ˜& œ)Ô,Õ.@ÑAÔAÐAÐAÐAà�1ŒIÔÔ" 1Ô%ð *1ò 1ð 1ð 1ð 1ð 1ð%
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ4 ŒW•Q˜‰]Œ]€FÝ C¨ :ÀCÈÀ:ÐNÑNÔN€KÝ(°Ð<Ñ<Ô<€Hå	Ô	 ¨Ð	-Ñ	-Ô	-ð 
°ÝÔ˜hÑ'Ô'Ð'Ø�Š�V�QÑÔÐå�6‰{Œ{˜aÒÐÐÐå˜& œ)Ô,Õ.@ÑAÔAÐAÐAÐAà�1ŒIÔÔ" 1Ô%ð *1ò 1ð 1ð 1ð 1õ ˜& œ)Ô,Õ.@ÑAÔAÐAÐAÐAà�1ŒIÔÔ" 1Ô%ð *1ò 1ð 1ð 1ð 1ð 1ð%
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s8   Á !A-Á-A1Á4A1ÃC
FÆFÆ FÇ8CKËKËKzparams, error_type, err_msgz!kernel cannot be a CompoundKernelc                 ó¼   — t          di | ¤Ž}t          j        ||¬¦  «        5  |                     t          t
          ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z0Check that expected error are raised during fit.rŒ   Nr%   )r   r‘   Úraisesr-   r.   r/   )ÚparamsÚ
error_typeÚerr_msgr3   s       r   Útest_gpc_fit_errorr¨     s¡   € õ $Ð
-Ð
- fÐ
-Ð
-€CÝ	Œ�z¨Ð	1Ñ	1Ô	1ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   £!AÁAÁA)7Ú__doc__r“   Únumpyr   r‘   Úscipy.optimizer   Úsklearn.exceptionsr   Úsklearn.gaussian_processr   Ú sklearn.gaussian_process.kernelsr   r   r   r	   rc   Ú4sklearn.gaussian_process.tests._mini_sequence_kernelr
   Úsklearn.utils._testingr   r   r   Ú
atleast_2dÚlinspaceÚTr.   r�   r:   ÚravelÚintr/   ÚfXÚemptyrG   r~   r&   ÚkernelsÚnon_fixed_kernelsÚmarkÚparametrizer4   r;   r@   rC   rJ   rR   rX   ro   r   r…   rŠ   r¢   Ú
ValueErrorr¨   r%   r   r   ú<module>r½      sm  ðØ 1Ð 1ð
 €€€à Ð Ð Ð Ø €€€Ø (Ð (Ð (Ð (Ð (Ð (à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø >Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð OÐ NÐ NÐ NÐ NÐ NØ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jðð ð ð €B„M�+�"”+˜a  RÑ(Ô(Ñ)Ô)Ô+€Ø€R„]Ð,Ð,Ð,Ñ-Ô-Ô/€Ø€B„HˆQˆQˆq‰TŒT�ZŠZ‰\Œ\˜AÒ SÐ)Ñ)Ô)€Ø€Q€q�T„T‡Z‚Z�\„\€Ø€r„x�”˜sÐ#Ñ#Ô#€Ø€€Rˆ%‚ZÑ Ø$%€€bˆE‚k�b˜4’iÑ Ñ !Ø€€Rˆ$‚Y�ð ˆs ¸ÐAÑAÔA€à€C�SÐÑÔØØ€C�S¨kÐ:Ñ:Ô:Ø€A€cˆ;ÑÔ˜#˜#¨3ÀKÐPÑPÔPÑPð	€ð MÐL¨'ÐLÑLÔLÐ ð „×Ò˜ 7Ñ+Ô+ðJð Jñ ,Ô+ðJðJð Jð Jð „×Ò˜Ð#4Ñ5Ô5ðð ñ 6Ô5ðð „×Ò˜ 7Ñ+Ô+ðð ñ ,Ô+ðð „×Ò˜ 7Ñ+Ô+ð;ð ;ñ ,Ô+ð;ð „×Ò˜Ð#4Ñ5Ô5ð
ð 
ñ 6Ô5ð
ð „×Ò˜ 7Ñ+Ô+ð	>ð 	>ñ ,Ô+ð	>ðð ð ð. „×Ò˜Ð#4Ñ5Ô5ð3ð 3ñ 6Ô5ð3ð2 „×Ò˜ 7Ñ+Ô+ð	5ð 	5ñ ,Ô+ð	5ð „×Ò˜ 7Ñ+Ô+ð
*ð 
*ñ ,Ô+ð
*ðF
ð F
ð F
ðR „×ÒØ!ð �~�~ aÑ(Ô(Ð)ØØ/ð	
ðñ	ô 	ðð ñ	ô 	ðð ð r   