Ë
    8Ò^j¡&  ã                   óâ  — 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 ddlmZ ddlmZ dd	lmZ dd
lmZmZmZ dZdez   Zej4                  ddifej4                  dddœfej4                  dd„ ifej6                  ddifej6                  dddœfej6                  dd„ ifgZeD � �cg c]  \  } }| ej4                  k(  r| |f‘Œ c}} Zej<                  j?                  de«      d„ «       Z ej<                  j?                  de«      d„ «       Z!ej<                  j?                  de«      d„ «       Z"ej<                  j?                  de«      d„ «       Z#ej<                  j?                  dg d¢«      ej<                  j?                  de«      d„ «       «       Z$d„ Z%ej<                  j?                  de«      ej<                  j?                  dejL                  ejN                  g«      ej<                  j?                  dejP                  ejR                  g«      ej<                  j?                  de«      d „ «       «       «       «       Z*ej<                  j?                  d!e«      ej<                  j?                  de«      d"„ «       «       Z+ej<                  j?                  d#e«      d$„ «       Z,d%„ Z-ej<                  j?                  d&ej6                  ej4                  g«      d'„ «       Z.d(„ Z/yc c}} w ))z!test the label propagation moduleé    N)Úissparse)Úmake_classification)ÚConvergenceWarning©Ú
rbf_kernel)Útrain_test_split)ÚNearestNeighbors)Ú_label_propagation)Ú_convert_containerÚassert_allcloseÚassert_array_equal)Ú
sparse_csrÚ
sparse_cscÚsparse_csr_arrayÚsparse_csc_array)ÚarrayÚkernelÚrbfÚknné   )r   Ún_neighborsc                 ó   — t        | |d¬«      S ©Né   ©Úgammar   ©ÚxÚys     ú/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/semi_supervised/tests/test_label_propagation.pyú<lambda>r!      ó   € ¤
¨1¨a°rÔ :€ ó    c                 ó   — t        | |d¬«      S r   r   r   s     r    r!   r!   #   r"   r#   zEstimator, parametersc                 ó¤   — t        j                  ddgddgddgg| ¬«      }g d¢} |d	i |¤Žj                  ||«      }|j                  d   dk(  sJ ‚y )
Nç      ð?ç        ç       @ç      @©Údtype©r   é   éÿÿÿÿr   r-   © )ÚnpÚasarrayÚfitÚtransduction_©Úglobal_dtypeÚ	EstimatorÚ
parametersÚsamplesÚlabelsÚclfs         r    Útest_fit_transductionr;   .   s]   € ä�j‰j˜3 ˜* s¨C j°3¸°*Ð=À\ÔR€GÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% g¨vÓ
6€CØ×Ñ˜QÑ 1Ò$Ð$Ñ$r#   c                 óð   — |d   dk(  rt        j                  d«       t        j                  ddgddgddgg| ¬«      }g d¢} |di |¤Žj	                  ||«      }t        |j                  d   d	d	gd
¬«       y )Nr   r   zHUnstable test for this configuration: changes in k-NN ordering break it.r&   r'   r*   r,   r   ç      à?g{®Gáz„?©Úatolr/   )ÚpytestÚskipr0   r1   r2   r   Úlabel_distributions_r4   s         r    Útest_distributionrC   6   s}   € à�(Ñ˜uÒ$Ü�‰ØVô	
ô �j‰j˜3 ˜* s¨C j°3¸°*Ð=À\ÔR€GÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% g¨vÓ
6€CÜ�C×,Ñ,¨QÑ/°#°s°À$ÖGr#   c                 óà   — t        j                  ddgddgddgg| ¬«      }g d¢} |d
i |¤Žj                  ||«      }t        |j	                  ddgg«      t        j
                  d	g«      «       y )Nr&   r'   r(   r)   r*   r,   r=   ç      @r-   r/   )r0   r1   r2   r   Úpredictr   r4   s         r    Útest_predictrG   B   sg   € ä�j‰j˜3 ˜* s¨C j°3¸°*Ð=À\ÔR€GÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% g¨vÓ
