Ë
    ÷Q(h\8  ã            	       ód  — 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	 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 d dlmZ  e«       Z eej:                  ej<                  d ¬«      \  ZZ Z!Z"dZ#e!jI                  «       Z%de%e#d dddddœZ&  ejN                  e&jP                  «      e%«      jS                  e*«      Z+de+e%dk(  <   d„ Z,ejZ                  j]                  d e«        eddd ¬«      g«      ejZ                  j]                  dddg«      d„ «       «       Z/d„ Z0d „ Z1d!„ Z2ejZ                  j]                  d e«        eddd ¬«      g«      ejZ                  j]                  d"e%e+g«      d#„ «       «       Z3d$„ Z4ejZ                  j]                  d% e5d&d'«      «      d(„ «       Z6d)„ Z7d*„ Z8d+„ Z9ejZ                  j]                  d,dd-g«      d.„ «       Z:d/„ Z;d0„ Z<d1„ Z=d2„ Z>d3„ Z?ejZ                  j�                  d4«      ejZ                  j]                  d5g d6¢«      d7„ «       «       ZAy)8é    )ÚceilN)Úassert_array_equal)Ú	load_irisÚ
make_blobs)ÚStackingClassifier)ÚNotFittedError)Úaccuracy_score)Útrain_test_split)ÚKNeighborsClassifier)ÚSelfTrainingClassifier)ÚSVC)ÚSimpleEstimator)ÚDecisionTreeClassifier)Úrandom_stateé2   éÿÿÿÿÚAÚBÚCz-1)r   é   é   r   c                  óæ   — t        t        «       dd¬«      } t        j                  t        d¬«      5  | j                  t        t        «       d d d «       | j                  dk(  sJ ‚y # 1 sw Y   ŒxY w)NÚk_bestiè  )Ú	criterionr   zk_best is larger than©ÚmatchÚall_labeled)	r   r   ÚpytestÚwarnsÚUserWarningÚfitÚX_trainÚy_train_missing_labelsÚtermination_condition_©Ústs    ún/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/semi_supervised/tests/test_self_training.pyÚtest_warns_k_bestr(   &   s^   € Ü	Ô 4Ó 6À(ÐSWÔ	X€BÜ	�‰”kÐ)@Ô	Añ 0Ø
�‰ŒwÔ.Ô/÷0ð ×$Ñ$¨Ò5Ð5Ñ5÷0ð 0ús   ²A'Á'A0Ú	estimatorÚscaleT©ÚgammaÚprobabilityr   Úselection_critÚ	thresholdr   c                 ó(  — d}d}t        | |||¬«      }|j                  t        t        «       |j	                  t
        «      }|j                  t
        «      }t        | |||¬«      }|j                  t        t        «       |j	                  t
        «      }|j                  t
        «      }	t         t        j                  t        j                  «      |«      |«       t        ||	«       |j                  |j                  k(  sJ ‚t        dk7  }
t        |j                  dk(  |
«       t        t        |
   |j                  |
   «       t        j                   |j                  «      |j"                  cxk  r|k  sJ ‚ J ‚t        j                   |j                  «      |j"                  cxk  r|k  sJ ‚ J ‚|j                  j$                  |j                  j$                  k(  sJ ‚|j                  j$                  |j                  j$                  k(  sJ ‚y )Ng      è?é
   )Úmax_iterr/   r   )r2   r   r/   r   r   )r   r!   r"   r#   ÚpredictÚX_testÚpredict_probaÚy_train_missing_stringsr   ÚnpÚ	vectorizeÚmappingÚgetr$   Úlabeled_iter_Útransduction_ÚmaxÚn_iter_Úshape)r)   r.   r/   r2   r&   ÚpredÚprobaÚ	st_stringÚpred_stringÚproba_stringÚlabeleds              r'   Útest_classificationrF   .   s»  € ð €IØ€HÜ	Ø˜H°	À^ô
