
     h/~                        d dl Zd dlm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 d d
lmZmZ d dlmZ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"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl6m:Z: d dl;m<Z< dZ=ej>        ?                    de= d          Z@ e:jA                    ZBejC        D                    d           ZEeEF                    eBjG        jH                  ZIeBjJ        eI         eB_J        eBjG        eI         eB_G        dZKd ZLd ZMd  ZNd! ZOd" ZPd# ZQd$ ZRd% ZSd& ZTd' ZUd( ZVd) ZWd* ZXd+ ZYd, ZZd- Z[d. Z\d/ Z]d0 Z^d1 Z_d2 Z`d3 Zad4 Zbd5 Zcd6 Zdd7 Zed8 Zfd9 Zgd: Zhd; Zid< Zjd= Zkd> Zld? Zmd@ ZndA ZodB Zpej>        q                    dCeeg          dD             Zrej>        q                    dCeeg          dE             Zsej>        q                    dCeeg          dF             Ztej>        q                    dGeju        ejv        g          dH             ZwdI ZxdS )J    N)assert_allclose)escape)assert_array_equal)assert_almost_equal)CheckingClassifier)OneVsRestClassifier)OneVsOneClassifier)OutputCodeClassifier)check_classification_targetstype_of_target)check_arrayshuffle)precision_score)recall_score)	LinearSVCSVC)MultinomialNB)LinearRegressionLasso
ElasticNetRidge
PerceptronLogisticRegressionSGDClassifier)DecisionTreeClassifierDecisionTreeRegressor)KNeighborsClassifier)GridSearchCVcross_val_score)Pipelinemake_pipeline)SimpleImputer)svm)NotFittedError)datasets)load_breast_cancerz/The default value for `force_alpha` will changezignore:z:FutureWarning   c                  *   t          t          d                    } t          j        t                    5  |                     g            d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        ddgddgg          }t          j        ddgddgg          }t          t                                
                    ||           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        ddgddgg          }t          j        dd	gd
dgg          }t          t                                
                    ||           d d d            d S # 1 swxY w Y   d S )Nr   random_statez@Multioutput target data is not supported with label binarizationmatch      r'   g      ?g333333@g@皙?)r   r   pytestraisesr$   predict
ValueErrornparrayr   fit)ovrmsgXys       Y/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/sklearn/tests/test_multiclass.pytest_ovr_exceptionsr<   7   s1   
iQ777
8
8C 
~	&	&  B               MC	z	-	-	- 7 7Hq!fq!f%&&Hq!fq!f%&&MOO,,00A6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7
 
z	-	-	- 7 7Hq!fq!f%&&HsCj3*-..MOO,,00A6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s7   AA AA$C11C58C5A$FFFc                      t          j        g d          } t          |           }t          j        t
          |          5  t          |            d d d            d S # 1 swxY w Y   d S )N)        g?       @g      @r+   )r4   r5   r   r0   r1   r3   r   )r:   r8   s     r;   !test_check_classification_targetsr@   K   s    
%%%&&A


C	z	-	-	- ( ($Q'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   AA"%A"c                  ^   t          t          d                    } |                     t          j        t          j                                      t          j                  }t          | j                  t          k    sJ t          d          }|                    t          j        t          j                                      t          j                  }t          j        t          j        |k              t          j        t          j        |k              k    sJ t          t                                } |                     t          j        t          j                                      t          j                  }t          j        t          j        |k              dk    sJ d S )Nr   r)   ?)r   r   r6   irisdatatargetr2   lenestimators_	n_classesr4   meanr   )r7   predclfpred2s       r;   test_ovr_fit_predictrM   S   s(   
iQ777
8
8C7749dk**2249==Ds9,,,,

#
#
#CGGDIt{++33DI>>E74;$&''274;%3G+H+HHHHH moo
.
.C7749dk**2249==D74;$&''$......    c                     t          t          j        t          j        d          \  } }t	          t                                }|                    | d d         |d d         t          j        |                     |                    | dd          |dd                     |	                    |           }t	          t                                }|
                    | |          	                    |           }t          ||           t          |j                  t          t          j        |                    k    sJ t          j        ||k              dk    sJ t          j        t          j                            dd                    } g d}t	          t%          dd d	d
                    }|                    | d d         |d d         t          j        |                     |                    | dd          |dd                     |	                    |           }t	          t%          dd d	d
                    }|
                    | |          	                    |           }t          j        ||k              t          j        ||k              k    sJ t	          t'                                }t)          |d          rJ d S )Nr   r)   d   rB      r.   r-   r-   r-   r-   r.   r'   r'   r   r   r.   r'   r-   r.   r'   r-   F)max_itertolr   r*      partial_fit)r   rC   rD   rE   r   r   rV   r4   uniquer2   r6   r   rF   rG   rI   absrandomrandnr   r   hasattr)r9   r:   r7   rJ   ovr2rL   ovr1pred1s           r;   test_ovr_partial_fitr_   c   sl   49dk:::DAq
