§
    ¦˜ºh±A  ã                   ó  — 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 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mZm Z m!Z!m"Z"  e	 ej#        d dgdd gg¦  «        ¦  «        Z$d e$dd…d f<   e
e	eeefe%e&ej'        ej(        e)ej*        ffd„Z+ e
ej,         -                    d¦  «         .                    dd¬¦  «        ¦  «        d dgdd ggd dgge$g e+d dgdd gg¦  «        ¢ e+d d gd d gg¦  «        ¢ e+d dgg¦  «        ¢ddgddgg‘ ej#        ddgddgg¦  «        ‘ ej#        ddgddgg¦  «        ‘ e ej#        ddgddgg¦  «        ¦  «        ‘g d¢ ej#        g d¢¦  «         ej#        g d¢ej'        ¬¦  «         ej#        g d¢ej(        ¬¦  «         ej#        g d¢e)¬¦  «         ej#        g d¢ej*        ¬¦  «         ej#        dgd gdgg¦  «         e ej#        g d¢¦  «        ¦  «        g d¢g d¢ ej#        g d¢¦  «         ej#        g d¢e/¬¦  «         ej#        g d¢e/¬¦  «        gg d¢g d¢gddgddgg ej#        g d¢g d¢g¦  «         ej#        g d¢g d¢gej'        ¬¦  «         ej#        g d¢g d¢gej(        ¬¦  «         ej#        g d¢g d¢ge)¬¦  «         ej#        g d¢g d¢gej*        ¬¦  «        g e+g d¢g d¢ge
e	fe&ej'        ej(        e)ej*        f¬¦  «        ¢ ej#        ddgddgg¦  «        ‘ ej#        ddgddgg¦  «        ‘ ej#        ddgddgge/¬¦  «        ‘ ej#        g d¢g¦  «        ‘ e ej#        g d¢g¦  «        ¦  «        ‘d dgddgg d g ej#        g d ¢¦  «         ej#        g d ¢e%¬¦  «         ej#        g d ¢ej'        ¬¦  «         ej#        g d ¢ej(        ¬¦  «         ej#        g d ¢e)¬¦  «         ej#        g d ¢ej*        ¬¦  «         ej#        d gdgg¦  «         e ej#        d gdgg¦  «        ¦  «        ddgdd!gdgddgd"d#g ej#        d"d#g¦  «        ddg ej#        d"d#ge/¬¦  «        gd$gd d%g ej#        d gd%gg¦  «         ej#        d gd%ggej*        ¬¦  «        g ej#        d d%gd%d gg¦  «         ej#        d d%gd%d ggej*        ¬¦  «         ej#        d d%gg¦  «        g e+d d%gd%d gge
e	fe)ej*        f¬¦  «        ¢ e+d d%gge
e	fe)ej*        f¬¦  «        ¢g g ej#        g ge/¬¦  «        d&g ej#         ej#        g ¦  «         ej#        g d'¢¦  «        ge/¬¦  «         ej#        g ¦  «         ej#        g d'¢¦  «        gh d(£ddhg e0g d'¢¦  «         e0ddg¦  «        gddd)œd dig ej#        d ¦  «         ej#        g g g¦  «         ej#        d dgddggd*d!gd+d,ggg¦  «        gd-œZ1h d(£ddd)œd!gd!gd)œd" e0g d'¢¦  «        dgZ2dgdgd dggg d.¢ ej#        g ddggd/¬¦  «         e ej#        g ddggd/¬¦  «        ¦  «        gZ3d0„ Z4d1„ Z5d2„ Z6d3„ Z7d4„ Z8d5„ Z9d6„ Z:d7„ Z;ej<         =                    d8g d9¢¦  «        d:„ ¦   «         Z>d;„ Z?d<„ Z@d=„ ZAdS )>é    )ÚproductN)Ú
coo_matrixÚ
csc_matrixÚ
csr_matrixÚ
dok_matrixÚissparseÚ
lil_matrix)Údatasets)ÚShuffleSplit)ÚSVC)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)Ú_NotAnArray)Ú_safe_split)Ú_ovr_decision_functionÚcheck_classification_targetsÚclass_distributionÚis_multilabelÚtype_of_targetÚunique_labelsé   c                 ó$   ‡ ‡— ˆˆ fd„|D ¦   «         S )Nc                 ó4   •— g | ]}‰D ]} |‰|¬ ¦  «        ‘ŒŒS )©Údtype© )Ú.0Úmatrix_typer   ÚdtypesÚmatrixs      €€úk/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_multiclass.pyú
<listcomp>z$_generate_sparse.<locals>.<listcomp>+   sO   ø€ ð ð ð àØðð ð ð 	ˆ�F %Ð(Ñ(Ô(ðð ð ð ó    r   )r!   Úmatrix_typesr    s   ` `r"   Ú_generate_sparser&   &   s4   øø€ ð
ð ð ð ð à'ðñ ô ð r$   é*   é   )é
   r)   )Úsizeéÿÿÿÿéýÿÿÿé   )