€Bð ‡F�FŒ7Ô*Ô+Ø�:‰:”fÓ€DØ×ÑœVÓ$€Eä&Ø˜H°È)ô€Ið ‡M�M”'Ô2Ô3Ø×#Ñ#¤FÓ+€KØ×*Ñ*¬6Ó2€LäÐ0”r—|‘|¤G§K¡KÓ0°Ó6¸ÔDÜ�u˜lÔ+à×$Ñ$¨	×(HÑ(HÒHÐHÐHä$¨Ñ*€Gä�r×'Ñ'¨1Ñ,¨gÔ6äÔ-¨gÑ6¸×8HÑ8HÈÑ8QÔRô �6‰6�"×"Ñ"Ó# r§z¡zÔ=°XÒ=Ð=Ñ=Ð=Ð=Ü�6‰6�)×)Ñ)Ó*¨i×.?Ñ.?ÔKÀ8ÒKÐKÑKÐKÐKð ×Ñ×!Ñ! R×%5Ñ%5×%;Ñ%;Ò;Ð;Ð;Ø×"Ñ"×(Ñ(¨I×,CÑ,C×,IÑ,IÒIÐIÑIó    c                  óB  — t        t        d¬«      ddd ¬«      } t        j                  t        «      }d|dd  t        j
                  d   }t        |dz
  dz  «      }| j                  t        |«       | j                  |k(  sJ ‚t        j                  | j                  dk(  «      dk(  sJ ‚t        d|«      D ])  }t        j                  | j                  |k(  «      dk(  rŒ)J ‚ t        j                  | j                  |k(  «      |dz
  dz  k(  sJ ‚| j                  dk(  sJ ‚y )	Nr   ©Ún_neighborsr   r1   )r   r   r2   r   r   r   )r   r   r7   ÚcopyÚy_trainr?   r   r!   r"   r>   Úsumr;   Úranger$   )r&   Úy_train_only_one_labelÚ	n_samplesÚn_expected_iterÚis        r'   Útest_k_bestrS   \   s  € Ü	Ü¨Ô+ØØØô	
€Bô  ŸW™W¤WÓ-ÐØ!#Ð˜1˜2ÐÜ—‘˜aÑ €Iä˜I¨™M¨RÑ/Ó0€OØ‡F�FŒ7Ð*Ô+Ø�:‰:˜Ò(Ð(Ð(ô �6‰6�"×"Ñ" aÑ'Ó(¨AÒ-Ð-Ð-Ü�1�oÓ&ò 3ˆÜ�v‰v�b×&Ñ&¨!Ñ+Ó,°Ó2Ð2Ð2ð3ä�6‰6�"×"Ñ" oÑ5Ó6¸9Àq¹=ÈBÑ:NÒNÐNÐNØ×$Ñ$¨Ò5Ð5Ñ5rG   c                  óÖ  — t        dd¬«      } | j                  t        t        d  t        t        d  «       t        | «      }|j                  t        t        «       | j                  t        «      |j                  t        «      }}t        j                  ||«      rJ ‚t        | j                  t        «      t        «      }t        |j                  t        «      t        «      }||kD  sJ ‚y )Nr*   T©r,   r-   )r   r!   r"   Ún_labeled_samplesrL   r   r#   r3   r4   r7   Úarray_equalr	   Úy_test)r)   r&   Úpred1Úpred2Úscore_supervisedÚscore_self_trainings         r'   Útest_sanity_classificationr]   s   sµ   € Ü˜'¨tÔ4€IØ‡M�M”'Ô+Ð,Ð-¬wÔ7HÐ7IÐ/JÔKä	 	Ó	*€BØ‡F�FŒ7Ô*Ô+à×$Ñ$¤VÓ,¨b¯j©j¼Ó.@ˆ5€EÜ�~‰~˜e UÔ+Ð+Ð+Ü% i×&7Ñ&7¼Ó&?ÄÓHÐÜ(¨¯©´FÓ);¼VÓDÐàÐ!1Ò1Ð1Ñ1rG   c                  ó¨   — t        t        «       dd ¬«      } | j                  t        t        «       | j
                  dk  sJ ‚| j                  dk(  sJ ‚y )Ngš™™™™™á?)r/   r2   r1   r   )r   r   r!   r"   r#   r>   r$   r%   s    r'   Útest_none_iterr_   ‚   sJ   € ô 
 Ô 4Ó 6À$ÐQUÔ	V€BØ‡F�FŒ7Ô*Ô+à�:‰:˜Š?Ðˆ?Ø×$Ñ$¨Ò5Ð5Ñ5rG   Úyc                 ó  — t        | d¬«      }|j                  t        |«       | j                  t        d t         |d t         «      }t	        |j                  t        «      |j                  t        «      «       |j                  dk(  sJ ‚y )Nr   ©r2   r2   )r   r!   r"   rV   r   r3   r4   r$   )r)   r`   Úclf1Úclf2s       r'   Útest_zero_iterationsre   Œ   sp   € ô " )°aÔ8€Dà‡H�HŒW�aÔà�=‰=œÐ!3Ô"3Ð4°aÐ8JÔ9JÐ6KÓL€Dä�t—|‘|¤FÓ+¨T¯\©\¼&Ó-AÔBØ×&Ñ&¨*Ò4Ð4Ñ4rG   c                  óì   — t        «       } | j                  t        t        «       t	        | «      }t        j                  t        d¬«      5  |j                  t        «       d d d «       y # 1 sw Y   y xY w)Nz6This SelfTrainingClassifier instance is not fitted yetr   )	r   r!   r"   rL   r   r   Úraisesr   r3   ©Úknnr&   s     r'   Útest_prefitted_throws_errorrj   ¡   sY   € ô Ó
 €CØ‡G�GŒG”WÔÜ	 Ó	$€BÜ	�‰ÜØFô