moo
.
.COOAdsdGQttWbill333OOAcddGQsttW%%%;;q>>D}//DHHQNN""1%%Ee$$$s3ry||#4#44444719$$$$ 	ryr1%%&&A222A
qdEJJJ C OOAbqbE1RaR5")A,,///OOAabbE1QRR5!!!;;q>>DqdEJJJ D HHQNN""1%%E7419!!4!44444 cee
$
$CsM*******rN   c                     t          t                                } t          j        t          j                            dd                    }g d}|                     |d d         |d d         t          j        |                     dg|dd         z   }d}t          j	        t          |          5  |                     |dd          |	           d d d            d S # 1 swxY w Y   d S )
NrQ   r.   rR   rU      zAMini-batch contains \[.+\] while classes must be subset of \[.+\]r+   )r9   r:   )r   r   r4   rX   rY   rZ   rV   rW   r0   r1   r3   )r7   r9   r:   y1r8   s        r;   test_ovr_partial_fit_exceptionsrd      s   
moo
.
.C
ryr1%%&&A222AOOAbqbE1RaR5")A,,/// q2wB
NC	z	-	-	- ' '!ABB%2&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   6 C##C'*C'c                  V   t          t                                } |                     t          j        t          j                                      t          j                  }t          | j                  t          k    sJ t          t          j        |          g d           t          j        |t          j        k              dk    sJ t          t                                } |                     t          j        t          j                                      t          j                  }t          | j                  t          t          dz
  z  dz  k    sJ t          t          j        |          g d           t          j        |t          j        k              dk    sJ d S )N)r   r-   r.   ?r-   r.   )r   r   r6   rC   rD   rE   r2   rF   rG   rH   r   r4   rW   rI   r	   )r7   rJ   s     r;   test_ovr_ovo_regressorrg      s@    355
6
6C7749dk**2249==Ds9,,,,ry			222744;&''#----
244
5
5C7749dk**2249==Ds9	A#>#BBBBBry			222744;&''#------rN   c            
      R   t           j        t           j        t           j        t           j        t           j        fD ]} t          d          }t          j        ddddddd	
          \  }}|d d         |d d         }}|dd          }t          |          
                    ||          }|                    |          }t          |          
                    | | |                    }	|	                    |          }
|j        sJ t          j        |
          sJ t          |
                                |           |	                    |          }|dk    }t          ||
                                           t#          j                    }t          |          
                    | | |                    }	|	                    |          d	k                        t*                    }t          ||	                    |                                                     d S )Nr-   alpharP      ra   r'   2   Tr   	n_samples
n_featuresrH   n_labelslengthallow_unlabeledr*   P         ?)sp
csr_matrix
csc_matrix
coo_matrix
dok_matrix
lil_matrixr   r%   make_multilabel_classificationr   r6   r2   multilabel_issparser   toarraypredict_probar#   r   decision_functionastypeint)sparsebase_clfr9   YX_trainY_trainX_testrK   Y_predclf_sprsY_pred_sprsY_probarJ   dec_preds                 r;   test_ovr_fit_predict_sparser      s   




 ,I ,I !q)))6 
 
 
1 SbS61SbS6233!(++//AAV$$&x0044WffWooNN&&v..{;''''';..00&999 ((00 }4!4!4!6!6777 gii&s++//II..v66:BB3GG8X%5%5f%=%=%E%E%G%GHHHHY,I ,IrN   c                     t          j        d          } d| d dd d f<   t          j        d          }d|dd df<   d|d d df<   d|d d df<   t          t	                                }d}t          j        t          |          5  |                    | |           d d d            n# 1 swxY w Y   |	                    |           }t          t          j        |          t          j        |                     |                    |           }t          j        |d d d	d f                   dk    sJ |                    |           }t          |d d d
f         t          j        | j        d                              t          j        d          }d|dd df<   t          t	                                }d}t          j        t          |          5  |                    | |           d d d            n# 1 swxY w Y   |                    |           }t          |d d d
f         t          j        | j        d                              d S )N
   r.   r   ra   )r   r'   r-   r.   z,Label .+ is present in all training examplesr+   rb   z/Label not 1 is present in all training examples)r4   oneszerosr   r   r0   warnsUserWarningr6   r2   r   r5   r   rW   r   shape)r9   r:   r7   r8   y_preds        r;   test_ovr_always_presentr      s    	AAbqb!!!eH 	AAabb!eHAaaadGAaaadG