r   r   r(   r(   r   é   r(   r.   r.   r.   ©r   r   r(   r   ©r   r   r(   )ÚaÚbÚc)r   r   r(   r(   )r   r.   r(   r.   r1   r2   r3   Úd)r%   r    )
r   r   r   r   r   r   r   r   r   r   é   ÚabcÚdefgñhãˆµøä>ç      à?r   )r   r(   r-   >   r   r(   r-   ©r   r   r.   é   é   )úmultilabel-indicatorÚ
multiclassúmulticlass-multioutputÚbinaryÚ
continuousúcontinuous-multioutputÚunknown)r   r(   r9   Úobjectc            
      ó  — t          j        t          ¦  «        5  t          ¦   «          d d d ¦  «         n# 1 swxY w Y   t	          t          t          d¦  «        ¦  «        t          j        d¦  «        ¦  «         t	          t          t          j        d¦  «        ¦  «        t          j        d¦  «        ¦  «         t	          t          g d¢¦  «        t          j        g d¢¦  «        ¦  «         t	          t          t          j        g d¢g d¢g d¢g¦  «        ¦  «        t          j        d¦  «        ¦  «         t	          t          t          j        g d¢g d¢g¦  «        ¦  «        t          j        d¦  «        ¦  «         t	          t          g d¢t          d¦  «        ¦  «        t          j        d¦  «        ¦  «         t	          t          d	d
d¦  «        t          j        d¦  «        ¦  «         t          j        t          ¦  «        5  t          g d¢t          j	        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          t          j	        d¦  «        t          j	        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          t          t          j	        d¦  «        t          j	        d¦  «        ¦  «        t          j        d¦  «        ¦  «         d S )Nr)   )r.   r   r(   )r   r(   r.   )r   r   r   )r   r   r   )r   r   r   r-   r5   r0   ©r   )r(   r   )r5   r5   )r5   r.   )r.   r5   )
ÚpytestÚraisesÚ
ValueErrorr   r   ÚrangeÚnpÚarangeÚarrayÚonesr   r$   r"   Útest_unique_labelsrN   µ   sÿ  € å	Œ•zÑ	"Ô	"ð ð Ý‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ •}¥U¨2¡Y¤YÑ/Ô/µ´¸2±´Ñ?Ô?Ð?Ý•}¥R¤Y¨r¡]¤]Ñ3Ô3µR´Y¸r±]´]ÑCÔCÐCÝ•} Y Y YÑ/Ô/µ´¸)¸)¸)Ñ1DÔ1DÑEÔEÐEõ Ý•b”h 	 	 	¨9¨9¨9°i°i°iÐ@ÑAÔAÑBÔBÅBÄIÈaÁLÄLñô ð õ •}¥R¤X¨y¨y¨y¸)¸)¸)Ð.DÑ%EÔ%EÑFÔFÍÌ	ÐRSÉÌÑUÔUÐUõ •} Y Y Yµ°a±´Ñ9Ô9½2¼9ÀQ¹<¼<ÑHÔHÐHÝ•} Y°°fÑ=Ô=½r¼yÈ¹|¼|ÑLÔLÐLõ 
Œ•zÑ	"Ô	"ð 2ð 2Ý�i�i�i¥¤¨¡¤Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å	Œ•zÑ	"Ô	"ð 8ð 8Ý•b”g˜f‘o”o¥r¤w¨v¡¤Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ •}¥R¤W¨V¡_¤_µb´g¸f±o´oÑFÔFÍÌ	ÐRSÉÌÑUÔUÐUÐUÐUs0   š5µ9¼9È
%H;È;H?ÉH?É5J Ê J$Ê'J$c                  óŒ  — dD ]!} t           |          D ]}t          |¦  «         ŒŒ"t          D ]B}t          j        t
          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒCdD ]R}t           |         D ]B}t          j        t
          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒCŒSd S )N)r?   r=   r<   )rB   r@   rA   r>   )ÚEXAMPLESr   ÚNON_ARRAY_LIKE_EXAMPLESrF   rG   rH   )ÚformatÚyÚexampleÚy_types       r"   Útest_unique_labels_non_specificrV   Ó   sm  € ð Cð ð ˆÝ˜&Ô!ð 	ð 	ˆAÝ˜!ÑÔÐÐð	õ +ð #ð #ˆÝŒ]�:Ñ&Ô&ð 	#ð 	#Ý˜'Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#øðð 'ð 'ˆõ   Ô'ð 	'ð 	'ˆGÝ”�zÑ*Ô*ð 'ð 'Ý˜gÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'øð	'ð'ð 's$   ÁA#Á#A'	Á*A'	ÂB7Â7B;Â>B;c                  ó®  — t          t          d         t          d         t          d         z   ¦  «        } | D ]‡\  }}t          j        t          ¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   Œˆt          j        t          ¦  «        5  t          ddggddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddgdd	gg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          dd