ñ ð 	�
‰
”7Ô÷	÷ ñ ús   ÁA*Á*A3r2   r   é   c                 ó0  — t        t        «       | ¬«      }|j                  t        t        «       t        |j                  |j                  dk(     «      }|t        k(  sJ ‚t        j                  |j                  «      |j                  cxk  r| k  sJ ‚ J ‚y )Nrb   r   )r   r   r!   r"   r#   Úlenr;   rV   r7   r=   r>   )r2   r&   Úamount_iter_0s      r'   Útest_labeled_iterro   ®   s€   € ô 
 Ô 4Ó 6ÀÔ	J€Bà‡F�FŒ7Ô*Ô+Ü˜×(Ñ(¨×)9Ñ)9¸QÑ)>Ñ?Ó@€MØÔ-Ò-Ð-Ð-ô �6‰6�"×"Ñ"Ó# r§z¡zÔ=°XÒ=Ð=Ñ=Ð=Ñ=rG   c                  óÄ  — t        «       } | j                  t        t        «       t	        | «      }t        j                  t        d¬«      5  |j                  t        t        «       d d d «       t        | j                  t        «      |j                  t        «      «       t        j                  |j                  dk(  «      sJ ‚|j                  dk(  sJ ‚y # 1 sw Y   ŒqxY w)Nzy contains no unlabeled samplesr   r   r   )r   r!   r"   rL   r   r   r   r    r   r3   r4   r7   Úallr;   r$   rh   s     r'   Útest_no_unlabeledrr   ¼   s¥   € ô Ó
 €CØ‡G�GŒG”WÔÜ	 Ó	$€BÜ	�‰”kÐ)JÔ	Kñ !Ø