022
3
3C
9C	k	-	-	-  1              [[^^Frx''!555""1%%F9VAAArssF^$$))))q!!Fvaaae}bgagaj&9&9::: 	AAabb!eH
022
3
3C
<C	k	-	-	-  1              q!!Fvaaae}bhqwqz&:&:;;;;;s$   B**B.1B.G==HHc                     t          j        g dg dg dg dg dg          } g d}t          j        g dg dg d	g dg d	g          }t          d
                                          }t	                      t          d          t                      t                      t                      fD ]}t          |          
                    | |          }t          |j                  |k    sJ |                    t          j        g dg                    d         }t          |dg           t          |          
                    | |          }|                    g dg          d         }t          |g d           d S )Nr   r   ra   r   ra   r   r'   r   r   r   r      r   r   r   )eggsspamhamr   r   )r   r   r-   r   r-   r   r-   r   r   zham eggs spamr   r)   r   r      r   )r4   r5   setsplitr   r   r   r   r   r   r6   classes_r2   r   )r9   r:   r   classesr   rK   r   s          r;   test_ovr_multiclassr      s   
)))YYY			999iiiHIIA...A
)))YYY			999iiiHIIA/''))**G 	q!!! . . "(++//1553<  G++++RXyyyk2233A66F8,,, "(++//155iii[))!,6999----. .rN   c                     t          j        g dg dg dg dg dg          g dt          j        g dg          j        t          d                                          dfd
	} t          d          t                      t                      t                      fD ]} | |           t                      t          d          t                      fD ]} | |d           d S )Nr   r   r   r   r   )r   r   r   r   r   )r   r-   r-   r   r-   z	eggs spamFc                     t          |                               
          }t          |j                  	k    sJ |                    t          j        g dg                    d         }t          |dg           t          | d          r"|	                              }|j
        dk    sJ |rt          j        g dg          }|                    |          }dt          |d                   k    sJ |j        t          j        |d                   |                    |          k    sJ t          |                                         }|                    g d	g          d         }|dk    sJ d S )
Nr   r   r   r   )ra   r.   r-   axisr   )r   r6   r   r   r2   r4   r5   r   r[   r   r   r   rF   argmax)r   test_predict_probarK   r   decr   probabilitiesr9   r   r   r:   s          r;   conduct_testz%test_ovr_binary.<locals>.conduct_test  s{   !(++//1553<  G++++RXyyyk2233A66F8,,,8011 	%''**C9$$$$ 	YXyyyk**F--f55MM!,------<	-a @ @ @AS[[QWEXEXXXXX "(++//155iii[))!,{{{{{{rN   r   r)   Tprobability)r   )F)r4   r5   Tr   r   r   r   r   r   r   r   r   )r   r   r9   r   r   r:   s     @@@@r;   test_ovr_binaryr     s9   
)))YYY			999iiiHIIA000A
///"##%A+##%%&&G        * 	q!!!	   	X"__cd&;&;&;=O=Q=QR 8 8X$777778 8rN   c                     t          j        g dg dg dg dg dg          } t          j        g dg dg dg d	g d
g          }t                      t          d          t	                      t                      t                      t          d          fD ]^}t          |          	                    | |          }|
                    g dg          d         }t          |g d           |j        sJ _d S )N)r   r   ra   r   )r'   r'   r'   )r   r   r   r   )r   r-   r-   r   )r-   r-   r-   )r-   r   r-   r   r   r)   rt   ri   )r   r   r   )r4   r5   r   r   r   r   r   r   r   r6   r2   r   r|   )r9   r:   r   rK   r   s        r;   test_ovr_multilabelr   <  s   
)))YYY			999iiiHIIA
)))YYY			999iiiHIIA 	q!!!C   "(++//155iii[))!,6999--- rN   c                  .   t          t          j                              } |                     t          j        t          j                   t          | j                  dk    sJ | 	                    t          j        t          j                  dk    sJ d S )Nr'   rf   )
r   r#   r   r6   rC   rD   rE   rF   rG   score)r7   s    r;   test_ovr_fit_predict_svcr   O  sq    
cgii
(
(CGGDIt{###s1$$$$99TY,,s222222rN   c            
         t          d          } t          ddd          D ]\  }}}t          j        dddd	d
|d          \  }}|d d         |d d         }}|dd          |dd          }	}t	          |                               ||          }
|
                    |          }|