gdd	gg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr<   r=   r?   r   r(   r1   r4   Ú1r-   Ú2)r   rP   rF   rG   rH   r   )Úmix_clf_formatÚy_multilabelÚy_multiclasss      r"   Útest_unique_labels_mixed_typesr]   ë   s;  € åÝÐ'Ô(­(°<Ô*@Å8ÈHÔCUÑ*Uñô €Nð '5ð 6ð 6Ñ"ˆ�lÝŒ]�:Ñ&Ô&ð 	6ð 	6Ý˜,¨Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6åŒ]�:Ñ&Ô&ð 	6ð 	6Ý˜,¨Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6øõ 
Œ•zÑ	"Ô	"ð .ð .Ý˜˜1�v�h # s  Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ 
Œ•zÑ	"Ô	"ð  ð  Ý�s˜A�hÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ 
Œ•zÑ	"Ô	"ð *ð *Ý˜˜Q�x ! Q Ð(Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *õ 
Œ•zÑ	"Ô	"ð ,ð ,Ý˜˜S�z A q 6Ð*Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,sl   ÁA2Á2A6	Á9A6	ÂB3Â3B7	Â:B7	ÃC;Ã;C?ÄC?ÄD=Ä=EÅEÅ!FÆFÆ
FÆ'G
Ç
GÇGc                  óÐ  ‡— t                                ¦   «         D �]I\  } }| dv rd}nd}|D �]6Š| dk    rt          ‰¦  «        rd}nd}t          ‰¦  «        spt          ‰d¦  «        r´t	          j        ‰¦  «        j        dk    r—t	          j        ‰¦  «        j        j        dv rwt	          j        ‰¦  «        j	        d         d	k    rTˆfd
„t          t          t          t          t          fD ¦   «         }|D ]%}|t          |¦  «        k    sJ d|›d|›�¦   «         ‚Œ&t          ‰¦  «        r‰                     ¦   «         Š|t          ‰¦  «        k    sJ d‰›d|›�¦   «         ‚�Œ8�ŒKd S )N)r<   TFr<   Ú	__array__r(   Úbiufr   r   c                 ó&   •— g | ]} |‰¦  «        ‘ŒS r   r   )r   Úsparse_matrixrT   s     €r"   r#   z&test_is_multilabel.<locals>.<listcomp>  s3   ø€ ð 	#ð 	#ð 	#à%ð "�M 'Ñ*Ô*ð	#ð 	#ð 	#r$   zis_multilabel(ú) should be )rP   Úitemsr   ÚhasattrrJ   ÚasarrayÚndimr   ÚkindÚshaper   r   r   r   r	   r   Útoarray)ÚgroupÚgroup_examplesÚ	dense_expÚ
sparse_expÚexamples_sparseÚexmpl_sparserT   s         @r"   Útest_is_multilabelrq     sù  ø€ Ý!)§¢Ñ!1Ô!1ð )Gñ )GÑˆˆ~ØÐ,Ð,Ð,ØˆIˆIàˆIà%ð #	Gñ #	GˆGð Ð.Ò.Ð.µ8¸GÑ3DÔ3DÐ.Ø!�
�
à"�
å˜Ñ Ô ð UÝ˜ Ñ-Ô-ðUå”J˜wÑ'Ô'Ô,°Ò1Ð1Ý”J˜wÑ'Ô'Ô-Ô2°fÐ<Ð<Ý”J˜wÑ'Ô'Ô-¨aÔ0°1Ò4Ð4ð	#ð 	#ð 	#ð 	#õ #Ý"Ý"Ý"Ý"ð*ð	#ñ 	#ô 	#�ð %4ð Uð U�LØ%­Ø$ñ*ô *ò ð ð ð à;G¸<¸<ÈÈÐTñô ð ð õ
 ˜Ñ Ô ð ,Ø!Ÿ/š/Ñ+Ô+�à¥Øñ!ô !ò ð ð ð à3:°7°7¸I¸IÐFñô ð ñ ñC#	Gð)Gð )Gr$   c                  ó.  — t                                ¦   «         D ]z} | dv rUt           |          D ]F}d}t          j        t          |¬¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒGŒ[t           |          D ]}t          |¦  «         ŒŒ{d S )N)rB   r@   rA   zUnknown label type: ©Úmatch)rP   ÚkeysrF   rG   rH   r   )rU   rT   Úmsgs      r"   Ú!test_check_classification_targetsrw   1  sò   € Ý—-’-‘/”/ð 6ð 6ˆØÐHÐHÐHÝ# FÔ+ð :ð :�Ø,�Ý”]¥:°SÐ9Ñ9Ô9ð :ð :Ý0°Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :øð:õ
 $ FÔ+ð 6ð 6�Ý,¨WÑ5Ô5Ð5Ð5ð6ð6ð 6s   ÁA(Á(A,Á/A,c                  óì  — t                                ¦   «         D ]=\  } }|D ]5}t          |¦  «        | k    s J d|›d| ›dt          |¦  «        ›�¦   «         ‚Œ6Œ>t          D ]F}d}t	          j        t          |¬¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒGt          D ]F}d}t	          j        t          |¬¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒGd S )Nztype_of_target(rc   z, got z6Expected array-like \(array or non-string sequence\).*rs   zœYou appear to be using a legacy multi-label data representation. Sequence of sequences are no longer supported; use a binary array or sparse matrix instead.)rP   rd   r   rQ   rF   rG   rH   ÚMULTILABEL_SEQUENCES)rk   rl   rT   Ú	msg_regexrv   s        r"   Útest_type_of_targetr{   >  s«  € Ý!)§¢Ñ!1Ô!1ð ð Ñˆˆ~Ø%ð 	ð 	ˆGå˜wÑ'Ô'¨5Ò0Ð0Ð0Ð0à��Ø��Ý˜wÑ'Ô'Ð'ðñ 1Ô0Ð0Ð0ð	õ +ð $ð $ˆØMˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	$ð 	$Ý˜7Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$øõ (ð $ð $ˆð<ð 	õ
 Œ]�:¨SÐ1Ñ1Ô1ð 	$ð 	$Ý˜7Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$øð$ð $s$   Á>BÂB	Â!B	ÃC(Ã(C,	Ã/C,	c                  ó2  — t          j        d¦  «        } | j                             dt          j        t          j        dt          j        g¦  «        }d}t          j        t          |¬¦  «        5  t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚpandasr   z1y cannot be class 'SparseSeries' or 'SparseArray'rs   )	rF   ÚimportorskipÚarraysÚSparseArrayrJ   ÚnanrG   rH   r   )ÚpdrS   rv   s      r"   Ú!test_type_of_target_pandas_sparserƒ   X  sÄ   € Ý	Ô	˜XÑ	&Ô	&€Bà