6€CÜ�s—{‘{ S¨# J <Ó0´"·(±(¸A¸3³-Õ@r#   c                 óä   — t        j                  ddgddgddgg| ¬«      }g d¢} |di |¤Žj                  ||«      }t        |j	                  ddgg«      t        j
                  ddgg«      «       y )Nr&   r'   rE   r*   r,   r=   r/   )r0   r1   r2   r   Úpredict_probar   r4   s         r    Útest_predict_probarJ   J   sn   € ä�j‰j˜3 ˜* s¨C j°3¸°*Ð=À\ÔR€GÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% g¨vÓ
6€CÜ�C×%Ñ%¨¨S z lÓ3´R·X±XÀÀS¸z¸lÓ5KÕLr#   Úalpha)çš™™™™™¹?g333333Ó?r=   gffffffæ?çÍÌÌÌÌÌì?c           	      ó"  — d}t        |dd¬«      \  }}|j                  | d¬«      }d|d d d…<   d	}t        j                  |¬
«      j	                  ||«      }|j                  «       }	t        j                  t        |«      |dz   f|j                  ¬«      }
d|
t        j                  t        |«      «      |f<   |
d d …d d…f   }
t        j                  t        j                  j                  t        j                  t        |	«      |	j                  ¬«      ||	z  z
  «      |
«      }||j                  d¬«      d d …t        j                   f   z  }t        j                  d|d|¬«      }|j	                  ||«       t#        ||j$                  «       y )Nr   éÈ   r   ©Ú	n_classesÚ	n_samplesÚrandom_stateF©Úcopyr.   é   rL   r   r-   r*   ©Úaxiséd   ç»½×Ùß|Û=)Úmax_iterrK   Útolr   )r   ÚastypeÚlabel_propagationÚLabelSpreadingr2   Ú_build_graphr0   ÚzerosÚlenr+   ÚarangeÚdotÚlinalgÚinvÚeyeÚsumÚnewaxisr   rB   )r5   r6   r7   rK   rQ   ÚXr   r   r:   ÚSÚYÚexpecteds               r    Ú test_label_spreading_closed_formrn   R   sM  € ð €IÜ¨¸cÐPQÔR�D€A€qØ	�‰� EˆÓ*€AØ€A�cˆ€c�Fà€EÜ
×
*Ñ
*°Ô
7×
;Ñ
;¸A¸qÓ
A€Cà×ÑÓ€AÜ
�‰”#�a“&˜) a™-Ð(°·±Ô8€AØ€A„b‡i�i”�A“Ó˜ÐÑØ	Š!ˆSˆbˆSˆ&‰	€Aä�v‰v”b—i‘i—m‘m¤B§F¡F¬3¨q«6¸¿¹Ô$AÀEÈAÁIÑ$MÓNÐPQÓR€HØ�—‘ !�Ó$¢Q¬¯
©
 ]Ñ3Ñ3€Hä
×
*Ñ
*Ø˜E u°Eô€Cð ‡G�GˆAˆq„Mä�H˜c×6Ñ6Õ7r#   c           
      ó  — d}t        |dd¬«      \  }}|j                  | d¬«      }d|d d d…<   t        j                  t	        |«      |d	z   f«      }d	|t        j
                  t	        |«      «      |f<   |d d …d
f   j                  «       d   }|d d …d
f   dk(  j                  «       d   }t        j                  ddd¬«      }|j                  ||«       |j                  «       }|t        t        j                  ||d¬«      «         }	|t        t        j                  ||d¬«      «         }
|d d …d d…f   }||d d …f   }t        j                  t        j                  t        j                  j                  t        j                   |	j"                  d   «      |	z
  «      |