�‰ŒwœÔ ÷!ä�s—{‘{¤6Ó*¨B¯J©J´vÓ,>Ô?ô �6‰6�"×"Ñ" aÑ'Ô(Ð(Ð(Ø×$Ñ$¨Ò5Ð5Ñ5÷!ð !ús   ÁCÃCc                  ó¸   — t        dd¬«      } t        | «      }dgdgdgdgg}g d¢}|j                  ||«       |j                  dk(  sJ ‚|j                  dk(  sJ ‚y )	Nr*   TrU   r   r   g      à?)r   r   r   r   Ú	no_change)r   r   r!   r>   r$   )Úsvcr&   ÚX_train_easyÚy_train_easys       r'   Útest_early_stoppingrx   Ë   sg   € Ü
�G¨Ô
.€CÜ	 Ó	$€BØ�C˜!˜˜q˜c C 5Ð)€LÚ!€Lð ‡F�Fˆ<˜Ô&Ø�:‰:˜Š?Ðˆ?Ø×$Ñ$¨Ò3Ð3Ñ3rG   c                  ó  — t        t        «       «      } t        ddd¬«      \  }}g d¢}t        j                  ||«      }t        j                  t        d¬«      5  | j                  ||«       d d d «       y # 1 sw Y   y xY w)Né   r   gš™™™™™¹?)rP   r   Úcluster_std)ÚoneÚtwoÚthreeÚdtyper   )	r   r   r   r7   Útaker   rg   Ú
ValueErrorr!   )ÚclfÚXr`   Úlabels_multiclassÚ	y_stringss        r'   Útest_strings_dtyper†   ×   sj   € Ü
 Ô!5Ó!7Ó
8€CÜ °ÀÔD�D€A€qÚ/Ðä—‘Ð)¨1Ó-€Iä	�‰”z¨Ô	1ñ Ø�‰��9Ô÷÷ ñ ús   ÁA6Á6A?ÚverboseFc                 óÈ   — t        t        «       |¬«      }|j                  t        t        «       | j                  «       }|rd|j                  v sJ ‚y d|j                  vsJ ‚y )N)r‡   Ú	iteration)r   r   r!   r"   r#   Ú
readouterrÚout)Úcapsysr‡   r‚   Úcaptureds       r'   Útest_verboserŽ   â   sV   € ä
 Ô!5Ó!7ÀÔ
I€CØ‡G�GŒGÔ+Ô,à× Ñ Ó"€HáØ˜hŸl™lÑ*Ð*Ñ*à (§,¡,Ñ.Ð.Ñ.rG   c                 óº  — t        t        d¬«      dddd ¬«      }t        j                  t        «      }d|dd  t        j
                  d   }t        |dz
  dz  «      }|j                  t        |«       | j                  «       }d	}t        d|«      D ]"  }|j                  |d«      |j                  v rŒ"J ‚ |j                  ||dz
  dz  «      |j                  v sJ ‚y )
Nr   rI   r   r1   T)r   r   r‡   r2   r   r   z)End of iteration {}, added {} new labels.)r   r   r7   rK   rL   r?   r   r!   r"   rŠ   rN   Úformatr‹   )rŒ   r&   rO   rP   rQ   r�   ÚmsgrR   s           r'   Útest_verbose_k_bestr’   ï   sÜ   € Ü	Ü¨Ô+ØØØØô
€Bô  ŸW™W¤WÓ-ÐØ!#Ð˜1˜2ÐÜ—‘˜aÑ €Iä˜I¨™M¨RÑ/Ó0€OØ‡F�FŒ7Ð*Ô+à× Ñ Ó"€Hà
5€CÜ�1�oÓ&ò 1ˆØ�z‰z˜!˜RÓ  H§L¡LÒ0Ð0Ð0ð1ð �:‰:�o¨	°A©¸Ñ';Ó<ÀÇÁÑLÐLÑLrG   c                  ó  — t        ddd¬«      } t        | ddd¬«      }t        d	k7  }|j                  t        t        «       | |j
                  d	k7  z  }| j                  t        |   t        |   «       | j                  t        |    «      }t        j                  |d¬
«      }t        |    t        j                  |«      dd     }t        t        j                  |«         j                  «       }|j                  «       D ]  }||v rŒJ ‚ y )Nr*   Tr   r+   r   r   r1   )r   r2   r   r   )Úaxisiöÿÿÿ)r   r   r#   r!   r"   r<   r5   r7   r=   ÚargsortÚwhereÚtolist)	ru   r&   Ú	has_labelÚ	got_labelr@   Ú	max_probaÚmost_confident_svcÚadded_by_stÚrows	            r'   Útest_k_best_selects_bestrž     sô   € ä
�G¨¸AÔ
>€CÜ	 ¨xÀ!ÈBÔ	O€BÜ&¨"Ñ,€IØ‡F�FŒ7Ô*Ô+à�
˜b×.Ñ.°"Ñ4Ñ5€Ià‡G�GŒG�IÑÔ 6°yÑ AÔBØ×ÑœW i ZÑ0Ó1€DÜ—‘�t !Ô$€Iä  ) Ñ,¬R¯Z©Z¸	Ó-BÀ3À4Ð-HÑIÐÜœ"Ÿ(™( 9Ó-Ñ.×5Ñ5Ó7€Kà!×(Ñ(Ó*ò "ˆØ�kÒ!Ð!Ð!ñ"rG   c                  ó"  — t        dt        d¬«      fdt        d¬«      fgt        d¬«      d¬«      } t        | d«      sJ ‚t        | ¬«      }|j	                  t
        t        «       |j                  t        «       t        dt        d	¬«      fdt        d	¬«      fgt        d	¬«      d¬«      } t        | d«      rJ ‚t        | ¬«      }t        j                  t        «      5  |j	                  t
        t        «       d d d «       y # 1 sw Y   y xY w)
NÚsvc_1T)r-   Úsvc_2r   )Ú
estimatorsÚfinal_estimatorÚcvr5   ©r)   F)r   r   Úhasattrr   r!   r"   r#   r5   r4   r   rg   ÚAttributeError)r)   r‚   s     r'   Útest_estimator_meta_estimatorr¨     sõ   € ô #à”c dÔ+Ð,Ø”c dÔ+Ð,ð
ô ¨Ô-Øô€Iô �9˜oÔ.Ð.Ð.Ü
 ¨9Ô
5€CØ‡G�GŒGÔ+Ô,Ø×Ñ”fÔä"à”c eÔ,Ð-Ø”c eÔ,Ð-ð
ô ¨Ô.Øô€Iô �y /Ô2Ð2Ð2Ü
 ¨9Ô
5€CÜ	�‰”~Ó	&ñ 1Ø�‰”Ô/Ô0÷1÷ 1ñ 1ús   Ã!DÄDc                  óD  — t        dd¬«      } t        | «      }t        j                  t        d¬«      5  |j                  t        t        «       ddd«       t        t        «       ¬«      }d}d	}t        j                  t        |¬«      5 }|j                  t        t        «      j                  t        «       ddd«       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚y# 1 sw Y   Œ¼xY w# 1 sw Y   Œ_xY w)
a>  Check that we raise the proper AttributeErrors when the `estimator`
    does not implement the `predict_proba` method, which is called from within
    `fit`, or `decision_function`, which is decorated with `available_if`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28108
    Fr*   )r-   r,   z has no attribute 'predict_proba'r   Nr¥   zBThis 'SelfTrainingClassifier' has no attribute 'decision_function'zD'DecisionTreeClassifier' object has no attribute 'decision_function')r   r   r   rg   r§   r!   r"   r#   r   Údecision_functionÚ
isinstanceÚvalueÚ	__cause__Ústr)r)   Úself_trainingÚ	outer_msgÚ	inner_msgÚ	exec_infos        r'   Ú,test_self_training_estimator_attribute_errorr³   @  så   € ô  ¨WÔ5€IÜ*¨9Ó5€Mä	�‰”~Ð-OÔ	Pñ ;Ø×Ñœ'Ô#9Ô:÷;ô
 +Ô5KÓ5MÔN€MàT€IØV€IÜ	�‰”~¨YÔ	7ð V¸9Ø×Ñœ'Ô#9Ó:×LÑLÌWÔU÷Vä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷;ð ;ú÷Vð Vús   ´D
Â
.DÄ
DÄDc                  ó6  — d} t        j                  t        | ¬«      5  t        t	        «       ¬«      j                  t        t        «       d d d «       d}t        j                  t        |¬«      5  t        «       j                  t        t        «       d d d «       d}t        j                  t        |¬«      5  t        t	        «       t	        «       ¬«      j                  t        t        «       d d d «       y # 1 sw Y   Œ­xY w# 1 sw Y   ŒqxY w# 1 sw Y   y xY w)Nz?`base_estimator` has been deprecated in 1.6 and will be removedr   )Úbase_estimatorz4You must pass an estimator to SelfTrainingClassifierz;You must pass only one estimator to SelfTrainingClassifier.)rµ   r)   )
r   r   ÚFutureWarningr   r   r!   r"   r#   rg   r�   )Úwarn_msgÚ	error_msgs     r'   Ú'test_deprecation_warning_base_estimatorr¹   ^  sÛ   € ØP€HÜ	�‰”m¨8Ô	4ñ 
ÜÔ.DÓ.FÔG×KÑKÜÔ+ô	
÷
ð
 G€IÜ	�‰”z¨Ô	3ñ FÜÓ ×$Ñ$¤WÔ.DÔE÷Fð N€IÜ	�‰”z¨Ô	3ñ /ÜÜ1Ó3Ô?UÓ?Wô	
ç
‰#ŒgÔ-Ô
.÷/ð /÷
ð 
ú÷Fð Fú÷/ð /ús#   ž-C7Á0#DÂ86DÃ7D ÄDÄDz2ignore:y contains no unlabeled samples:UserWarningÚmethod)rª   Úpredict_log_probar5   r3   c                 óŠ  — t        t        «       ¬«      }t        j                  t        d¬«      5  |j                  dgdggddgdgd¬«       ddd«       t        t        «       ¬«      }t        j                  t        d¬«      5  d|_         t        || «      dggdgd¬«       ddd«       y# 1 sw Y   ŒaxY w# 1 sw Y   yxY w)	z�Test that the right error message is raised when metadata is passed while
    not supported when `enable_metadata_routing=False`.r¥   z1is only supported if enable_metadata_routing=Truer   r   Úa)Úsample_weightÚpropNT)r   r   r   rg   r�   r!   Úfitted_params_Úgetattr)rº   Úests     r'   Ú*test_routing_passed_metadata_not_supportedrÃ   t  sÅ   € ô !¬?Ó+<Ô
=€CÜ	�‰ÜÐMô
ñ Að 	�‰�!��q�c�
˜Q ˜F°1°#¸CˆÔ@÷Aô
 !¬?Ó+<Ô
=€CÜ	�‰ÜÐMô
ñ Að "ˆÔØŒ��VÓ˜q˜c˜U°1°#¸CÕ@÷Að A÷Að Aú÷Að Aús   °B-Â B9Â-B6Â9C)BÚmathr   Únumpyr7   r   Únumpy.testingr   Úsklearn.datasetsr   r   Úsklearn.ensembler   Úsklearn.exceptionsr   Úsklearn.metricsr	   Úsklearn.model_selectionr
   Úsklearn.neighborsr   Úsklearn.semi_supervisedr   Úsklearn.svmr   Úsklearn.tests.test_pipeliner   Úsklearn.treer   ÚirisÚdataÚtargetr"   r4   rL   rX   rV   rK   r#   r9   r8   r:   ÚastypeÚobjectr6   r(   ÚmarkÚparametrizerF   rS   r]   r_   re   rj   rN   ro   rr   rx   r†   rŽ   r’   rž   r¨   r³   r¹   ÚfilterwarningsrÃ   © rG   r'   ú<module>rÚ      s`  ðÝ ã Û Ý ,ç 2Ý /Ý -Ý *Ý 4Ý 2Ý :Ý Ý 7Ý /ñ ƒ{€Ù#3Ø‡I�Iˆt�{‰{¨ô$Ñ  €ˆ�˜&ð Ð à Ÿ™›Ð Ø-/Ð Ð(Ð)Ð *Ø�c˜c tÑ
,€Ø3˜,˜"Ÿ,™, w§{¡{Ó3Ð4JÓK×RÑRØ
óÐ ð 9;Ð Ð.°"Ñ4Ñ 5ò6ð ‡�×ÑØÙÓ™S w¸DÈqÔQÐRóð ‡�×ÑÐ)¨K¸Ð+BÓCñ&Jó Dó	ð
&JòR6ò.2ò6ð ‡�×ÑØÙÓ™S w¸DÈqÔQÐRóð ‡�×Ñ˜Ð5Ð7NÐOÓPñ5ó Qó	ð
5ò 
ð ‡�×Ñ˜¡U¨1¨a£[Ó1ñ
>ó 2ð
>ò6ò	4òð ‡�×Ñ˜ T¨5 MÓ2ñ	/ó 3ð	/òMò2"ò(!1òH7ò</ð, ‡�×ÑÐPÓQØ‡�×ÑØÒTóñAóó RñArG   