Œ	×Ò˜q¥"¤&­"¬&°!µR´VÐ<Ñ=Ô=€AØ
=€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ý�qÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á/BÂBÂBc                  ó  — t          j        d¦  «        } dD ]^}|                      g d¢|¬¦  «        }t          |¦  «        dk    sJ ‚|                      g d¢|¬¦  «        }t          |¦  «        dk    sJ ‚Œ_|                      dd	gd	dggd
¬¦  «        }t          |¦  «        dk    sJ ‚|                      ddgddggd¬¦  «        }t          |¦  «        dk    sJ ‚|                      ddgddggd¬¦  «        }t          |¦  «        dk    sJ ‚dS )z<Check that type_of_target works with pandas nullable dtypes.r}   )ÚInt32ÚFloat32)r   r   r(   r-   r.   r   r=   )r   r   r   r   r?   gffffffö?gÍÌÌÌÌÌ@r†   rA   r   r   r…   r<   r(   r-   r>   N)rF   r~   ÚSeriesr   Ú	DataFrame)r‚   r   Úy_trues      r"   Ú#test_type_of_target_pandas_nullablerŠ   a  sB  € å	Ô	˜XÑ	&Ô	&€Bà%ð 2ð 2ˆØ—’˜?˜?˜?°%�Ñ8Ô8ˆÝ˜fÑ%Ô%¨Ò5Ð5Ð5Ð5à—’˜<˜<˜<¨u�Ñ5Ô5ˆÝ˜fÑ%Ô%¨Ò1Ð1Ð1Ð1Ð1à�\Š\˜C ˜:¨¨S zÐ2¸)ˆ\ÑDÔD€FÝ˜&Ñ!Ô!Ð%=Ò=Ð=Ð=Ð=à�\Š\˜A˜q˜6 A q 6Ð*°'ˆ\Ñ:Ô:€FÝ˜&Ñ!Ô!Ð%;Ò;Ð;Ð;Ð;à�\Š\˜A˜q˜6 A q 6Ð*°'ˆ\Ñ:Ô:€FÝ˜&Ñ!Ô!Ð%=Ò=Ð=Ð=Ð=Ð=Ð=r$   r   )ÚInt64ÚFloat64Úbooleanc                 óÖ   — t          j        d¦  «        }|                     g d¢| ¬¦  «        }|                     g d¢d¬¦  «        }t          ||¦  «        }t	          |ddg¦  «         dS )	zgChecks that unique_labels work with pandas nullable dtypes.

    Non-regression test for gh-25634.
    r}   )	r   r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   Úint64r   r   N)rF   r~   r‡   r   r   )r   r‚   r‰   Úy_predictedÚlabelss        r"   Ú"test_unique_labels_pandas_nullabler’   v  su   € õ 