j        sJ t          t          |	|d          |d	           t          t          |	|d          |d	           d S )Nr-   ri   )TF)RQ?gQ?)r   r/   rP   rk   ra   r.   rl   r   rm   rs   micro)average)decimal)r   zipr%   r{   r   r6   r2   r|   r   r   r   )r   auprecrecallr9   r   r   r   r   Y_testrK   r   s               r;   test_ovr_multilabel_datasetr   V  s>   1%%%H|\JJ 
 
D&6
 
 
1 SbS61SbS6233233!(++//AAV$$FFG<<<dA	
 	
 	
 	
 	99961	
 	
 	
 	
 	
'
 
rN   c            
         t          d          } dD ]}t          j        ddddd|d	
          \  }}|d d         |d d         }}|dd          }t          |                               ||          }t          t          j                                                  ||          }t          |d          rJ t          t          j        d                    }t          |d          rJ |                    ||           t          |d          rJ t          |d          sJ t          t          j        d          ddgi          }	t          |	          }
t          |
d          rJ |
                    ||           t          |
d          sJ |
                    |          }|                    |          }|dk    }t          ||           d S )Nr-   ri   )FTrP   rk   ra   r'   rl   r   rm   rs   r   Fr   r   r   T)
param_gridrt   )r   r%   r{   r   r6   r#   SVRr[   r   r   r2   r   r   )r   r   r9   r   r   r   r   rK   decision_onlygsproba_after_fitr   r   rJ   s                 r;   !test_ovr_multilabel_predict_probar   p  s   1%%%H () ()6
 
 
1 SbS61SbS6233!(++//AA ,CGII66::7GLL=/::::: ,CG,F,F,FGG=/:::::'7+++=/:::::}&9::::: G&&&MD63J
 
 
 .b11?O<<<<<GW---88888V$$##F++ }4((((Q() ()rN   c                  ^   t          d          } t          j        t          j        }}|d d         |d d         }}|dd          }t	          |                               ||          }t	          t          j                                                  ||          }t          |d          rJ |	                    |          }|
                    |          }	t          |	                    d          d           |	                    d          }
|
|z
                                  rJ d S )Nr-   ri   rs   r   r         ?)r   rC   rD   rE   r   r6   r#   r   r[   r2   r   r   sumr   any)r   r9   r   r   r   r   rK   r   r   r   rJ   s              r;   #test_ovr_single_label_predict_probar     s   1%%%H9dkqA"vq"vWGrssVF
h
'
'
+
+GW
=
=C (		2266wHHM}o66666[[  F''G++S111 >>q>!!Dv""$$$$$$$rN   c            	         t          j        ddddddd          \  } }| d d	         |d d	         }}| d	d          }t          t          j                                                  ||          }t          |                    |          dk                        t                    |
                    |                     d S )
