Ë
    ÷Q(hœ8  ã                   ó\  — d Z ddlmZ ddlZddlZddlmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZ ddlmZmZmZ ddlmZmZmZmZ ej<                  j?                  d«      jA                  ddd	«      Z!ej<                  j?                  d«      jA                  ddd
«      Z"de!jF                  _$        de"jF                  _$         e	d¬«       ed¬«      z   Z% e	d¬«       e	d¬«       ed¬«      d e	dd¬«      z  d e	d¬«      z  e%d e	ddg¬«      z  d edd¬«      z  d edd¬«      z  d edd¬«      z  d edd¬«      z  d eddgd¬«      z  d eddgd¬«      z  d eddgd¬«      z   edd¬«       edd¬«       ed¬«       ed¬«      dz   e	dg¬«       edg¬«      gZ&eD ]   Z'e'd v rŒe&jQ                   ed!e'¬"«      «       Œ" ejR                  jU                  d#e&«      d$„ «       Z+ejR                  jU                  d#e&D � cg c]  }  e,| eef«      s| ‘Œ c} «      d%„ «       Z-ejR                  jU                  d#e&D � cg c]	  } | e%k7  r| ‘Œ c} «      d&„ «       Z.ejR                  jU                  d#e&«      d'„ «       Z/d(„ Z0d)„ Z1ejR                  jU                  d#e&D � cg c]  } | je                  «       sŒ| ‘Œ c} «      d*„ «       Z3ejR                  jU                  d#e&«      d+„ «       Z4d,„ Z5d-„ Z6ejR                  jU                  d#e&«      d.„ «       Z7ejR                  jU                  d#e&«      d/„ «       Z8d0„ Z9ejR                  jU                  d#e&«      d1„ «       Z:ejR                  jU                  d#e&«      d2„ «       Z;ejR                  jU                  d#e&«      d3„ «       Z<d4„ Z=yc c} w c c} w c c} w )5z+Testing for kernels for Gaussian processes.é    )Ú	signatureN)Úclone)ÚRBFÚCompoundKernelÚConstantKernelÚ
DotProductÚExponentiationÚExpSineSquaredÚKernelOperatorÚMaternÚPairwiseKernelÚRationalQuadraticÚWhiteKernelÚ_approx_fprime)ÚPAIRWISE_KERNEL_FUNCTIONSÚeuclidean_distancesÚpairwise_kernels)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalé   )é   é   )é   r   Fç       @©Úlength_scaleç      @©Únoise_level)ç      à?r   )Úlength_scale_boundsg      $@)Úconstant_valueg…ëQ¸Õ?Úfixed)r   r#   r"   )r   Únuç      ø?ç      @ç      @)r   Úalpha)r   Úperiodicity)Úsigma_0r   )Úadditive_chi2Úchi2ç      ð?)ÚgammaÚmetricÚkernelc                 óz  ‡ — t        ‰ «      Š  ‰ t        d¬«      \  }}|j                  d   t        j                  d   k(  sJ ‚|j                  d   t        j                  d   k(  sJ ‚|j                  d   ‰ j                  j                  d   k(  sJ ‚ˆ fd„}t	        ‰ j                  |d«      }t        ||d«       y )	NT©Úeval_gradientr   r   r   c                 óF   •— ‰j                  | «      } |t        d¬«      }|S )NFr4   )Úclone_with_thetaÚX)ÚthetaÚkernel_cloneÚKr2   s      €úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/gaussian_process/tests/test_kernels.pyÚeval_kernel_for_thetaz3test_kernel_gradient.<locals>.eval_kernel_for_thetaT   s$   ø€ Ø×.Ñ.¨uÓ5ˆÙœ¨%Ô0ˆØˆó    ç»½×Ùß|Û=é   )r   r8   Úshaper9   r   r   )r2   r;   Ú
K_gradientr=   ÚK_gradient_approxs   `    r<   Útest_kernel_gradientrD   J   s°   ø€ ô �6‹]€FÙœ1¨DÔ1�M€A€zà×Ñ˜AÑ¤!§'¡'¨!¡*Ò,Ð,Ð,Ø×Ñ˜AÑ¤!§'¡'¨!¡*Ò,Ð,Ð,Ø×Ñ˜AÑ &§,¡,×"4Ñ"4°QÑ"7Ò7Ð7Ð7ôô
 ' v§|¡|Ð5JÈEÓRÐä˜
Ð$5°qÕ9r>   c                 óþ  — t        | «      } | j                  } | t        d¬«      \  }}t        | j                  j
                  «      j                  j                  «       }|D �cg c]  }|j                  dk7  sŒ|j                  ‘Œ  }}t        d„ t        d„ |«      «      }t        d„ | j                  D «       «      t        |«      k(  sJ ‚t        | j                  «      D ]6  \  }}	||   t        j                  t!        | |	j                  «      «      k(  rŒ6J ‚ t        | j                  «      D �](  \  }}	| j#                  «       }
d|
|	j                  dz   <   | j                  } |di |
¤Ž} |t        d¬«      \  }}|j$                  d	   |j                  j$                  d	   d
z   k(  sJ ‚|j$                  d   |j$                  d   d
z   k(  sJ ‚|d	kD  r1|d | |j                  d | k(  sJ ‚t'        |dd |…f   |dd |…f   «       |d
z   t)        | j                  «      k  sŒò||d
z   d  |j                  |d  k(  sJ ‚t'        |d|d
z   d …f   |d|d …f   «       �Œ+ t        | j                  «      D ]‡  \  }}	t        j                  d«      ||<   || _        t+        t!        | |	j                  «      d«       t-        | |	j                  d«       t+        | j                  |   t        j                  d«      «       Œ‰ y c c}w )NTr4   Úselfc                 ó    — | dt        d«        S )Nr   Ú_bounds)Úlen©Úss    r<   ú<lambda>z#test_kernel_theta.<locals>.<lambda>q   s   € �!�Aœ˜Y›˜Ð(€ r>   c                 ó$   — | j                  d«      S )NrH   )ÚendswithrJ   s    r<   rL   z#test_kernel_theta.<locals>.<lambda>q   s   € ¸1¿:¹:ÀiÓ;P€ r>   c              3   ó4   K  — | ]  }|j                   –— Œ y ­w©N)Úname)Ú.0Úhyperparameters     r<   ú	<genexpr>z$test_kernel_theta.<locals>.<genexpr>s   s   è ø€ ÒP ~ˆ~×"Õ"ÑPùs   ‚r%   rH   r   r   r   .é*   é+   © )r   r9   r8   r   Ú	__class__Ú__init__Ú
parametersÚvaluesrQ   ÚmapÚfilterÚsetÚhyperparametersÚ	enumerateÚnpÚlogÚgetattrÚ
get_paramsrA   r   rI   r   Úsetattr)r2   r9   Ú_rB   Ú	init_signÚpÚargsÚ
theta_varsÚirS   ÚparamsÚkernel_classÚ
new_kernelÚK_gradient_news                 r<   Útest_kernel_thetarp   ^   s÷  € ô �6‹]€FØ�L‰L€EÙœ1¨DÔ1�M€A€zô ˜&×*Ñ*×3Ñ3Ó4×?Ñ?×FÑFÓH€IØ%Ö:�q¨¯©°6Ó)9ˆA�F‹FÐ:€DÐ:ÜÙ(¬&Ñ1PÐRVÓ*Wó€Jô ÑP¸×9OÑ9OÔPÓPÔTWØóUò ð ð ô ' v×'=Ñ'=Ó>ò HÑˆˆ>Ø�Q‰xœ2Ÿ6™6¤'¨&°.×2EÑ2EÓ"FÓGÓGÐGÐGðHô ' v×'=Ñ'=Ó>ó RÑˆˆ>à×"Ñ"Ó$ˆØ29ˆˆ~×"Ñ" YÑ.Ñ/Ø×'Ñ'ˆÙ!Ñ+ FÑ+ˆ
ñ '¤q¸Ô=Ñˆˆ>Ø�{‰{˜1‰~ ×!1Ñ!1×!7Ñ!7¸Ñ!:¸QÑ!>Ò>Ð>Ð>Ø×Ñ Ñ" n×&:Ñ&:¸1Ñ&=ÀÑ&AÒAÐAÐAØˆqŠ5Ø˜˜!�9 
× 0Ñ 0°°!Ð 4Ò4Ð4Ð4Ü˜z¨#¨r°¨r¨'Ñ2°NÀ3ÈÈÈÀ7Ñ4KÔLØˆq‰5”3�v×-Ñ-Ó.Ó.Ø˜˜Q™˜�> Z×%5Ñ%5°a°bÐ%9Ò9Ð9Ð9Ü˜z¨#¨q°1©u©w¨,Ñ7¸ÈÈQÉRÈÑ9PÖQð!Rô& ' v×'=Ñ'=Ó>ò 9Ñˆˆ>Ü—6‘6˜"“:ˆˆa‰ØˆŒÜœG F¨N×,?Ñ,?Ó@À"ÔEä�˜×+Ñ+¨RÔ0Ü˜FŸL™L¨™O¬R¯V©V°B«ZÕ8ñ9ùòC ;s   Á$K:Á9K:c                 ón   — t        | «      }  | t        «      } | t        t        «      }t        ||d«       y ©Nr   )r   r8   r   )r2   ÚK_autoÚK_crosss      r<   Útest_auto_vs_crossru   ™   s-   € ô �6‹]€Fá”A‹Y€FÙ”Qœ‹l€GÜ˜ ¨Õ+r>   c                 óœ   — t        | «      } t        j                   | t        «      «      }| j                  t        «      }t	        ||d«       y rr   )r   ra   Údiagr8   r   )r2   ÚK_call_diagÚK_diags      r<   Útest_kernel_diagrz   ª   s6   € ä�6‹]€Fä—'‘'™&¤›)Ó$€KØ�[‰[œ‹^€FÜ˜ V¨QÕ/r>   c                  óä   — t         t        d«      dz   t        «       dt        d«      z   t        «      «       t         dt        d«      z  t        «       t        d«      dz  t        «      «       y )Nr   r/   r   )r   r   r8   rW   r>   r<   Ú test_kernel_operator_commutativer|   ³   sV   € ô ˜œ˜S› C™¬Ó+¨n¨c´C¸³H©n¼aÓ-@ÔAô ˜˜œs 3›x™¬Ó+¨n¬c°#«h¸©n¼aÓ-@ÕAr>   c                  ó8  — dt        ddg«      z  }  | t        «      }t        j                  «       }|d d …dfxx   dz  cc<   d t        d«      |«      z  }t        ||«       t        j                  «       }|d d …dfxx   dz  cc<   d t        d«      |«      z  }t        ||«       | j                  t        j                  d«      z   | _        t        | j                  t        j                  g d¢«      «       t        | j                  j                  d	d
g«       y )Nr   r"   r   r   r@   r   r   )g      @r/   r)   r/   r)   )
r   r8   Úcopyr   r9   ra   rb   r   Úk2r   )r2   r;   ÚX1ÚK1ÚX2ÚK2s         r<   Útest_kernel_anisotropicr„   ¼   sÚ   € à”3˜˜S�z“?Ñ"€FáŒq‹	€AÜ	
�‰‹€BØ‚qˆ!€tƒH��MƒHØ	ˆxŒs�3‹x˜‹|Ñ	€BÜ˜˜2Ôä	
�‰‹€BØ‚qˆ!€tƒH��MƒHØ	ˆxŒs�3‹x˜‹|Ñ	€BÜ˜˜2Ôð —<‘<¤"§&¡&¨£)Ñ+€F„LÜ�v—|‘|¤R§V¡VªOÓ%<Ô=Ü�v—y‘y×-Ñ-°°S¨zÕ:r>   c                 ó†   — t        | «      }  | t        t        dz   «      }t        |d   t        j                  |«      «       y )Nr   )r   r   )r   r8   r   ra   rw   )r2   r;   s     r<   Útest_kernel_stationaryr†   Ñ   s3   € ô �6‹]€FáŒq”!�a‘%Ó€AÜ˜˜$™¤§¡¨£Õ,r>   c                 ó   — t        | «      } t        | t        «      r%| j                  | j                  j                  k(  sJ ‚t        | t
        «      r>| j                  | j                  j                  xs | j                  j                  k(  sJ ‚y y rP   )r   Ú
isinstancer	   Úrequires_vector_inputr2   r   Úk1r   ©r2   s    r<   Útest_kernel_input_typerŒ   Û   sv   € ä�6‹]€Fä�&œ.Ô)Ø×+Ñ+¨v¯}©}×/RÑ/RÒRÐRÐRÜ�&œ.Ô)Ø×+Ñ+Ø�I‰I×+Ñ+ÒN¨v¯y©y×/NÑ/Nò
ð 	
ñ 
ð *r>   c                  óª   — t        t        d¬«      g«      } | j                  rJ ‚t        t        d¬«      t        d¬«      g«      } | j                  sJ ‚y )Nr   r    r   r   )r   r   r‰   r   r‹   s    r<   Útest_compound_kernel_input_typerŽ   ç   sK   € Üœ[°SÔ9Ð:Ó;€FØ×+Ò+Ð+Ð+äœ[°SÔ9¼3ÈCÔ;PÐQÓR€FØ×'Ò'Ð'Ñ'r>   c                 ó°   — t        t        | «      t        |«      z   «      D ]3  }|j                  d«      sŒt        | |«      }t        ||«      }||k(  rŒ3J ‚ y )NÚhyperparameter_)r^   ÚdirÚ
startswithrc   )Úkernel1Úkernel2ÚattrÚattr_value1Úattr_value2s        r<   Úcheck_hyperparameters_equalr˜   ï   sV   € ä”C˜“L¤3 w£<Ñ/Ó0ò .ˆØ�?‰?Ð,Õ-Ü! '¨4Ó0ˆKÜ! '¨4Ó0ˆKØ +Ó-Ð-Ð-ñ	.r>   c                 óÎ   — t        | «      } t        | «      }| |k(  sJ ‚t        | «      t        |«      k7  sJ ‚| j                  «       |j                  «       k(  sJ ‚t        | |«       y rP   )r   Úidrd   r˜   )r2   Úkernel_cloneds     r<   Útest_kernel_clonerœ   ø   si   € ä�6‹]€Fä˜&“M€Mð �]Ò"Ð"Ð"Üˆf‹:œ˜MÓ*Ò*Ð*Ð*ð ×ÑÓ -×":Ñ":Ó"<Ò<Ð<Ð<ô   ¨Õ6r>   c                 óÌ  — t        | «      } d}t        | «      }| j                  «       }t        t        f}d|v r¬t	        | |«      sŸ|d   }t        j                  |«      r|d   |d<   ||d<   n|gdz  |d<   |dz  |d<    |j                  di |¤Ž t        |«      }|j                  «       |j                  «       k(  sJ ‚t        |«      t        |«      k7  sJ ‚t        ||«       y y y )N)gñhãˆµøä>g     jø@r   r   r#   r   rW   )
r   rd   r
   r   rˆ   ra   ÚiterableÚ
set_paramsrš   r˜   )r2   Úboundsr›   rl   Úisotropic_kernelsr   Úkernel_cloned_clones          r<   Ú"test_kernel_clone_after_set_paramsr£   
  s  € ä�6‹]€Fð €FÜ˜&“M€MØ×ÑÓ €Fä'Ô):Ð;ÐØ˜Ñ¬
°6Ð;LÔ(MØ˜nÑ-ˆÜ�;‰;�|Ô$à%1°!¡_ˆF�>Ñ"Ø,2ˆFÐ(Ò)à&2 ^°aÑ%7ˆF�>Ñ"Ø,2°Q©JˆFÐ(Ñ)Ø ˆ× Ñ Ñ* 6Ò*Ü# MÓ2ÐØ"×-Ñ-Ó/°=×3KÑ3KÓ3MÒMÐMÐMÜÐ%Ó&¬"¨]Ó*;Ò;Ð;Ð;Ü# MÐ3FÕGð )NÐr>   c                  óþ  —  t        dd¬«      t        «      } t        t        j                  | «      t        j
                  t        j                  d   «      «       t        j                  t        t        t        d¬«       «      } t        dd¬«      t        «      } t        | |«        t        d¬«      t        «      } t        t        j                  d¬«      t        «      } t        | |«       t        | |«       d	}d
D ]?  } t        |d¬«      t        «      } t        ||z   d¬«      t        «      }t        ||«       ŒA d} t        |d¬«      t        «      } t        d¬«      t        «      }t        ||d¬«       y )Nr'   r/   )r&   r   r   F)Úsquaredr"   r   r?   )r"   r'   r(   éd   r   )Údecimal)r   r8   r   ra   rw   ÚonesrA   Úexpr   r   Úinfr   )r;   ÚK_absexpÚK_rbfÚtinyr&   r�   rƒ   Úlarges           r<   Útest_matern_kernelr¯   (  s-  € à(Œ�# CÔ(¬Ó+€AäœbŸg™g a›j¬"¯'©'´!·'±'¸!±*Ó*=Ô>ä�v‰vÔ*¬1¬a¸Ô?Ð?Ó@€HØ(Œ�# CÔ(¬Ó+€AÜ˜a Ô*à!ŒC˜SÔ!¤!Ó$€EØ+Œ”"—&‘& sÔ+¬AÓ.€AÜ˜a Ô'Ü�A�uÔð €DØò *ˆØ,ŒV�r¨Ô,¬QÓ/ˆØ3ŒV�r˜D‘y¨sÔ3´AÓ6ˆÜ! " bÕ)ð*ð
 €EØ	+Œ�5 sÔ	+¬AÓ	.€BØ	Œ˜#Ô	œqÓ	!€BÜ˜b "¨aÖ0r>   c                 óä   — t        | «      } | t        k7  r) | t        «      }t        t        | ¬«      }t	        ||«        | t        t
        «      }t        t        t
        | ¬«      }t	        ||«       y )N)r1   )r   Úkernel_rbf_plus_whiter8   r   r   ÚY)r2   r�   rƒ   s      r<   Útest_kernel_versus_pairwiser³   E  s\   € ä�6‹]€Fð Ô&Ò&ñ ”A‹YˆÜœa¨Ô/ˆÜ! " bÔ)ñ 
””1‹€BÜ	œ!œQ vÔ	.€BÜ˜b "Õ%r>   c           	      óÞ  — t        | «      } d}| j                  «       }| j                  D ]Â  }t        dt	        |j
                  «      «      r|j
                  dk(  rŒ2|j                  }|dkD  rBt        t        j                  | j                  |||z    «      ||j                     «       ||z  }Œ…t        t        j                  | j                  |   «      ||j                     «       |dz  }ŒÄ d}d}| j                  D ]ì  }t        dt	        |j
                  «      «      r|j
                  dk(  rŒ2|j                  }|dkD  r[ | j                  di |j                  |g|z  i¤Ž t        t        j                  | j                  |||z    «      |g|z  «       ||z  }Œž | j                  di |j                  |i¤Ž t        t        j                  | j                  |   «      |«       |dz  }Œî y )Nr   Ústringr%   r   é
   rW   )r   rd   r_   rˆ   Útyper    Ú
n_elementsr   ra   r©   r9   rQ   rŸ   )r2   Úindexrl   rS   ÚsizeÚvalues         r<   Útest_set_get_paramsr¼   X  sÓ  € ä�6‹]€Fð €EØ×ÑÓ €FØ ×0Ñ0ò ˆÜ�h¤ ^×%:Ñ%:Ó ;Ô<Ø×$Ñ$¨Ò/ØØ×(Ñ(ˆØ�!Š8ÜÜ—‘�v—|‘| E¨E°D©LÐ9Ó:¸FÀ>×CVÑCVÑ<Wôð �T‰M‰EäÜ—‘�v—|‘| EÑ*Ó+¨V°N×4GÑ4GÑ-Hôð �Q‰J‰Eðð  €EØ€EØ ×0Ñ0ò ˆÜ�h¤ ^×%:Ñ%:Ó ;Ô<Ø×$Ñ$¨Ò/ØØ×(Ñ(ˆØ�!Š8ØˆF×ÑÑF ×!4Ñ!4°u°gÀ±nÐ EÒFÜÜ—‘�v—|‘| E¨E°D©LÐ9Ó:¸U¸GÀd¹Nôð �T‰M‰EàˆF×ÑÑ= ×!4Ñ!4°eÐ <Ò=Ü¤§¡ v§|¡|°EÑ':Ó ;¸UÔCØ�Q‰J‰Eñr>   c                 ó0   — t        | «      } t        | «       y rP   )r   Úreprr‹   s    r<   Útest_repr_kernelsr¿   ƒ  s   € ä�6‹]€Fô 	ˆ…Lr>   c                  óœ   — t        ddg¬«      } d}t        j                  t        |¬«      5   | t        «       d d d «       y # 1 sw Y   y xY w)Nr/   r   zeRationalQuadratic kernel only supports isotropic version, please use a single scalar for length_scale)Úmatch)r   ÚpytestÚraisesÚAttributeErrorr8   )r2   Úmessages     r<   Útest_rational_quadratic_kernelrÆ   ‹  sF   € Ü¨S°#¨JÔ7€Fð	"ð ô
 
�‰”~¨WÔ	5ñ ÙŒqŒ	÷÷ ñ ús   ¬AÁA)>Ú__doc__Úinspectr   Únumpyra   rÂ   Úsklearn.baser   Ú sklearn.gaussian_process.kernelsr   r   r   r   r	   r
   r   r   r   r   r   r   Úsklearn.metrics.pairwiser   r   r   Úsklearn.utils._testingr   r   r   r   ÚrandomÚRandomStateÚnormalr8   r²   ÚflagsÚ	writeabler±   Úkernelsr1   ÚappendÚmarkÚparametrizerD   rˆ   rp   ru   rz   r|   r„   Úis_stationaryr†   rŒ   rŽ   r˜   rœ   r£   r¯   r³   r¼   r¿   rÆ   r‹   s   0r<   ú<module>rØ      s  ðÙ 1õ
 ã Û å ÷÷ ÷ ó ÷ñ ÷
ó ð ‡I�I×Ñ˜!Ó×#Ñ# A q¨&Ó1€Ø‡I�I×Ñ˜!Ó×#Ñ# A q¨&Ó1€ð €‡�Ô Ø€‡�Ô á¨Ô-±ÈÔ0LÑLÐ á�SÔÙ˜JÔ'Ù $Ô'Ø‰#˜4°WÔ
=Ñ=Ø‰#˜3Ô
ÑØØ‰#˜C ˜:Ô
&Ñ&Ø‰&˜d¸Ô
@Ñ@Ø‰&˜c cÔ
*Ñ*Ø‰&˜c cÔ
*Ñ*Ø‰&˜c cÔ
*Ñ*Ø‰&˜s C˜j¨SÔ
1Ñ1Ø‰&˜s C˜j¨SÔ
1Ñ1Ø‰&˜s C˜j¨SÔ
1Ñ1Ù 3¨cÔ2Ù °Ô5Ù�sÔÙ�sÔ˜qÑ Ù�c�UÔÙ
˜˜Ôð)€ð, (ò =€FØÐ*Ñ*ØØ‡N�N‘>¨°FÔ;Õ<ð=ð ‡�×Ñ˜ 7Ó+ñ:ó ,ð:ð& ‡�×ÑØð öàá˜6 N°NÐ#CÔDò 	òóñ/9óð/9ðd ‡�×ÑØð öààÐ*Ò*ò 	òóñ,óð,ð ‡�×Ñ˜ 7Ó+ñ0ó ,ð0òBò;ð* ‡�×ÑØ GÖF˜&¨v×/CÑ/CÕ/EŠvÒFóñ-óð-ð ‡�×Ñ˜ 7Ó+ñ
ó ,ð
ò(ò.ð ‡�×Ñ˜ 7Ó+ñ7ó ,ð7ð" ‡�×Ñ˜ 7Ó+ñHó ,ðHò:1ð: ‡�×Ñ˜ 7Ó+ñ&ó ,ð&ð$ ‡�×Ñ˜ 7Ó+ñ'ó ,ð'ðT ‡�×Ñ˜ 7Ó+ñó ,ðóùòW	ùòvùòn Gs   ÈN
ÉN$
ÊN)
Ê5N)