Ô	˜XÑ	&Ô	&€Bà�YŠYÐ2Ð2Ð2¸%ˆYÑ@Ô@€FØ—)’)Ð7Ð7Ð7¸w�)ÑGÔG€Kå˜6 ;Ñ/Ô/€FÝ�v  1˜vÑ&Ô&Ð&Ð&Ð&r$   c            	      ó  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        |||fd	¬
¦  «        }t	          | ¦  «        \  }}}t	          |¦  «        \  }}	}
g d¢g d¢dgdgg}g d¢}g d¢g d¢dgdgg}t          | j        d         ¦  «        D ]ª}t          ||         ||         ¦  «         t          ||         ||         ¦  «         t          ||         ||         ¦  «         t          ||         ||         ¦  «         t          |	|         ||         ¦  «         t          |
|         ||         ¦  «         Œ«t	          | g d¢¦  «        \  }}}t	          | g d¢¦  «        \  }}	}
g d¢g d¢dgdgg}t          | j        d         ¦  «        D ]ª}t          ||         ||         ¦  «         t          ||         ||         ¦  «         t          ||         ||         ¦  «         t          ||         ||         ¦  «         t          |	|         ||         ¦  «         t          |
|         ||         ¦  «         Œ«d S )N)r   r   r   r   )r(   r(   r   r   )r   r-   r   r   )r.   r(   r   r   )r(   r   r   r   )r   r(   r   r.   r(   r   r   r(   r-   r(   r-   r   r   r   r   r   r   )r   r   r(   r-   r.   r5   r   r   r(   r-   r5   r   r   r(   r-   r.   r5   )r   r:   é   r”   é   )r:   r.   )ri   )r   r(   r.   )r   r(   r-   r   r   )r-   r-   r   r   )r8   çUUUUUUÕ?gUUUUUUÅ?)r–   r–   r–   ç      ð?)r—   ç       @r—   r˜   r—   r˜   )çÇqÇqÜ?r–   çÇqÇqÌ?)rš   r™   r–   )rJ   rL   Úspr   r   rI   ri   r   )rS   ÚdataÚindicesÚindptrÚy_spÚclassesÚ	n_classesÚclass_priorÚ
classes_spÚn_classes_spÚclass_prior_spÚclasses_expectedÚn_classes_expectedÚclass_prior_expectedÚks                  r"   Útest_class_distributionrª   …  s  € Ý
ŒàˆLˆLØˆLˆLØˆLˆLØˆLˆLØˆLˆLØˆLˆLð	
ñ		ô 		€Aõ Œ8ÐGÐGÐGÑHÔH€DÝŒhÐJÐJÐJÑKÔK€GÝŒXÐ(Ð(Ð(Ñ)Ô)€FÝŒ=˜$ ¨Ð0¸Ð?Ñ?Ô?€Då&8¸Ñ&;Ô&;Ñ#€GˆY˜Ý/AÀ$Ñ/GÔ/GÑ,€J�˜nØ!˜	˜	 9 9 9¨q¨c°A°3Ð7ÐØ%˜˜ÐØ1Ð1Ð1Ð3HÐ3HÐ3HÈ3È%ÐRUÐQVÐWÐå�1”7˜1”:ÑÔð Nð NˆÝ! '¨!¤*Ð.>¸qÔ.AÑBÔBÐBÝ! )¨A¤,Ð0BÀ1Ô0EÑFÔFÐFÝ! +¨a¤.Ð2FÀqÔ2IÑJÔJÐJå! *¨Q¤-Ð1AÀ!Ô1DÑEÔEÐEÝ! ,¨q¤/Ð3EÀaÔ3HÑIÔIÐIÝ! .°Ô"3Ð5IÈ!Ô5LÑMÔMÐMÐMõ );Ø	Ð)Ð)Ð)ñ)ô )Ñ%€Wˆi˜õ 2DØ	Ð)Ð)Ð)ñ2ô 2Ñ.€Z�˜~ð 2Ð1Ð1Ð3HÐ3HÐ3HÈ3È%ÐRUÐQVÐWÐå�1”7˜1”:ÑÔð Nð NˆÝ! '¨!¤*Ð.>¸qÔ.AÑBÔBÐBÝ! )¨A¤,Ð0BÀ1Ô0EÑFÔFÐFÝ! +¨a¤.Ð2FÀqÔ2IÑJÔJÐJå! *¨Q¤-Ð1AÀ!Ô1DÑEÔEÐEÝ! ,¨q¤/Ð3EÀaÔ3HÑIÔIÐIÝ! .°Ô"3Ð5IÈ!Ô5LÑMÔMÐMÐMðNð Nr$   c                  ó¼  — t          ¦   «         } t          d¬¦  «        }t          j        ¦   «         }|j        |j        }}t          j        ||j        ¦  «        }t          dd¬¦  «        }t          | 
                    |¦  «        ¦  «        d         \  }}t          | |||¦  «        \  }	}