NrP   rk   ra   r'   rl   Tr   rm   rs   )r%   r{   r   r#   r   r6   r   r   r   r   r2   r9   r   r   r   r   rK   s         r;   %test_ovr_multilabel_decision_functionr     s    2  DAq "vq"vWGrssVF
cgii
(
(
,
,Wg
>
>C			v	&	&	*22377V9L9L    rN   c                  v   t          j        ddd          \  } }| d d         |d d         }}| dd          }t          t          j                                                  ||          }t          |                    |                                          dk    |	                    |                     d S )NrP   rk   r   )rn   ro   r*   rs   )
r%   make_classificationr   r#   r   r6   r   r   ravelr2   r   s         r;   'test_ovr_single_label_decision_functionr     s    '#"STUUUDAq"vq"vWGrssVF
cgii
(
(
,
,Wg
>
>Cs,,V44::<<q@#++fBUBUVVVVVrN   c                      t          t          d                    } g d}t          | d|i          }|                    t          j        t          j                   |j        j        d         j	        }||v sJ d S Nr   r)   )皙?rt   r/   estimator__C)
r   r   r   r6   rC   rD   rE   best_estimator_rG   C)r7   Cscvbest_Cs       r;   test_ovr_gridsearchr     ss    
iQ777
8
8C	B	cNB/	0	0BFF49dk"""+A.0FR<<<<<<rN   c                     t          dt                      fg          } t          |           }|                    t          j        t          j                   t          t                                }|                    t          j        t          j                   t          |                    t          j                  |                    t          j                             d S )Ntree)	r    r   r   r6   rC   rD   rE   r   r2   )rK   ovr_piper7   s      r;   test_ovr_pipeliner     s     V35567
8
8C"3''HLLDK(((
466
7
7CGGDIt{###s{{49--x/?/?	/J/JKKKKKrN   c                      t          t          d                    } t          j        t                    5  |                     g            d d d            d S # 1 swxY w Y   d S Nr   r)   )r	   r   r0   r1   r$   r2   ovos    r;   test_ovo_exceptionsr     s    
YA666
7
7C	~	&	&  B                    AA!Ac                     t          t          d                    } |                     t          j        t          j                                      t          j                  }d t          j        D             }|                     |t          t          j                                                |          }t          ||           d S )Nr   r)   c                 ,    g | ]}t          |          S  )list).0as     r;   
<listcomp>z(test_ovo_fit_on_list.<locals>.<listcomp>  s    111!d1gg111rN   )	r	   r   r6   rC   rD   rE   r2   r   r   )r   prediction_from_arrayiris_data_listprediction_from_lists       r;   test_ovo_fit_on_listr     s     YA666
7
7CGGDIt{;;CCDINN11ty111N77>43D3DEEMM  ,.BCCCCCrN   c                  F   t          t          d                    } |                     t          j        t          j                                      t          j                   t          | j                  t          t          dz
  z  dz  k    sJ t          t                                } |                     t          j        t          j                                      t          j                   t          | j                  t          t          dz
  z  dz  k    sJ d S )Nr   r)   r-   r.   )r	   r   r6   rC   rD   rE   r2   rF   rG   rH   r   r   s    r;   test_ovo_fit_predictr     s    
YA666
7
7CGGDIt{##++DI666s9	A#>#BBBBB ]__
-
-CGGDIt{##++DI666s9	A#>#BBBBBBBrN   c                     t          j                    } | j        | j        }}t	          t                                }|                    |d d         |d d         t          j        |                     |                    |dd          |dd                     |	                    |          }t	          t                                }|
                    ||           |	                    |          }t          |j                  t          t          dz
  z  dz  k    sJ t          j        ||k              dk    sJ t          ||           t	          t                                }|                    |d d         |d d         t          j        |                     |                    |dd          |dd                     |	                    |          }t	          t                                }|
                    ||          	                    |          }t          ||           t          |j                  t          t          j        |                    k    sJ t          j        ||k              dk    sJ t	          t                                }t          j                            dd          }g d}|                    |d d         |d d         g d	           |                    |dd          |dd                     |	                    |          }t	          t                                }|
                    ||          	                    |          }t          ||           t	          t                                }g d
}	t%          d                    t          j        |	          t          j        |                              }
t)          j        t,          |
          5  |                    |d d         |	t          j        |                     d d d            n# 1 swxY w Y   t	          t/                                }t1          |d          rJ d S )NrP   r-   r.   rB   <   rQ   )r-   r-   r.   r'   r'   r   r   r   r   r   r   r   r.   r.   rU   )r   r-   r.   r'   r   )r   r-   r.   r'   r   ra   r.   z6Mini-batch contains {0} while it must be subset of {1}r+   rV   )r%   	load_irisrD   rE   r	   r   rV   r4   rW   r2   r6   rF   rG   rH   rI   r   rY   randr   formatr0   r1   r3   r   r[   )tempr9   r:   ovo1r^   ovo2rL   r   rJ   error_y
message_rer7   s               r;   test_ovo_partial_fit_predictr    s   D9dkqAmoo..DQttWagry||444QsttWag&&&LLOOEmoo..DHHQNNNLLOOEt  IQ$?!$CCCCC71:%%%%u%%% moo..DQssVQssVRYq\\222QrssVQrssV$$$LLOOEmoo..DHHQNN""1%%Eu%%%t  C	!$5$5555571:%%%%
]__
-
-C
	r1A222AOOAbqbE1RaR5///222OOAabbE1QRR5!!!;;q>>Dmoo..DHHQNN""1%%Ee$$$ ]__
-
-C###G@GGIg	!	
 	
 J
 
z	4	4	4 6 6"1"w	!5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 SUU
#
#CsM*******s   2QQ	Qc                     t           j        j        d         } t          t	          d                    }|                    t           j        t           j        dk               |                    t           j                  }|j        | fk    sJ |                    t           j        t           j                   |                    t           j                  }|j        | t          fk    sJ t          |
                    d          |                    t           j                             t          j        | t          f          }d}t          t                    D ]x}t          |dz   t                    D ]]}|j        |                             t           j                  }||dk    |fxx         dz  cc<   ||dk    |fxx         dz  cc<   |dz  }^yt          |t          j        |                     t          t                    D ]p}t#          |d d |f                                       t#          g d                    sJ t'          t          j        |d d |f                             dk    sJ qd S )Nr   r)   r-   r   )r>   r   r?      )rC   rD   r   r	   r   r6   rE   r   rH   r   r   r2   r4   r   rangerG   roundr   issubsetrF   rW   )	rn   ovo_clf	decisionsvoteskijrJ   	class_idxs	            r;   test_ovo_decision_functionr  4  sX   	"I !:!:!:;;GKK	4;!+,,,))$)44I?yl**** KK	4;'''))$)44I?y)44444y''Q'//1K1KLLL Hi+,,E	A9  q1ui(( 	 	A&q)11$)<<D$!)Q,1$$!)Q,1$FAA		 ubhy112229%% = =	 5I&''00___1E1EFFFFF 29Yqqq)|45566<<<<<= =rN   c                      t          t          d                    } g d}t          | d|i          }|                    t          j        t          j                   |j        j        d         j	        }||v sJ d S r   )
r	   r   r   r6   rC   rD   rE   r   rG   r   )r   r   r   r   s       r;   test_ovo_gridsearchr  c  ss    
YA666
7
7C	B	cNB/	0	0BFF49dk"""+A.0FR<<<<<<rN   c                  F   t          j        ddgddgddgddgg          } t          j        g d          }t          t          ddd                     }|                    | |                              |           }|                    |           }t          j        |          }||z
  }t          |d	d d f         d           t          t          j	        |dd          d
          |dd                     |d	         |d	         	                                k    sJ d S )Nr-   r.   r   rb   r.   r   r-   r.   Fr   r   rS   rT   r   r   )