«      |«      }|j%                  «       }|||d d …f<   ||j'                  d	¬«      d d …t        j(                  f   z  }t+        ||j,                  d¬«       y )Nr   rO   r   rP   FrT   r.   rV   r-   )r.   rY   rZ   rL   )r[   r\   r   Úij)ÚindexingrW   g-Cëâ6?r>   )r   r]   r0   ra   rb   rc   Únonzeror^   ÚLabelPropagationr2   r`   ÚtupleÚmeshgridrd   re   rf   rg   ÚshaperU   rh   ri   r   rB   )r5   rQ   rj   r   rl   Úunlabelled_idxÚlabelled_idxr:   ÚT_barÚTuuÚTulÚY_lÚY_urm   s                 r    Ú"test_label_propagation_closed_formr~   m   s½  € Ø€IÜ¨¸cÐPQÔR�D€A€qØ	�‰� EˆÓ*€AØ€A�cˆ€c�FÜ
�‰”#�a“&˜) a™-Ð(Ó)€AØ€A„b‡i�i”�A“Ó˜ÐÑØ’q˜%�x‘[×(Ñ(Ó*¨1Ñ-€NØ’a˜�h‘K 1Ñ$×-Ñ-Ó/°Ñ2€Lä
×
,Ñ
,°c¸uÈCÔ
P€CØ‡G�GˆAˆq„Mà×ÑÓ€EØ
””b—k‘k .°.È4ÔPÓQÑ
R€CØ
””b—k‘k .°,ÈÔNÓOÑ
P€CØ	Š!ˆSˆbˆSˆ&‰	€AØ
ˆLš!ˆOÑ
€CÜ
�&‰&”—‘œŸ	™	Ÿ™¤b§f¡f¨S¯Y©Y°q©\Ó&:¸SÑ&@ÓAÀ3ÓGÈÓ
M€Cà�v‰v‹x€HØ"%€Hˆ^šQÐÑØ�—‘ !�Ó$¢Q¬¯
©
 ]Ñ3Ñ3€Hä�H˜c×6Ñ6¸TÖBr#   Úaccepted_sparse_typeÚindex_dtyper+   c                 ó–  — t        ddgddgddgg| «      }|j                  j                  |d¬«      |_        |j                  j                  |d¬«      |_        |j                  j                  |d¬«      |_        g d¢} |di |¤Žj                  ||«      }t        |j                  dd	gg«      t        j                  d