t          ||||¦  «        \  }}t          |t          j        |	|	j        ¦  «        ¦  «         t          |
|¦  «         t          | ||||¦  «        \  }}t          |||||¦  «        \  }}t          |t          j        ||	j        ¦  «        ¦  «         t          ||¦  «         d S )NÚprecomputed)Úkernelg      Ð?r   )Ú	test_sizeÚrandom_state)r   r
   Ú	load_irisrœ   ÚtargetrJ   ÚdotÚTr   ÚlistÚsplitr   r   )ÚclfÚclfpÚirisÚXrS   ÚKÚcvÚtrainÚtestÚX_trainÚy_trainÚK_trainÚy_train2ÚX_testÚy_testÚK_testÚy_test2s                    r"   Ú'test_safe_split_with_precomputed_kernelrÆ   ¸  s=  € Ý
‰%Œ%€CÝ�mÐ$Ñ$Ô$€DåÔÑÔ€DØŒ9�d”k€q€AÝ
Œˆq�!”#‰Œ€Aå	 °1Ð	5Ñ	5Ô	5€BÝ�r—x’x ‘{”{Ñ#Ô# AÔ&�K€Eˆ4å" 3¨¨1¨eÑ4Ô4Ñ€GˆWÝ# D¨!¨Q°Ñ6Ô6Ñ€GˆXÝ˜g¥r¤v¨g°w´yÑ'AÔ'AÑBÔBÐBÝ˜g xÑ0Ô0Ð0å   a¨¨D°%Ñ8Ô8�N€FˆFÝ! $¨¨1¨d°EÑ:Ô:�O€FˆGÝ˜f¥b¤f¨V°W´YÑ&?Ô&?Ñ@Ô@Ð@Ý˜f gÑ.Ô.Ð.Ð.Ð.r$   c                  ó  ‡‡‡— t          j        g d¢g d¢g d¢g d¢g¦  «        Št          j        g d¢g d¢g d¢g d¢g¦  «        ŠdŠt          ‰‰‰¦  «        } t          j        g d¢g d	¢g d¢g d¢g¦  «        }t          || d
¬¦  «         t          j        g d¢¦  «        }t	          t          j        | d¬¦  «        |¦  «         | d         | d         k    sJ ‚ˆˆˆfd„t          d¦  «        D ¦   «         }t          | |d¬¦  «         d S )N)r   r   r   )r   r   r   )ç €à7yÃAÃr   rÈ   )r—   r˜   g      À)g      Àr˜   g      @)g      à¿gš™™™™™É?r8   r-   r/   )r   r   r   r8   )Úatol)r(   r   r(   r(   r   )Úaxis)r(   r(   )r-   r(   c           	      ó¢   •— g | ]K}t          t          j        ‰|         g¦  «        t          j        ‰|         g¦  «        ‰¦  «        d          ‘ŒLS rE   )r   rJ   rL   )r   ÚiÚconfidencesr¡   Úpredictionss     €€€r"   r#   z.test_ovr_decision_function.<locals>.<listcomp>ë  sf   ø€ ð ð ð ð õ 	ÝŒH�k !”nÐ%Ñ&Ô&­¬°+¸a´.Ð1AÑ(BÔ(BÀIñ	
ô 	
à
ô	ðð ð r$   r.   g�íµ ÷Æ°>)rJ   rL   r   r   r   ÚargmaxrI   )Ú
dec_valuesÚvotesÚexpected_predictionÚdec_values_onerÍ   r¡   rÎ   s       @@@r"   Útest_ovr_decision_functionrÔ   Î  sh  øøø€ õ ”(˜I˜I˜I y y y°)°)°)¸Y¸Y¸YÐGÑHÔH€Kå”(Ø	Ð	Ð	Ð,Ð,Ð,Ð.>Ð.>Ð.>Ð@PÐ@PÐ@PÐQñô €Kð €Iå'¨°[À)ÑLÔL€Jõ ŒH�i�i�i   ¨I¨I¨I°y°y°yÐAÑBÔB€Eå�E˜:¨CÐ0Ñ0Ô0Ð0õ
 œ( < < <Ñ0Ô0ÐÝ•r”y °!Ð4Ñ4Ô4Ð6IÑJÔJÐJð �dÔ˜j¨Ô.Ò.Ð.Ð.Ð.ðð ð ð ð ð õ �q‘”ð	ñ ô €Nõ �J °TÐ:Ñ:Ô:Ð:Ð:Ð:r$   )BÚ	itertoolsr   ÚnumpyrJ   rF   Úscipy.sparseÚsparser›   r   r   r   r   r   r	   Úsklearnr
   Úsklearn.model_selectionr   Úsklearn.svmr   Úsklearn.utils._testingr   r   r   Úsklearn.utils.estimator_checksr   Úsklearn.utils.metaestimatorsr   Úsklearn.utils.multiclassr   r   r   r   r   r   rL   Úsparse_multilable_explicit_zeroÚboolÚintÚint8Úuint8ÚfloatÚfloat32r&   ÚrandomÚRandomStateÚrandintrC   Ú	frozensetrP   rQ   ry   rN   rV   r]   rq   rw   r{   rƒ   rŠ   ÚmarkÚparametrizer’   rª   rÆ   rÔ   r   r$   r"   ú<module>rí      s  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 7Ð 6Ð 6Ð 6Ð 6Ð 6Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð #- *¨X¨R¬X¸¸1°vÀÀ1¸vÐ6FÑ-GÔ-GÑ"HÔ"HÐ Ø()Ð     1 Ñ %ð
 ˜j¨*°jÀ*ÐMØ�#�r”w ¤¨%°´Ð<ð	ð 	ð 	ð 	ð  	ˆ
�2”9×(Ò(¨Ñ,Ô,×4Ò4°Q¸XÐ4ÑFÔFÑGÔGØ
ˆQˆ�!�Q�ÐØ
ˆQˆˆØ'ðð 
Ð	˜A˜q˜6 A q 6Ð*Ñ	+Ô	+ðð 
Ð	˜A˜q˜6 A q 6Ð*Ñ	+Ô	+ðð 
Ð	˜A˜q˜6˜(Ñ	#Ô	#ðð ˆaˆ�1�b�'Ððð 	ˆŒ�2�q�'˜A˜r˜7Ð#Ñ$Ô$ðð 	ˆŒ�2�q�'˜A˜r˜7Ð#Ñ$Ô$ðð 	ˆ�H�B”H˜r 1˜g¨¨2 wÐ/Ñ0Ô0Ñ1Ô1ðð" 	'Ð&Ð&ØˆŒ���ÑÔØˆŒ��� "¤'Ð*Ñ*Ô*ØˆŒ��� "¤(Ð+Ñ+Ô+ØˆŒ��� %Ð(Ñ(Ô(ØˆŒ��� "¤*Ð-Ñ-Ô-ØˆŒ�1�#˜�s˜Q˜C�Ñ!Ô!Øˆ�H�B”H˜Y˜Y˜YÑ'Ô'Ñ(Ô(Øˆ	ˆ	ØˆˆØˆŒ���Ñ!Ô!ØˆŒ���¨Ð/Ñ/Ô/ØˆŒ���¨Ð/Ñ/Ô/ðð  
ˆˆ�|�|�|Ð$Ø
ˆsˆ�c˜3�ZÐ ØˆŒ�,�,�,   Ð-Ñ.Ô.ØˆŒ�,�,�,   Ð-°R´WÐ=Ñ=Ô=ØˆŒ�,�,�,   Ð-°R´XÐ>Ñ>Ô>ØˆŒ�,�,�,   Ð-°UÐ;Ñ;Ô;ØˆŒ�,�,�,   Ð-°R´ZÐ@Ñ@Ô@ðð 
Ð	Øˆ\ˆ\˜<˜<˜<Ð(Ø$ jÐ1Ø˜œ "¤(¨E°2´:Ð>ð

ñ 

ô 

ðð 	ˆŒ�3˜�*˜s C˜jÐ)Ñ*Ô*ðð 	ˆŒ�3˜�*˜s C˜jÐ)Ñ*Ô*ðð 	ˆŒ�3˜�*˜s C˜jÐ)°Ð8Ñ8Ô8ðð  	ˆŒ�)�)�)�ÑÔð!ð" 	ˆ�H�B”H˜i˜i˜i˜[Ñ)Ô)Ñ*Ô*ð#ð( 
ˆAˆØ	
ˆAˆØ
Ø	
ˆØˆŒÐ/Ð/Ð/Ñ0Ô0ØˆŒÐ/Ð/Ð/°tÐ<Ñ<Ô<ØˆŒÐ/Ð/Ð/°r´wÐ?Ñ?Ô?ØˆŒÐ/Ð/Ð/°r´xÐ@Ñ@Ô@ØˆŒÐ/Ð/Ð/°uÐ=Ñ=Ô=ØˆŒÐ/Ð/Ð/°r´zÐBÑBÔBØˆŒ�1�#˜�s�ÑÔØˆ�H�B”H˜q˜c A 3˜ZÑ(Ô(Ñ)Ô)Ø	
ˆBˆØ	
ˆAˆØ	ˆØ	ˆcˆ
Ø	�ˆØˆŒ�%˜�Ñ Ô Ø	ˆcˆ
ØˆŒ�%˜� vÐ.Ñ.Ô.ð)ð. 
ˆØ	
ˆCˆØˆŒ�1�#˜�u�ÑÔØˆŒ�1�#˜�u� R¤ZÐ0Ñ0Ô0ð	ð 	ˆŒ�1�c�(˜S !˜HÐ%Ñ&Ô&ØˆŒ�1�c�(˜S !˜HÐ%¨R¬ZÐ8Ñ8Ô8ØˆŒ�1�c�(�ÑÔðð 
Ð	Ø�ˆX˜˜Q�xÐ Ø$ jÐ1Ø˜2œ:Ð&ð