r4   r5   r	   r   r6   r2   r   r  r   r   )r9   r:   	multi_clfovo_predictionovo_decisionr  normalized_confidencess          r;   test_ovo_tiesr  l  s'    	1a&1a&2q'B8455A
A":eaT#R#R#RSSI]]1a((0033N..q11L H\""E)E1 uQT{A&&&ryqrr333^ABB5GHHH! 6q 9 @ @ B BBBBBBBrN   c                  X   t          j        ddgddgddgddgg          } t          j        g d          }t          d          D ]c}||z   dz  }t          t	          ddd 	                    }|                    | |                              |           }|d
         |dz  k    sJ dd S )Nr-   r.   r   rb   r  r'   Fr   r  r   )r4   r5   r  r	   r   r6   r2   )r9   y_refr  r:   r  r  s         r;   test_ovo_ties2r"    s    
1a&1a&2q'B8455AH\\\""E 1XX * *QY!O&z%!QU'V'V'VWW	"q!,,44Q77a AE)))))	* *rN   c                     t          j        d          } t          j        g d          }t          t	                                }|                    | |           t          ||                    |                      d S )Nr   )r   bcd)r4   eyer5   r	   r   r6   r   r2   )r9   r:   r   s      r;   test_ovo_string_yr(    sg    
q		A
%%%&&A
Y[[
)
)CGGAqMMMq#++a..)))))rN   c                  ,   t          j        d          } t          j        dgdz            }t          t	                                }d}t          j        t          |          5  |                    | |           d d d            d S # 1 swxY w Y   d S )Nr   r   zwhen only one classr+   )	r4   r'  r5   r	   r   r0   r1   r3   r6   r9   r:   r   r8   s       r;   test_ovo_one_classr+    s    
q		A
#A
Y[[
)
)C
C	z	-	-	-  1                 s   %B		BBc                     t           j        } t           j        d d df         }t          t                                }d}t	          j        t          |          5  |                    | |           d d d            d S # 1 swxY w Y   d S Nr   zUnknown label typer+   )rC   rD   r	   r   r0   r1   r3   r6   r*  s       r;   test_ovo_float_yr.    s    	A	!!!Q$A
Y[[
)
)C
C	z	-	-	-  1                    A??BBc                      t          t          d                    } t          j        t                    5  |                     g            d d d            d S # 1 swxY w Y   d S r   )r
   r   r0   r1   r$   r2   ecocs    r;   test_ecoc_exceptionsr3    s    	q 9 9 9::D	~	&	&  R                 r   c                  &   t          t          d          dd          } |                     t          j        t          j                                      t          j                   t          | j                  t          dz  k    sJ t          t                      dd          } |                     t          j        t          j                                      t          j                   t          | j                  t          dz  k    sJ d S )Nr   r)   r.   )	code_sizer*   )r
   r   r6   rC   rD   rE   r2   rF   rG   rH   r   r1  s    r;   test_ecoc_fit_predictr6    s    	q 9 9 9QUVWWWDHHTY$$,,TY777t  IM1111  11MMMDHHTY$$,,TY777t  IM111111rN   c                      t          t          d          d          } g d}t          | d|i          }|                    t          j        t          j                   |j        j        d         j	        }||v sJ d S r   )
