ó
‡ˆ\c           @   sß  d  d l  Z  d  d l Z d  d l j 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 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 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/ m0 Z0 d  d l1 m2 Z2 d  d l3 m4 Z4 d  d l3 m5 Z5 d  d l6 m7 Z7 e5 j8 ƒ  Z9 e j: j; d ƒ Z< e< j= e9 j> j? ƒ Z@ e9 jA e@ e9 _A e9 j> e@ e9 _> d ZB d „  ZC d „  ZD d  „  ZE e  jF jG d! ƒ d" „  ƒ ZH d# „  ZI d$ „  ZJ d% „  ZK e  jF jG d& ƒ e  jF jG d' ƒ d( „  ƒ ƒ ZL d) „  ZM e  jF jG d& ƒ e  jF jG d' ƒ d* „  ƒ ƒ ZN d+ „  ZO d, „  ZP d- „  ZQ e  jF jG d. ƒ e  jF jG d/ ƒ d0 „  ƒ ƒ ZR d1 „  ZS d2 „  ZT d3 „  ZU e  jF jG d. ƒ e  jF jG d/ ƒ d4 „  ƒ ƒ ZV d5 „  ZW d6 „  ZX d7 „  ZY d8 „  ZZ d9 „  Z[ d: „  Z\ d; „  Z] d< „  Z^ e  jF jG d. ƒ e  jF jG d/ ƒ d= „  ƒ ƒ Z_ e  jF jG d! ƒ d> „  ƒ Z` e  jF jG d! ƒ d? „  ƒ Za d@ „  Zb dA „  Zc dB „  Zd dC „  Ze dD „  Zf e  jF jG d. ƒ e  jF jG d/ ƒ dE „  ƒ ƒ Zg dF „  Zh dG „  Zi dH „  Zj e  jF jG d/ ƒ dI „  ƒ Zk d S(J   iÿÿÿÿN(   t   escape(   t   assert_array_equal(   t   assert_equal(   t   assert_almost_equal(   t   assert_false(   t   assert_raises(   t   assert_warns(   t   assert_greater(   t   assert_raise_message(   t   assert_raises_regexp(   t   OneVsRestClassifier(   t   OneVsOneClassifier(   t   OutputCodeClassifier(   t   check_classification_targetst   type_of_target(   t   shuffle(   t   precision_score(   t   recall_score(   t	   LinearSVCt   SVC(   t   MultinomialNB(   t   LinearRegressiont   Lassot
   ElasticNett   Ridget
   Perceptront   LogisticRegressiont   SGDClassifier(   t   DecisionTreeClassifiert   DecisionTreeRegressor(   t   GridSearchCVt   cross_val_score(   t   Pipeline(   t   svm(   t   datasets(   t   zipi    i   c          C   sÖ   t  t d d ƒ ƒ }  t t |  j g  ƒ t t t  t ƒ  ƒ j t j d d g d d g g ƒ t j d d g d d g g ƒ ƒ t t t  t ƒ  ƒ j t j d d g d d g g ƒ t j d d g d d	 g g ƒ ƒ d  S(
   Nt   random_statei    i   i   i   g      ø?g333333@gÍÌÌÌÌÌ@gš™™™™™é?(	   R
   R   R   t
   ValueErrort   predictR   t   fitt   npt   array(   t   ovr(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_exceptions/   s    "c          C   s>   t  j d d d d g ƒ }  t |  ƒ } t t | t |  ƒ d  S(   Ng        gš™™™™™ñ?g       @g      @(   R(   R)   R   R   R%   R   (   t   yt   msg(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt!   test_check_classification_targets<   s    c          C   s	  t  t d d ƒ ƒ }  |  j t j t j ƒ j t j ƒ } t t |  j	 ƒ t
 ƒ t d d ƒ } | j t j t j ƒ j t j ƒ } t t j t j | k ƒ t j t j | k ƒ ƒ t  t ƒ  ƒ }  |  j t j t j ƒ j t j ƒ } t t j t j | k ƒ d ƒ d  S(   NR$   i    gÍÌÌÌÌÌä?(   R
   R   R'   t   irist   datat   targetR&   R   t   lent   estimators_t	   n_classesR(   t   meanR   R   (   R*   t   predt   clft   pred2(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_fit_predictC   s    $$1$s,   ignore:max_iter and tol parameters have beenc          C   sF  t  t j t j d d ƒ\ }  } t t ƒ  ƒ } | j |  d  | d  t j | ƒ ƒ | j |  d | d ƒ | j	 |  ƒ } t t ƒ  ƒ } | j
 |  | ƒ j	 |  ƒ } t | | ƒ t t | j ƒ t t j | ƒ ƒ ƒ t t j | | k ƒ d ƒ t j t j j d d ƒ ƒ }  d d d d d d d d d d d d d d g } t t d	 d d
 d  d t d d ƒ ƒ } | j |  d  | d  t j | ƒ ƒ | j |  d | d ƒ | j	 |  ƒ } t t d	 d d
 d  d t d d ƒ ƒ } | j
 |  | ƒ j	 |  ƒ } t t j | | k ƒ t j | | k ƒ ƒ t t ƒ  ƒ } t t | d ƒ ƒ d  S(   NR$   i    id   gÍÌÌÌÌÌä?i   i   i   i   t   max_itert   tolR   i   t   partial_fit(   R   R/   R0   R1   R
   R   R<   R(   t   uniqueR&   R'   R   R   R2   R3   R   R5   t   abst   randomt   randnR   t   Nonet   FalseR   R   t   hasattr(   t   XR,   R*   R6   t   ovr2R8   t   ovr1t   pred1(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_partial_fitT   s.    !$%0$+c          C   s¼   t  t ƒ  ƒ }  t j t j j d d ƒ ƒ } d d d d d d d d d d d d d d g } |  j | d  | d  t j | ƒ ƒ d g | d d !} t t	 d	 |  j d
 | d d | ƒd  S(   Ni   i   i   i   i    i   i   iÿÿÿÿsA   Mini-batch contains \[.+\] while classes must be subset of \[.+\]RD   R,   (
   R
   R   R(   R>   R?   R@   R<   R=   R	   R%   (   R*   RD   R,   t   y1(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_partial_fit_exceptionsw   s    0$	c          C   s  t  t ƒ  ƒ }  |  j t j t j ƒ j t j ƒ } t t |  j	 ƒ t
 ƒ t t j | ƒ d d d g ƒ t t j | t j k ƒ d ƒ t t ƒ  ƒ }  |  j t j t j ƒ j t j ƒ } t t |  j	 ƒ t
 t
 d d ƒ t t j | ƒ d d d g ƒ t t j | t j k ƒ d ƒ d  S(   Ni    i   i   gÍÌÌÌÌÌì?(   R
   R   R'   R/   R0   R1   R&   R   R2   R3   R4   R   R(   R=   R   R5   R   (   R*   R6   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_ovo_regressor„   s    $$"c          C   sÀ  x¹t  j t  j t  j t  j t  j g D]“}  t d d ƒ } t j d d d d d d d	 d
 d d d t	 d d ƒ \ } } | d  | d  } } | d } t
 | ƒ j | | ƒ } | j | ƒ } t
 | ƒ j | |  | ƒ ƒ }	 |	 j | ƒ }
 | j sø t ‚ t  j |
 ƒ st ‚ t |
 j ƒ  | ƒ |	 j | ƒ } | d k } t | |
 j ƒ  ƒ t j d d ƒ } t
 | ƒ j | |  | ƒ ƒ }	 |	 j | ƒ d k j t ƒ } t | |	 j | ƒ j ƒ  ƒ q% Wd  S(   Nt   alphai   t	   n_samplesid   t
   n_featuresi   R4   i   t   n_labelsi   t   lengthi2   t   allow_unlabeledR$   i    iP   g      à?t   gammat   scale(   t   spt
   csr_matrixt
   csc_matrixt
   coo_matrixt
   dok_matrixt
   lil_matrixR   R"   t   make_multilabel_classificationt   TrueR
   R'   R&   t   multilabel_t   AssertionErrort   issparseR   t   toarrayt   predict_probaR!   R   t   decision_functiont   astypet   int(   t   sparset   base_clfRD   t   Yt   X_traint   Y_traint   X_testR7   t   Y_predt   clf_sprst   Y_pred_sprst   Y_probaR6   t   dec_pred(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_fit_predict_sparse–   s4    
s&   ignore: Default solver will be changeds    ignore: Default multi_class willc          C   sÐ  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 ƒ  ƒ } t t | j |  | ƒ | j |  ƒ } t	 t  j
 | ƒ t  j
 | ƒ ƒ | j |  ƒ } t t  j | d  d  … d d  … f ƒ d ƒ | j |  ƒ } t	 | d  d  … d f t  j |  j d ƒ ƒ t  j d ƒ } d | d d  … d f <t t ƒ  ƒ } t t | j |  | ƒ | j |  ƒ } t	 | d  d  … d f t  j |  j d ƒ ƒ d  S(   Ni
   i   i    i   i   i   iþÿÿÿiÿÿÿÿ(   i
   i   (   i
   i   (   i
   i   (   R(   t   onest   zerosR
   R   R   t   UserWarningR'   R&   R   R)   Ra   R   R=   R`   t   shape(   RD   R,   R*   t   y_pred(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_always_present¿   s(    ,-c          C   s²  t  j d d d g d d d g d d d g d d d g d d d g g ƒ }  d d d d d g } t  j d d d g d d d g d d d g d d d g d d d g g ƒ } t d	 j ƒ  ƒ } xî t ƒ  t d
 d ƒ t ƒ  t ƒ  t ƒ  f D]Â } t	 | ƒ j
 |  | ƒ } t t | j ƒ | ƒ | j t  j d d d g g ƒ ƒ d } t t | ƒ t d ƒ ƒ t	 | ƒ j
 |  | ƒ } | j d d d g g ƒ d } t | d d d g ƒ qè Wd  S(   Ni    i   i   i   t   eggst   spamt   hami   s   ham eggs spamR$   i   (   R(   R)   t   sett   splitR   R   R   R   R   R
   R'   R   t   classes_R&   R   (   RD   R,   Rf   t   classesRe   R7   Rt   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_multiclassà   s$    K(c             s-  t  j d d d g d d d g d d d g d d d g d d d g g ƒ ‰  d d d d d g ‰ t  j d d d d d g g ƒ j ‰ t d j ƒ  ƒ ‰ t ‡  ‡ ‡ ‡ f d	 † }  x6 t d
 d ƒ t ƒ  t ƒ  t	 ƒ  f D] } |  | ƒ qÖ Wx< t
 ƒ  t d d d t ƒ t ƒ  f D] } |  | d t ƒqWd  S(   Ni    i   i   i   Rv   Rw   i   s	   eggs spamc            s^  t  |  ƒ j ˆ  ˆ ƒ } t t | j ƒ ˆ ƒ | j t j d d d g g ƒ ƒ d } t t | ƒ t d ƒ ƒ t |  d ƒ r  | j	 ˆ  ƒ } t | j
 d
 ƒ n  | rt j d d d g g ƒ } | j | ƒ } t d t | d ƒ ƒ t | j t j | d d ƒ| j | ƒ ƒ n  t  |  ƒ j ˆ  ˆ ƒ } | j d	 d d g g ƒ d } t | d ƒ d  S(   Ni    i   Rv   Ra   i   i   t   axisi   i   (   i   (   R
   R'   R   Ry   R{   R&   R(   R)   RC   Ra   Rs   R`   R2   t   argmax(   Re   t   test_predict_probaR7   Rt   t   decRi   t   probabilities(   RD   Rf   R|   R,   (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   conduct_test  s     (R$   RR   RS   t   probabilityR€   (   R(   R)   t   TRy   Rz   RB   R   R   R   R   R   R   R[   R   (   Rƒ   Re   (    (   RD   Rf   R|   R,   s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_binaryú   s    K$c          C   s7  t  j d d d g d d d g d d d g d d d g d d d g g ƒ }  t  j d d d g d d d g d d d g d d d g d d d g g ƒ } xš t ƒ  t d d ƒ t ƒ  t ƒ  t ƒ  t d d	 ƒ f D]b } t | ƒ j	 |  | ƒ } | j
 d d d g g ƒ d } t | d d d g ƒ | j sÍ t ‚ qÍ Wd  S(
   Ni    i   i   i   i   i   R$   RL   g      à?(   R(   R)   R   R   R   R   R   R   R
   R'   R&   R   R\   R]   (   RD   R,   Re   R7   Rt   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_multilabel"  s    Kc          C   sg   t  t j d d ƒ ƒ }  |  j t j t j ƒ t t |  j	 ƒ d ƒ t
 |  j t j t j ƒ d ƒ d  S(   NRR   RS   i   gÍÌÌÌÌÌì?(   R
   R!   R   R'   R/   R0   R1   R   R2   R3   R   t   score(   R*   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_fit_predict_svc4  s    c          C   s  t  d d ƒ }  x	t t t f d d ƒ D]ï \ } } } t j d d d d	 d
 d d d d d d | d d ƒ \ } } | d  | d  } } | d | d } }	 t |  ƒ j | | ƒ }
 |
 j | ƒ } |
 j	 sÓ t
 ‚ t t |	 | d d ƒ| d d ƒt t |	 | d d ƒ| d d ƒq( Wd  S(   NRL   i   gR¸…ëQà?g…ëQ¸å?gš™™™™™é?RM   id   RN   i   R4   i   RO   i   RP   i2   RQ   R$   i    iP   t   averaget   microt   decimal(   gR¸…ëQà?g…ëQ¸å?(   gR¸…ëQà?gš™™™™™é?(   R   R#   R[   RB   R"   RZ   R
   R'   R&   R\   R]   R   R   R   (   Re   t   aut   prect   recallRD   Rf   Rg   Rh   Ri   t   Y_testR7   Rj   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_multilabel_dataset;  s(    (s    ignore: The default of the `iid`s"   ignore: You should specify a valuec          C   sæ  t  d d ƒ }  xÐt t f D]Â} t j d d d d d d d	 d
 d d d | d d ƒ \ } } | d  | d  } } | d } t |  ƒ j | | ƒ } t t j d d ƒ ƒ j | | ƒ } t	 t
 | d ƒ ƒ t t j d d d t ƒ ƒ } t	 t
 | d ƒ ƒ | j | | ƒ t	 t
 | d ƒ ƒ t
 | d ƒ s5t ‚ t t j d d d t ƒ d i t g d 6ƒ}	 t |	 ƒ }
 t	 t
 |
 d ƒ ƒ |
 j | | ƒ t
 |
 d ƒ s§t ‚ | j | ƒ } | j | ƒ } | d k } t | | ƒ q Wd  S(   NRL   i   RM   id   RN   i   R4   i   RO   i   RP   i2   RQ   R$   i    iP   RR   RS   R`   R„   Ra   t
   param_gridg      à?(   R   RB   R[   R"   RZ   R
   R'   R!   t   SVRR   RC   R   R]   R   R&   R`   R   (   Re   R   RD   Rf   Rg   Rh   Ri   R7   t   decision_onlyt   gst   proba_after_fitRj   Rm   R6   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt!   test_ovr_multilabel_predict_probaS  s>    
c          C   s  t  d d ƒ }  t j t j } } | d  | d  } } | d } t |  ƒ j | | ƒ } t t j d d ƒ ƒ j | | ƒ } t t	 | d ƒ ƒ | j
 | ƒ } | j | ƒ }	 t |	 j d d ƒ d ƒ t j g  |	 D] }
 |
 j ƒ  ^ qÔ ƒ } t | | j ƒ  ƒ d  S(	   NRL   i   iP   RR   RS   R`   R~   g      ð?(   R   R/   R0   R1   R
   R'   R!   R“   R   RC   R&   R`   R   t   sumR(   R)   R   t   any(   Re   RD   Rf   Rg   Rh   Ri   R7   R”   Rj   Rm   t   lR6   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt#   test_ovr_single_label_predict_proba  s    
(c          C   s±   t  j d d d d d d d d d	 d
 d t d d ƒ \ }  } |  d  | d  } } |  d } t t j d d ƒ ƒ j | | ƒ } t | j | ƒ d k j	 t
 ƒ | j | ƒ ƒ d  S(   NRM   id   RN   i   R4   i   RO   i   RP   i2   RQ   R$   i    iP   RR   RS   (   R"   RZ   R[   R
   R!   R   R'   R   Ra   Rb   Rc   R&   (   RD   Rf   Rg   Rh   Ri   R7   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt%   test_ovr_multilabel_decision_function—  s    
$c          C   s–   t  j d d d d d d ƒ \ }  } |  d  | d  } } |  d } t t j d d	 ƒ ƒ j | | ƒ } t | j | ƒ j ƒ  d k | j	 | ƒ ƒ d  S(
   NRM   id   RN   i   R$   i    iP   RR   RS   (
   R"   t   make_classificationR
   R!   R   R'   R   Ra   t   ravelR&   (   RD   Rf   Rg   Rh   Ri   R7   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt'   test_ovr_single_label_decision_function¦  s    
$c          C   sy   t  t d d ƒ ƒ }  d d d g } t |  i | d 6ƒ } | j t j t j ƒ | j j d j	 } | | k su t
 ‚ d  S(   NR$   i    gš™™™™™¹?g      à?gš™™™™™é?t   estimator__C(   R
   R   R   R'   R/   R0   R1   t   best_estimator_R3   t   CR]   (   R*   t   Cst   cvt   best_C(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_gridsearch±  s    c          C   sˆ   t  d t ƒ  f g ƒ }  t |  ƒ } | j t j t j ƒ t t ƒ  ƒ } | j t j t j ƒ t | j t j ƒ | j t j ƒ ƒ d  S(   Nt   tree(	   R    R   R
   R'   R/   R0   R1   R   R&   (   R7   t   ovr_pipeR*   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_pipeline¼  s    c          C   sÜ   xÕ t  d d d d ƒ t d d ƒ g D]¯ }  t |  ƒ } xš t j t j t j ƒ g D]} } | j | t j ƒ | j	 j
 } t | d t ƒ t | d t j j
 d ƒ t t j | j d j	 ƒ t j | j	 ƒ ƒ qS Wq% Wd  S(   Nt   kernelt   linearR$   i    i   (   R   R   R
   R/   R0   RT   RU   R'   R1   t   coef_Rs   R   R4   R^   R3   (   t   base_classifierR*   RD   Rs   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_coef_È  s    "c              sp   t  t d d ƒ ƒ ‰  t t ‡  f d †  d  ƒ t  t ƒ  ƒ ‰  ˆ  j t j t j	 ƒ t t
 ‡  f d †  d  ƒ d  S(   NR$   i    c            s   ˆ  j  S(   N(   R¬   (   t   x(   R*   (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   <lambda>Ý  s    c            s   ˆ  j  S(   N(   R¬   (   R¯   (   R*   (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyR°   â  s    (   R
   R   R   R%   RA   R   R'   R/   R0   R1   t   AttributeError(    (    (   R*   s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovr_coef_exceptionsÙ  s
    c          C   s,   t  t d d ƒ ƒ }  t t |  j g  ƒ d  S(   NR$   i    (   R   R   R   R%   R&   (   t   ovo(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_exceptionså  s    c          C   s   t  t d d ƒ ƒ }  |  j t j t j ƒ j t j ƒ } g  t j D] } t | ƒ ^ qC } |  j | t t j ƒ ƒ j | ƒ } t | | ƒ d  S(   NR$   i    (	   R   R   R'   R/   R0   R1   R&   t   listR   (   R³   t   prediction_from_arrayt   at   iris_data_listt   prediction_from_list(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_fit_on_listê  s    $"	c          C   s°   t  t d d ƒ ƒ }  |  j t j t j ƒ j t j ƒ t t |  j	 ƒ t
 t
 d d ƒ t  t ƒ  ƒ }  |  j t j t j ƒ j t j ƒ t t |  j	 ƒ t
 t
 d d ƒ d  S(   NR$   i    i   i   (   R   R   R'   R/   R0   R1   R&   R   R2   R3   R4   R   (   R³   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_fit_predictõ  s    """c          C   sC  t  j ƒ  }  |  j |  j } } t t ƒ  ƒ } | j | d  | d  t j | ƒ ƒ | j | d | d ƒ | j	 | ƒ } t t ƒ  ƒ } | j
 | | ƒ | j	 | ƒ } t t | j ƒ t t d d ƒ t t j | | k ƒ d ƒ t | | ƒ t t ƒ  ƒ } | j | d  | d  t j | ƒ ƒ | j | d | d ƒ | j	 | ƒ } t t ƒ  ƒ } | j
 | | ƒ j	 | ƒ } t | | ƒ t t | j ƒ t t j | ƒ ƒ ƒ t t j | | k ƒ d ƒ t t ƒ  ƒ } t j j d d ƒ } d d d d d d d d	 d	 d	 d	 d	 d d g } | j | d
  | d
  d d d d d	 g ƒ | j | d
 | d
 ƒ | j	 | ƒ } t t ƒ  ƒ } | j
 | | ƒ j	 | ƒ } t | | ƒ t t ƒ  ƒ } d d d d d	 d d g }	 t d j t j |	 ƒ t j | ƒ ƒ ƒ }
 t t |
 | j | d
  |	 t j | ƒ ƒ t t ƒ  ƒ } t t | d ƒ ƒ d  S(   Nid   i   i   gÍÌÌÌÌÌä?i<   i   i   i    i   i   i   s6   Mini-batch contains {0} while it must be subset of {1}R<   (   R"   t	   load_irisR0   R1   R   R   R<   R(   R=   R&   R'   R   R2   R3   R4   R   R5   R   R?   t   randR    t   formatR	   R%   R   R   RC   (   t   tempRD   R,   t   ovo1RG   t   ovo2R8   R³   R6   t   error_yt
   message_reR*   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_partial_fit_predict  sN    $"$%0*	c    	      C   s  t  j j d }  t t d d ƒ ƒ } | j t  j t  j d k ƒ | j t  j ƒ } t | j |  f ƒ | j t  j t  j ƒ | j t  j ƒ } t | j |  t	 f ƒ t
 | j d d ƒ | j t  j ƒ ƒ t j |  t	 f ƒ } d } x t t	 ƒ D] } xv t | d t	 ƒ D]a } | j | j t  j ƒ } | | d k | f c d 7<| | d k | f c d 7<| d 7} qWqñ Wt
 | t j | ƒ ƒ xz t t	 ƒ D]l } t | d  d  … | f ƒ j t d d d g ƒ ƒ s×t ‚ t t t j | d  d  … | f ƒ ƒ d ƒ q—Wd  S(	   Ni    R$   R~   i   g        g      ð?g       @i’   (   R/   R0   Rs   R   R   R'   R1   Ra   R   R4   R   R   R&   R(   Rq   t   rangeR3   t   roundRy   t   issubsetR]   R   R2   R=   (	   RM   t   ovo_clft	   decisionst   votest   kt   it   jR6   t	   class_idx(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_decision_function4  s*    %:c          C   sy   t  t d d ƒ ƒ }  d d d g } t |  i | d 6ƒ } | j t j t j ƒ | j j d j	 } | | k su t
 ‚ d  S(   NR$   i    gš™™™™™¹?g      à?gš™™™™™é?R    (   R   R   R   R'   R/   R0   R1   R¡   R3   R¢   R]   (   R³   R£   R¤   R¥   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_gridsearchc  s    c          C   s  t  j d d g d d g d d g d d g g ƒ }  t  j d d d d g ƒ } t t d t d d d	 d  ƒ ƒ } | j |  | ƒ j |  ƒ } | j |  ƒ } t  j	 | ƒ } | | } t
 | d d  d  … f d ƒ t
 t  j | d d
 d ƒ| d ƒ t | d | d j ƒ  ƒ d  S(   Ni   i   iþÿÿÿiÿÿÿÿi    R   R:   i   R;   R~   (   R(   R)   R   R   RB   RA   R'   R&   Ra   RÆ   R   R   R   (   RD   R,   t	   multi_clft   ovo_predictiont   ovo_decisionRÊ   t   normalized_confidences(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_tieso  s    3
$c       	   C   sÈ   t  j d d g d d g d d g d d g g ƒ }  t  j d d d d g ƒ } xs t d ƒ D]e } | | d } t t d t d d	 d
 d  ƒ ƒ } | j |  | ƒ j |  ƒ } t	 | d | d ƒ q[ Wd  S(   Ni   i   iþÿÿÿiÿÿÿÿi    i   R   R:   i   R;   (
   R(   R)   RÅ   R   R   RB   RA   R'   R&   R   (   RD   t   y_refRÌ   R,   RÑ   RÒ   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_ties2Š  s    3c          C   sc   t  j d ƒ }  t  j d d d d g ƒ } t t ƒ  ƒ } | j |  | ƒ t | | j |  ƒ ƒ d  S(   Ni   R·   t   bt   ct   d(   R(   t   eyeR)   R   R   R'   R   R&   (   RD   R,   R³   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_string_y™  s
    c          C   sQ   t  j d ƒ }  t  j d g d ƒ } t t ƒ  ƒ } t t d | j |  | ƒ d  S(   Ni   R·   s   when only one class(   R(   RÛ   R)   R   R   R   R%   R'   (   RD   R,   R³   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_one_class£  s    c          C   sN   t  j }  t  j d  d  … d f } t t ƒ  ƒ } t t d | j |  | ƒ d  S(   Ni    s   Unknown label type(   R/   R0   R   R   R   R%   R'   (   RD   R,   R³   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ovo_float_y¬  s    	c          C   s,   t  t d d ƒ ƒ }  t t |  j g  ƒ d  S(   NR$   i    (   R   R   R   R%   R&   (   t   ecoc(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ecoc_exceptionsµ  s    c          C   s¸   t  t d d ƒ d d d d ƒ}  |  j t j t j ƒ j t j ƒ t t |  j	 ƒ t
 d ƒ t  t ƒ  d d d d ƒ}  |  j t j t j ƒ j t j ƒ t t |  j	 ƒ t
 d ƒ d  S(   NR$   i    t	   code_sizei   (   R   R   R'   R/   R0   R1   R&   R   R2   R3   R4   R   (   Rß   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ecoc_fit_predictº  s    ""c          C   s   t  t d d ƒ d d ƒ}  d d d g } t |  i | d 6ƒ } | j t j t j ƒ | j j d j	 } | | k s{ t
 ‚ d  S(   NR$   i    gš™™™™™¹?g      à?gš™™™™™é?R    (   R   R   R   R'   R/   R0   R1   R¡   R3   R¢   R]   (   Rß   R£   R¤   R¥   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ecoc_gridsearchÇ  s    	c          C   s|   t  j }  t  j d  d  … d f } t t ƒ  ƒ } t t d | j |  | ƒ t t ƒ  d d ƒ} t t d | j |  | ƒ d  S(   Ni    s   Unknown label typeRá   iÿÿÿÿs*   code_size should be greater than 0, got -1(   R/   R0   R   R   R   R%   R'   (   RD   R,   R³   (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_ecoc_float_yÓ  s    		c          C   sª   t  j d d ƒ }  t j t j } } t |  ƒ } t j | | j ƒ } | j	 | | ƒ t
 | j ƒ } | j } x5 | D]- } t | j d | | d | j d ƒ qu Wd  S(   NRª   t   precomputedi    i   (   R!   R   R/   R0   R1   R   R(   t   dotR…   R'   R2   R3   t   pairwise_indices_R   Rs   (   t   clf_precomputedRD   R,   t	   ovr_falset   linear_kernelt   n_estimatorst   precomputed_indicest   idx(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_pairwise_indicesß  s    	c          C   sm   t  j d d ƒ }  t  j ƒ  } xH t t g D]: } | | ƒ } t | j ƒ | |  ƒ } | j s+ t ‚ q+ Wd  S(   NRª   Rå   (   R!   R   R
   R   R   t	   _pairwiseR]   (   Rè   t   clf_notprecomputedt   MultiClassClassifierRé   t   ovr_true(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_pairwise_attributeï  s    c    
      C   s°   t  j d d ƒ }  t  j d d ƒ } t j t j } } xr t t g D]d } | | ƒ } | |  ƒ } t j | | j	 ƒ } t
 | | | ƒ } t
 | | | ƒ }	 t | |	 ƒ qD Wd  S(   NRª   Rå   R«   (   R!   R   R/   R0   R1   R
   R   R(   Ræ   R…   R   R   (
   Rè   Rð   RD   R,   Rñ   Ré   Rò   Rê   t   score_precomputedt   score_linear(    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   test_pairwise_cross_val_scoreû  s    (l   t   pytestt   numpyR(   t   scipy.sparseRd   RT   t   reR    t   sklearn.utils.testingR   R   R   R   R   R   R   R   R	   t   sklearn.multiclassR
   R   R   t   sklearn.utils.multiclassR   R   t   sklearn.utilsR   t   sklearn.metricsR   R   t   sklearn.svmR   R   t   sklearn.naive_bayesR   t   sklearn.linear_modelR   R   R   R   R   R   R   t   sklearn.treeR   R   t   sklearn.model_selectionR   R   t   sklearn.pipelineR    t   sklearnR!   R"   t   sklearn.externals.six.movesR#   R¼   R/   R?   t   RandomStatet   rngt   permutationR1   t   sizet   permR0   R4   R+   R.   R9   t   markt   filterwarningsRH   RJ   RK   Ro   Ru   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ö   (    (    (    s<   lib/python2.7/site-packages/sklearn/tests/test_multiclass.pyt   <module>   sž   4			#			) 	'			-			
							3	/	
									