ñ 

ô 

ð	ð 
Ð	Ø�ˆXˆJØ$ jÐ1Ø˜2œ:Ð&ð

ñ 

ô 

ðð  
ˆØˆŒ�"�˜VÐ$Ñ$Ô$Ø	ˆàˆŒ�(�"”(˜2‘,”,  ¤¨¨¨Ñ 3Ô 3Ð4¸FÐCÑCÔCØ	ˆŒ�"‰Œ�x�r”x 	 	 	Ñ*Ô*Ð+Ø	ˆˆ�Q˜�FÐØ	ˆ�9�9�9Ñ	Ô	˜y˜y¨!¨Q¨Ñ0Ô0Ð1à�SÐ	Ð	˜A˜s˜8Ð$àˆŒ�‰ŒàˆŒ�"�b�ÑÔàˆŒ�A�q�6˜A˜q˜6Ð" a¨ V¨a°¨VÐ$4Ð5Ñ6Ô6ð!ð}pð p€ðf €I€IØ�ÐÐØ	
ˆ��ÐÐØ	Ø€IˆiˆiˆiÑÔØðÐ ð €Sˆ1ˆ#��1ˆvÐØÐÐØ€B„Hˆb�1�a�&ˆ\ Ð*Ñ*Ô*Ø€K��”˜"˜q !˜f˜¨XÐ6Ñ6Ô6Ñ7Ô7ð	Ð ðVð Vð Vð<'ð 'ð 'ð0,ð ,ð ,ð2*Gð *Gð *GðZ	6ð 	6ð 	6ð$ð $ð $ð4ð ð ð>ð >ð >ð* „×Ò˜Ð"AÐ"AÐ"AÑBÔBð'ð 'ñ CÔBð'ð0Nð 0Nð 0Nðf/ð /ð /ð,$;ð $;ð $;ð $;ð $;r$   