g«      «       y )Nr&   r'   r(   r)   FrT   r,   r=   rE   r-   r/   )
r   Údatar]   ÚindicesÚindptrr2   r   rF   r0   r   )r   r€   r+   r6   r7   rj   r9   r:   s           r    Útest_sparse_input_typesr…   ˆ   s±   € ô 	˜S #˜J¨¨c¨
°S¸#°JÐ?ÐAUÓV€AØ�V‰V�]‰]˜5 uˆ]Ó-€A„FØ—	‘	× Ñ  °5Ð Ó9€A„IØ�x‰x�‰˜{°ˆÓ7€A„HÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% a¨Ó
0€CÜ�s—{‘{ S¨# J <Ó0´"·(±(¸A¸3³-Õ@r#   Úconstructorc                 óª  ‡ ‡	— t        j                  ddgddgddgg«      }g d¢}t        j                  g d¢g d¢g d¢g«      Š	t        j                  g d¢g d	¢g d
¢g«      }dˆ	ˆ fd„	} ||¬«      j                  ||«      }|j                  «       }t	        |j                  d¬«      d«       t        |«      r|j                  «       }t	        ||«       y )Nr&   r'   r)   r,   )r&   r&   r'   )r(   r&   r&   )r'   r&   r)   )r=   r=   r'   )r=   ç      Ð?rˆ   )r'   rˆ   g      è?c                 ó   •— t        ‰‰«      S ©N)r   )r   r   Ú
aff_matrixr†   s     €€r    Úkernel_affinity_matrixzMtest_label_propagation_build_graph_normalized.<locals>.kernel_affinity_matrix¤   s   ø€ Ü! *¨kÓ:Ð:r#   ©r   r-   rW   rŠ   )r0   r   r2   r`   r   rh   r   Útoarray)
r†   r6   r7   rj   r9   rm   rŒ   r:   Úgraphr‹   s
   `        @r    Ú-test_label_propagation_build_graph_normalizedr�   ™   s·   ù€ ô 	�‰�3˜�*˜s C˜j¨3°¨*Ð5Ó6€AÚ€Fô —‘š?ªOº_ÐMÓN€JÜ�x‰xšÒ*;Ò=NÐOÓP€Hö;ñ Ð1Ô
2×
6Ñ
6°q¸&Ó
A€CØ×ÑÓ€EÜ�E—I‘I 1�IÓ% qÔ)ä�„Ø—‘“ˆÜ�E˜8Õ$r#   Úconstructor_typec                 ó
  — t        ddgddgddgg| «      }t        j                  g d¢«      }t        j                  dd¬«      }|j                  ||«       |j                  dk  sJ ‚t        |j                  |«      g d	¢«       y )
Nr&   r'   rE   r,   r   iˆ  ©r   r[   é
   )r   r-   r-   )	r   r0   r   r^   r_   r2   Ún_iter_r   rF   )r‘   rj   r   Úmdls       r    Útest_convergence_speedr—   °   sw   € ô 	˜S #˜J¨¨c¨
°S¸#°JÐ?ÐAQÓR€AÜ
�‰’Ó€AÜ
×
*Ñ
*°%À$Ô
G€CØ‡G�GˆAˆq„Mð �;‰;˜ÒÐÐÜ�s—{‘{ 1“~¢yÕ1r#   c                  óô  — t        j                  ddgddgddgg«      } t        j                  g d¢«      }t        j                  dd¬«      }d}t	        j
                  t        |¬	«      5  |j                  | |«       d d d «       |j                  |j                  k(  sJ ‚t        j                  dd¬«      }t	        j
                  t        |¬	«      5  |j                  | |«       d d d «       |j                  |j                  k(  sJ ‚t        j                  dd
¬«      }t        j                  «       5  t        j                  dt        «       |j                  | |«       d d d «       t        j                  dd
¬«      }t        j                  «       5  t        j                  dt        «       |j                  | |«       d d d «       y # 1 sw Y   �ŒNxY w# 1 sw Y   ŒòxY w# 1 sw Y   ŒƒxY w# 1 sw Y   y xY w)Nr&   r'   rE   r,   r   r-   r“   z+max_iter=1 was reached without convergence.)Úmatchéô  Úerror)r0   r   r^   r_   r@   Úwarnsr   r2   r•   r[   rs   ÚwarningsÚcatch_warningsÚsimplefilter)rj   r   r–   Úwarn_msgs       r    Útest_convergence_warningr¡   ½   s‘  € ä
�‰�3˜�*˜s C˜j¨3°¨*Ð5Ó6€AÜ
�‰’Ó€AÜ
×
*Ñ
*°%À!Ô
D€CØ<€HÜ	�‰Ô(°Ô	9ñ Ø�‰��1Œ÷à�;‰;˜#Ÿ,™,Ò&Ð&Ð&ä
×
,Ñ
,°EÀAÔ
F€CÜ	�‰Ô(°Ô	9ñ Ø�‰��1Œ÷à�;‰;˜#Ÿ,™,Ò&Ð&Ð&ä
×
*Ñ
*°%À#Ô
F€CÜ	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ'9Ô:Ø�‰��1Œ÷ô ×
,Ñ
,°EÀCÔ
H€CÜ	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ'9Ô:Ø�‰��1Œ÷ð ÷ñ ú÷
ð ú÷
ð ú÷
ð ús0   Á*G	ÃGÄ3-G"Æ-G.Ç	GÇGÇ"G+Ç.G7ÚLabelPropagationClsc                 ó4  — t        j                  ddgddgddgddgg«      }t        j                  g d¢«      } | ddd¬«      }t        j                  «       5  t        j                  dt
        «       |j                  ||«       d d d «       y # 1 sw Y   y xY w)	Ng      Y@r'   )r   r-   r.   r.   r   rY   r-   )r   r[   r   r›   )r0   r   r�   rž   rŸ   ÚRuntimeWarningr2   )r¢   rj   r   r–   s       r    Ú*test_label_propagation_non_zero_normalizerr¥   ×   s…   € ô 	�‰�5˜%�. 5¨% .°3¸°*¸sÀC¸jÐIÓJ€AÜ
�‰’Ó €AÙ
 U°SÀaÔ
H€CÜ	×	 Ñ	 Ó	"ñ Ü×Ñ˜g¤~Ô6Ø�‰��1Œ÷÷ ñ ús   Á-BÂBc           	      óˆ  — dd„}d}d}d}t        ||ddddd¬«      \  }}|j                  | «      }t        |||d¬«      \  }}}	}
t        j                  |¬	«      }|j                  ||	«       |j                  ||
«      d
k\  sJ ‚t        j                  |¬	«      }|j                  ||	«       |j                  ||
«      d
k\  sJ ‚y )Nr”   c                 ó  — t        ddd¬«      }|j                  | «       d|j                  |d¬«      j                  d«      z  |z  }t	        j
                  |j                  |j                  ¬«       t        |«      sJ ‚|j                  S )	Nr”   Ú	euclideanr   )r   ÚmetricÚn_jobsr.   Údistance)Úmode)Úout)	r	   r2   Úkneighbors_graphÚpowerr0   Úexpr‚   r   ÚT)rj   rl   r   r   ÚnnÚWs         r    Útopk_rbfz5test_predict_sparse_callable_kernel.<locals>.topk_rbfì   sp   € Ü¨"°[ÈÔKˆØ
�‰ˆqŒ	Ø�×$Ñ$ Q¨ZÐ$Ó8×>Ñ>¸qÓAÑAÀEÑIˆÜ
�‰ˆq�v‰v˜1Ÿ6™6Õ"Ü˜Œ{Ðˆ{Ø�s‰sˆ
r#   é   rš   r   r   )rQ   rR   Ú
n_featuresÚn_informativeÚn_redundantÚ
n_repeatedrS   )Ú	test_sizerS   r�   rM   )Nr”   gñhãˆµøä>)r   r]   r   r^   r_   r2   Úscorers   )r5   r´   rQ   rR   Ún_testrj   r   ÚX_trainÚX_testÚy_trainÚy_testÚmodels               r    Ú#test_predict_sparse_callable_kernelrÂ   è   s×   € óð €IØ€IØ€FÜØØØØØØØô�D€A€qð 	
�‰�Ó€Aä'7Ø	ˆ1˜¨Qô(Ñ$€GˆV�W˜fô ×,Ñ,°HÔ=€EØ	‡I�Iˆg�wÔØ�;‰;�v˜vÓ&¨#Ò-Ð-Ð-ä×.Ñ.°hÔ?€EØ	‡I�Iˆg�wÔØ�;‰;�v˜vÓ&¨#Ò-Ð-Ñ-r#   )0Ú__doc__r�   Únumpyr0   r@   Úscipy.sparser   Úsklearn.datasetsr   Úsklearn.exceptionsr   Úsklearn.metrics.pairwiser   Úsklearn.model_selectionr   Úsklearn.neighborsr	   Úsklearn.semi_supervisedr
   r^   Úsklearn.utils._testingr   r   r   ÚSPARSE_TYPESÚCONSTRUCTOR_TYPESrs   r_   Ú
ESTIMATORSÚLP_ESTIMATORSÚmarkÚparametrizer;   rC   rG   rJ   rn   r~   Úint32Úint64Úfloat32Úfloat64r…   r�   r—   r¡   r¥   rÂ   )ÚklassÚparamss   00r    ú<module>rÙ      s  ðÙ 'ã ã Û Ý !å 0Ý 1Ý /Ý 4Ý .Ý K÷ñ ð T€Ø Ñ-Ð ð ×'Ñ'¨(°EÐ):Ð;Ø×'Ñ'°EÈ!Ñ)LÐMà×*Ñ*Ø	Ñ:Ð;ðð ×%Ñ%¨°%Ð'8Ð9Ø×%Ñ%°%ÈÑ'JÐKà×(Ñ(Ø	Ñ:Ð;ðð€
ð" &÷áˆ�ØÐ!×2Ñ2Ò2ð ˆF‚Oó€ð ‡�×ÑÐ0°*Ó=ñ%ó >ð%ð ‡�×ÑÐ0°*Ó=ñHó >ðHð ‡�×ÑÐ0°*Ó=ñAó >ðAð ‡�×ÑÐ0°*Ó=ñMó >ðMð ‡�×Ñ˜Ò";Ó<Ø‡�×ÑÐ0°*Ó=ñ8ó >ó =ð8ò2Cð6 ‡�×ÑÐ/°Ó>Ø‡�×Ñ˜¨¯©°2·8±8Ð(<Ó=Ø‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×ÑÐ0°*Ó=ñ
Aó >ó <ó >ó ?ð
Að ‡�×Ñ˜Ð(9Ó:Ø‡�×ÑÐ0°-Ó@ñ%ó Aó ;ð%ð* ‡�×ÑÐ+Ð->Ó?ñ	2ó @ð	2òð4 ‡�×ÑØØ×%Ñ%Ð'8×'IÑ'IÐJóñ
ó	ð
ó$.ùóCs   Â/K+