Ë
    8Ò^jð5  ã            
       óˆ  — d dl m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 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 d dl m!Z!  e«       Z" ee"jF                  e"jH                  d ¬«      \  Z%Z&Z'Z(dZ)e'jU                  «       Z+de+e)d dddddœZ,  ejZ                  e,j\                  «      e+«      j_                  e0«      Z1de1e+dk(  <   d„ Z2ejf                  ji                  d e«        e«       g«      ejf                  ji                  dddg«      d„ «       «       Z5d„ Z6d „ Z7d!„ Z8ejf                  ji                  d e«        e
 ed"d ¬#«      d$¬%«      g«      ejf                  ji                  d&e+e1g«      d'„ «       «       Z9d(„ Z:ejf                  ji                  d) e;d*d+«      «      d,„ «       Z<d-„ Z=d.„ Z>d/„ Z?ejf                  ji                  d0d1d$g«      d2„ «       Z@d3„ ZAd4„ ZBd5„ ZCd6„ ZDejf                  j‹                  d7«      ejf                  ji                  d8g d9¢«      d:„ «       «       ZFy);é    )ÚceilN)Úassert_array_equal)Úclone)ÚCalibratedClassifierCV)Ú	load_irisÚ
make_blobs)ÚStackingClassifier)ÚNotFittedError)ÚLogisticRegression)Ú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    ú{/var/www/ramen.bs-engineer-server.com/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Úselection_critÚ	thresholdr   c                 ó>  — t        | «      } 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&   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   1   sÇ  € ô �iÓ €Ið €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        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 )NÚscale©ÚgammaF©Úensemble)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_classificationra   w   sº   € Ü&¤s°Ô'9ÀEÔJ€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_iterrc   †   sJ   € ô 
 Ô 4Ó 6À$ÐQUÔ	V€BØ‡F�FŒ7Ô*Ô+à�:‰:˜Š?Ðˆ?Ø×$Ñ$¨Ò5Ð5Ñ5rG   rU   )rW   r   FrX   Úyc                 ó.  — t        | «      } 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%   r&   rZ   r   r3   r4   r(   )r-   rd   Úclf1Úclf2s       r+   Útest_zero_iterationsri   �   s|   € ô �iÓ €Iô " )°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_errorrn   ©   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 )Nrf   r   )r   r   r%   r&   r'   Úlenr;   rZ   r7   r=   r>   )r2   r*   Úamount_iter_0s      r+   Útest_labeled_iterrs   ¶   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(   rl   s     r+   Útest_no_unlabeledrv   Ä   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        «       } 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   r   g      à?)r   r   r   r   Ú	no_change)r   r   r%   r>   r(   )Úlrr*   ÚX_train_easyÚy_train_easys       r+   Útest_early_stoppingr|   Ó   sc   € Ü	Ó	€BÜ	 Ó	#€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"   rk   Ú
ValueErrorr%   )ÚclfÚXrd   Ú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?ÚverboseTc                 óÈ   — 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¬«      } 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   r   r   r   r1   )r   r2   r   r   )Úaxisiöÿÿÿ)r   r   r'   r%   r&   r<   r5   r7   r=   ÚargsortÚwhereÚtolist)	Úestr*   Ú	has_labelÚ	got_labelr@   Ú	max_probaÚmost_confident_estÚadded_by_stÚrows	            r+   Útest_k_best_selects_bestr£     sð   € ä
¨!Ô
,€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        «       fdt        «       fgt        «       d¬«      } t        | d«      sJ ‚t        | ¬«      }|j	                  t
        t        «       |j                  t        «       t        dt        «       fdt        «       fgt        «       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Úclf_1Úclf_2r   )Ú
estimatorsÚfinal_estimatorÚcvr5   ©r-   Úsvc_1Úsvc_2)r	   r   Úhasattrr   r%   r&   r'   r5   r4   r   r"   rk   ÚAttributeError)r-   r†   s     r+   Útest_estimator_meta_estimatorr¯   $  sè   € ô #àÔ(Ó*Ð+ØÔ(Ó*Ð+ð
ô +Ó,Øô€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   ÃC9Ã9Dc                  óB  — t        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
    rU   rV   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"   rk   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º   H  sã   € ô ˜'Ô"€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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"   rk   r…   r%   Úfitted_params_Úgetattr)r»   rœ   s     r+   Ú*test_routing_passed_metadata_not_supportedrÃ   i  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)GÚmathr   Únumpyr7   r"   Únumpy.testingr   Úsklearn.baser   Úsklearn.calibrationr   Úsklearn.datasetsr   r   Úsklearn.ensembler	   Úsklearn.exceptionsr
   Úsklearn.linear_modelr   Úsklearn.metricsr   Úsklearn.model_selectionr   Úsklearn.neighborsr   Úsklearn.semi_supervisedr   Úsklearn.svmr   Úsklearn.tests.test_pipeliner   Úsklearn.treer   ÚirisÚdataÚtargetr&   r4   rL   r\   rZ   rK   r'   r9   r8   r:   ÚastypeÚobjectr6   r,   ÚmarkÚparametrizerF   rS   ra   rc   ri   rn   rN   rs   rv   r|   rŠ   r’   r–   r£   r¯   rº   ÚfilterwarningsrÃ   © rG   r+   ú<module>rÝ      sh  ðÝ ã Û Ý ,å Ý 6ß 2Ý /Ý -Ý 3Ý *Ý 4Ý 2Ý :Ý Ý 7Ý /ñ ƒ{€Ù#3Ø‡I�Iˆt�{‰{¨ô$Ñ  €ˆ�˜&ð Ð à Ÿ™›Ð Ø-/Ð Ð(Ð)Ð *Ø�c˜c tÑ
,€Ø3˜,˜"Ÿ,™, w§{¡{Ó3Ð4JÓK×RÑRØ
óÐ ð 9;Ð Ð.°"Ñ4Ñ 5ò6ð ‡�×ÑØÙÓÑ/Ó1Ð2óð ‡�×ÑÐ)¨K¸Ð+BÓCñ'Jó Dó	ð
'JòT6ò.2ò6ð ‡�×ÑØáÓÙ™s¨¸qÔAÈEÔ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ðB ‡�×ÑÐPÓQØ‡�×ÑØÒTóñAóó RñArG   