r
   r   r   r6   rC   rD   rE   r   rG   r   )r2  r   r   r   s       r;   test_ecoc_gridsearchr8    sx    	q 9 9 9JJJD	B	d^R0	1	1BFF49dk"""+A.0FR<<<<<<rN   c                     t           j        } t           j        d d df         }t          t                                }d}t	          j        t          |          5  |                    | |           d d d            d S # 1 swxY w Y   d S r-  )rC   rD   r
   r   r0   r1   r3   r6   r*  s       r;   test_ecoc_float_yr:    s    	A	!!!Q$A
y{{
+
+C
C	z	-	-	-  1                 r/  c                     t           j        t           j        }} t          j        |           }t          t          ddd          }t          |d          }t          j	        t          d          5  |                    ||           d d d            n# 1 swxY w Y   |                    | |           t          j	        t          d          5  |                    |           d d d            n# 1 swxY w Y   t          t          d                    }|                    ||                              |           t          |j                  d	k    sJ d S )
NTF)	ensure_2daccept_sparse)check_Xcheck_X_paramsr   r)   zA sparse matrix was passedr+   r   )rC   rD   rE   ru   rw   r   r   r
   r0   r1   	TypeErrorr6   r2   r   rF   rG   )r9   r:   X_spbase_estimatorr2  s        r;   (test_ecoc_delegate_sparse_base_estimatorrC    s    9dkqA=D (%)EBB  N  Q???D	y(D	E	E	E  q               	HHQNNN	y(D	E	E	E  T                	q 9 9 9::DHHT1d###t  A%%%%%%s$   2BBBC33C7:C7c                  l   t          j        d          } t          j        t          j        }}t          |           }t          j        ||j                  }|	                    ||           t          |j                  }|j        }|D ])}|j        d         |z  |dz
  z  |j        d         k    sJ *d S )Nprecomputedkernelr   r-   )r#   r   rC   rD   rE   r	   r4   dotr   r6   rF   rG   pairwise_indices_r   )clf_precomputedr9   r:   	ovr_falselinear_kerneln_estimatorsprecomputed_indicesidxs           r;   test_pairwise_indicesrP    s    g]333O9dkqA"?33IF1acNNMMM-###y,--L#5" 
 
IaL<'<!+;<@STU@VVVVVV
 
rN   c                     t           j        t           j        }} |d         dk    sJ | dd         } |dd         }| j        dk    sJ t	          j        d                              | |          }|j        dk    sJ t          |                              | |          }|j        dk    sJ |j	        D ]}|j        dk    sJ t          |                              | |          }|j        dk    sJ |j        dk    sJ t          |j	                  dk    sJ |j	        D ]}|j        dk    sJ | | j        z  }|j        d	k    sJ t	          j        d
                              ||          }|j        dk    sJ t          |                              ||          }|j        dk    sJ |j        dk    sJ t          |j	                  dk    sJ |j	        D ]}|j        dk    sJ t          |                              ||          }	|	j        dk    sJ |j        dk    sJ t          |j	                  dk    sJ |	j	        d         j        dk    sJ |	j	        d         j        dk    sJ |	j	        d         j        dk    sJ dS )a  Check the n_features_in_ attributes of the meta and base estimators

    When the training data is a regular design matrix, everything is intuitive.
    However, when the training data is a precomputed kernel matrix, the
    multiclass strategy can resample the kernel matrix of the underlying base
    estimator both row-wise and column-wise and this has a non-trivial impact
    on the expected value for the n_features_in_ of both the meta and the base
    estimators.
    rb   r   N)   r   linearrF  r   r'   )rR  rR  rE  rR  c   r-   r.   rP   )rC   rD   rE   r   r#   r   r6   n_features_in_r   rG   r	   
n_classes_rF   r   )
r9   r:   clf_notprecomputedovr_notprecomputedestovo_notprecomputedKrJ  ovr_precomputedovo_precomputeds
             r;   test_pairwise_n_features_inr^    s    9dkqA R5A::::	#2#A	#2#A 7h11155a;;,1111,-?@@DDQJJ,1111!- ' '!Q&&&&&+,>??CCAqII,1111(A----!-..!3333!- ' '!Q&&&&& 	
ACA7j    g]333771==O)S0000)/::>>q!DDO)S0000%*****++q0000* ) )!S((((( )99==aCCO)S0000%*****++q0000&q)8B>>>>&q)8B>>>>&q)8C??????rN   MultiClassClassifierc                     t          j        d          }t          j                    } | |          }|                                d         rJ  | |          }|                                d         sJ d S )NrE  rF  pairwise)r#   r   	_get_tags)r_  rJ  rW  rK  ovr_trues        r;   test_pairwise_tagrd  G  s     g]333O$$%788I""$$Z0000##O44H
++++++rN   c                 V   t          j        d          }t          j        d          }t          j        t          j        }} | |          } | |          }t          j        ||j                  }t          |||d          }t          |||d          }	t          |	|           d S )NrE  rF  rS  raise)error_score)
r#   r   rC   rD   rE   r4   rH  r   r   r   )
r_  rJ  rW  r9   r:   multiclass_clf_notprecomputedmulticlass_clf_precomputedrL  score_not_precomputedscore_precomputeds
             r;   test_pairwise_cross_val_scorerl  U  s     g]333O1119dkqA$8$89K$L$L!!5!5o!F!FF1acNNM+%q!   ("M1'   (*?@@@@@rN   c                    t           j                            d          }t          j        t          j        }}t          j        |          }|                    ddg|j        ddg          	                    t                    }t           j        ||<   t          t                      t          |                    } | |                              ||                              ||           d S )N*   r-   r   r   rf   )pr)   )r4   rY   RandomStaterC   rD   rE   copychoicer   r   boolnanr!   r"   r   r6   r   )r_  rngr9   r:   masklrs         r;   test_support_missing_valuesrx  k  s     )


#
#C9dkqA


A::q!fag#s:44;;DAADfAdG	}(:(L(L(L	M	MB  A&&,,Q22222rN   make_yc                 \   t          j        d          } | dt           j                  }t          t	                                }|                    ||           |                    |          }t          j        |j        d         df          }d|dddf<   t          ||           dS )zUCheck that constant y target does not raise.

    Non-regression test for #21869
    r   )r   r-   )dtyper   r.   r-   N)
r4   r   int32r   r   r6   r   r   r   r   )ry  r9   r:   r7   r   expecteds         r;   test_constant_int_targetr~  ~  s     	Awbh'''A
022
3
3CGGAqMMMq!!FxQ((HHQQQTNFH%%%%%rN   c                  0   t          d          \  } }t          dd          }t          |          }|                    | |           |                    | |           t	          |                    |           |                    |                      dS )z^Check that ovo is consistent with binary classifier.

    Non-regression test for #13617.
    T)
return_X_y   distance)n_neighborsweightsN)r&   r   r	   r6   r   r2   )r9   r:   rK   r   s       r;   )test_ovo_consistent_binary_classificationr    s    
 ...DAq
1j
A
A
AC
S
!
!CGGAqMMMGGAqMMMs{{1~~s{{1~~66666rN   )ynumpyr4   scipy.sparser   ru   r0   numpy.testingr   rer   sklearn.utils._testingr   r   sklearn.utils._mockingr   sklearn.multiclassr   r	   r
   sklearn.utils.multiclassr   r   sklearn.utilsr   r   sklearn.metricsr   r   sklearn.svmr   r   sklearn.naive_bayesr   sklearn.linear_modelr   r   r   r   r   r   r   sklearn.treer   r   sklearn.neighborsr   sklearn.model_selectionr   r   sklearn.pipeliner    r!   sklearn.imputer"   sklearnr#   sklearn.exceptionsr$   r%   sklearn.datasetsr&   r8   markfilterwarnings
pytestmarkr   rC   rY   rp  ru  permutationrE   sizepermrD   rH   r<   r@   rM   r_   rd   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r(  r+  r.  r3  r6  r8  r:  rC  rP  r^  parametrizerd  rl  rx  r   r   r~  r  r   rN   r;   <module>r     s0              ) ) ) ) ) )       5 5 5 5 5 5 6 6 6 6 6 6 5 5 5 5 5 5 2 2 2 2 2 2 1 1 1 1 1 1 3 3 3 3 3 3 Q Q Q Q Q Q Q Q       
 , + + + + + ( ( ( ( ( ( & & & & & & & & - - - - - -                  G F F F F F F F 2 2 2 2 2 2 A A A A A A A A 4 4 4 4 4 4 4 4 ( ( ( ( ( (       - - - - - -       / / / / / /7[''(E#(E(E(EFF
xiA
t{'((IdO	k$	7 7 7(( ( (/ / / !+ !+ !+H
' 
' 
'. . .$-I -I -I`!< !< !<H. . .4%8 %8 %8P  &3 3 3
 
 
4*) *) *)Z% % %*  $W W W  	L 	L 	L  	D 	D 	D	C 	C 	C2+ 2+ 2+j,= ,= ,=^  C C C0
* 
* 
** * *      	2 	2 	2    & & &4
 
 
"B@ B@ B@J 02DE , , , 02DE A A A& 02DE 
3 3 
3 BGRX#677& & 87& 7 7 7 7 7rN   