
\c        	   @  s<  d  d l  m Z m Z d  d l m Z d  d l m Z d  d l Z 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 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( 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' m0 Z0 d  d" l' m1 Z1 d  d# l' m2 Z2 d  d$ l' m3 Z3 d  d% l' m4 Z4 d  d& l' m5 Z5 d  d' l' m6 Z6 d  d( l' m7 Z7 d  d) l' m8 Z8 d  d* l' m9 Z9 d  d+ l: m; Z; d  d, l< m= Z= d  d- l> m? Z@ d eB d.  ZC d/   ZD d0   ZE d1   ZF d2   ZG e$ d3    ZH e$ d4    ZI d5   ZJ d6   ZK d7   ZL e$ d8    ZM d9   ZN d:   ZO d;   ZP e$ d<    ZQ d=   ZR d>   ZS d?   ZT d@   ZU e jV jW dA dB dC dD g  dE    ZX dF   ZY e jV jW dG dH dI dJ dK d g  dL    ZZ dM   Z[ dN   Z\ dO   Z] dP   Z^ dQ   Z_ dR   Z` dS   Za dT   Zb dU   Zc dV   Zd dW   Ze dX   Zf dY   Zg dZ   Zh d[   Zi d\   Zj d]   Zk e$ d^    Zl e$ d_    Zm e$ d`    Zn e jV jW da db g  e jV jW dG dJ dI dK dH g  dc     Zo dd   Zp de   Zq df   Zr dg   Zs dh   Zt di   Zu dj   Zv dk   Zw dl   Zx dm   Zy dn   Zz do   Z{ dp   Z| dq   Z} dr   Z~ ds   Z dt   Z e jV jW du dv dw dv dw g dv dv dv dw g f dv dw dx dw g dv dv dv dw g f dv dv dv dw g dv dw dx dw g f g  dy    Z d S(z   i(   t   divisiont   print_function(   t   partial(   t   productN(   t   linalg(   t   datasets(   t   svm(   t   make_multilabel_classification(   t   label_binarize(   t   check_random_state(   t   assert_dict_equal(   t   assert_raisest   clean_warning_registry(   t   assert_raise_message(   t   assert_equal(   t   assert_almost_equal(   t   assert_array_equal(   t   assert_array_almost_equal(   t   assert_warns(   t   assert_warns_div0(   t   assert_no_warnings(   t   assert_warns_message(   t   assert_not_equal(   t   ignore_warnings(   t   MockDataFrame(   t   accuracy_score(   t   average_precision_score(   t   balanced_accuracy_score(   t   classification_report(   t   cohen_kappa_score(   t   confusion_matrix(   t   f1_score(   t   fbeta_score(   t   hamming_loss(   t
   hinge_loss(   t   jaccard_similarity_score(   t   log_loss(   t   matthews_corrcoef(   t   precision_recall_fscore_support(   t   precision_score(   t   recall_score(   t   zero_one_loss(   t   brier_score_loss(   t   _check_targets(   t   UndefinedMetricWarning(   t   hammingc         C  sv  |  d	 k r t j   }  n  |  j } |  j } | rW | | d k  | | d k  } } n  | j \ } } t j |  } t d  } | j	 |  | | | | } } t
 | d  } t j j d  } t j | | j | d |  f } t j d d d t d d  }	 |	 j | |  | |   j | |  }
 | rL|
 d	 d	  d
 f }
 n  |	 j | |  } | | } | | |
 f S(   s   Make some classification predictions on a toy dataset using a SVC

    If binary is True restrict to a binary classification problem instead of a
    multiclass classification problem
    i   i%   i    i   t   kernelt   lineart   probabilityt   random_stateNi   (   t   NoneR   t	   load_irist   datat   targett   shapet   npt   arangeR	   t   shufflet   intt   randomt   RandomStatet   c_t   randnR   t   SVCt   Truet   fitt   predict_probat   predict(   t   datasett   binaryt   Xt   yt	   n_samplest
   n_featurest   pt   rngt   halft   clft   probas_predt   y_predt   y_true(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   make_prediction<   s*    		$#'
c       	   C  sC  t  j   }  t d |  d t  \ } } } i i d d 6d d 6d d 6d	 d
 6d 6i d d 6d d 6d d 6d d
 6d 6i d d 6d d 6d d 6d d
 6d 6i d d 6d d 6d d 6d d
 6d 6i d d 6d d 6d d 6d d
 6d 6i d d 6d d 6d d 6d d
 6d 6} t | | d  t j t |  j   d! |  j d" t	 } | j
   | j
   k sVt  xf | D]^ } | | j
   | | j
   k st  x/ | | D]# } t | | | | | |  qWq]Wt | d d  t k st  t | d d  t k st  t | d d
  t k st  t | d d
  t k s?t  d  S(#   NRD   RE   g7Mo?t	   precisiongUUUUUU?t   recallghQ?s   f1-scorei   t   supportt   setosagUUUUUU?gc1Ƹ?g433333?i   t
   versicolorg)k?g?g$I$I?i   t	   virginicagCFQ?gc?gƢ?iK   s	   macro avgg?s	   micro avggD~WG?g]3p?s   weighted avgt   labelst   target_namest   output_dict(   R   R3   RQ   t   FalseR   R7   R8   t   lenRY   R@   t   keyst   AssertionErrorR   t   typet   floatR:   (   t   irisRP   RO   t   _t   expected_reportt   reportt   keyt   metric(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt,   test_classification_report_dictionary_outputk   sN    




!&   c          C  s  t  j d d d g d d d g g  }  t  j d d d g d d d g g  } t t |  |  d  t t |  |   d  t t | |  d  t t | t  j |   d  t t |  t  j |    d  t t |  t  j |  j   d  t t | t  j |  j   d  d  S(   Ni    i   g      ?(   R7   t   arrayR   R   t   logical_nott   zerosR6   (   t   y1t   y2(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt.   test_multilabel_accuracy_score_subset_accuracy   s    ''"c       	   C  sn  t  d t  \ }  } } t |  | d d  \ } } } } t | d d g d  t | d d g d  t | d d	 g d  t | d
 d
 g  x i  t f i d d 6t f g D] \ } } | t |  | |  }	 t |	 d d  | t |  | |  }
 t |
 d d  | t	 |  | |  } t | d	 d  t
 | t |  | d d | d d |	 |
 d |	 |
 d  q Wd  S(   NRE   t   averageg\(\?g333333?i   g)\(?g(\?g?gRQ?i   t   betai   i   i   (   RQ   R@   R&   R2   R   R   R   R'   R(   R   R   R    (   RP   RO   Rb   RJ   t   rt   ft   st   kwargst	   my_assertt   pst   rst   fs(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt%   test_precision_recall_f1_score_binary   s"    ! c           C  s   t  d t d d g d d g   t  d t d d g d d g   t  d t d d g d d g   t  d t d d g d d g   t  d t d d g d d g   t  d t d d g d d g   d  S(   Ng      ?i   g        i(   R   R'   R(   R   (    (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt+   test_precision_recall_f_binary_single_class   s    """""c          C  s  d d d d g }  d d d d g } t  |  d t j d  } t  | d t j d  } |  | f | | f g } x3t |  D]%\ } \ }  } t |  | d d d d d d g d	 d  } t d
 d d d d
 g |  t |  | d d d d d d g d	 d } t t j d
 d d d d
 g  |  x{ d d d g D]j } | d k rZ| d k rZq6n  t t |  | d d d d d d g d	 | t |  | d d  d	 |  q6Wq Wxm d  d d d g D]Y } t	 t
 t | | d t j d  d	 | t	 t
 t | | d t j d d  d	 | qWt j d d d g d d d g g  }  t j d d d g d d d g g  } t |  | d	 d d d d g \ } }	 }
 } t t j | |	 |
 g  t j d d d g   d  S(   Ni   i   i   t   classesi   RX   i    i   Rn   g        g      ?g      ?t   macrot   microt   weightedt   samplesi   ig      ?g?(   R   R7   R8   t	   enumerateR(   R2   R   t   meanR   R   t
   ValueErrorRh   R&   (   RP   RO   t
   y_true_bint
   y_pred_binR4   t   it   actualRn   RJ   Rp   Rq   Rb   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt$   test_precision_recall_f_extra_labels   s@    	!	!	%''c    	      C  sn  d d d d g }  d d d d g } t  |  d t j d  } t  | d t j d  } |  | f | | f g } x t |  D] \ } \ }  } t t |  | d d d g } t t |  | d d  } t d d g | d	 d    t d | d	 d
   t d d d | d	 d   t d | d	 d   x6 d
 d d g D]% } t	 | d	 |  | d	 |   q=Wq Wd  S(   Ni   i   i   Rz   i   RX   g      ?g      ?Rn   R{   R}   g       @R|   g      ?g      ?g      ?g      ?gUUUUUU?(
   R   R7   R8   R   R   R(   R2   R   R   R   (	   RP   RO   R   R   R4   R   t	   recall_13t
   recall_allRn   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt&   test_precision_recall_f_ignored_labels  s"    	c          C  sM   t  d  }  |  j d  } |  j d d d d } t t d t | |  d  S(   Ni  i
   i    i   t   sizes"   multiclass format is not supported(   R	   t   randt   randintR   R   R   (   RK   RO   RP   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt3   test_average_precision_score_score_non_binary_class   s
    	c          C  sh   d d d d d d d d d d d g }  d d d d d d d d d d d g } t  t |  |  d  d  S(   Ni    i   g?g?g      ?g333333?g?(   R   R   (   RP   t   y_score(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt-   test_average_precision_score_duplicate_values,  s    ''c          C  s8   d d d g }  d d d g } t  t |  |  d  d  S(   Ni    i   g      ?g333333?g      ?(   R   R   (   RP   R   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt(   test_average_precision_score_tied_values7  s    c       	   C  s   t  d t  \ }  } } t t t |  | d d t t t |  | d d d d t t t d d d g d d d g d d	 d  S(
   NRE   Ro   g        t	   pos_labeli   Rn   i    i   t   mega(   RQ   R@   R   R   R&   (   RP   RO   Rb   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt+   test_precision_recall_fscore_support_errorsD  s    			c        
   C  s8   t  t d t d d d g d d d g d d d d d  S(   Ns   Note that pos_label (set to 2) is ignored when average != 'binary' (got 'macro'). You may use labels=[pos_label] to specify a single positive class.i   i   R   Rn   R{   (   R   t   UserWarningR&   (    (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt(   test_precision_recall_f_unused_pos_labelU  s    c          C  sq   t  d t  \ }  } } d   } | |  |  | g  |  D] } t |  ^ q8 g  | D] } t |  ^ qT  d  S(   NRE   c         S  s   t  |  |  } t | d d g d d g g  | j   \ } } } } | | | | } t j | | | | | | | |  } | d k r d n | | }	 t |  |  }
 t |
 |	 d d t |
 d d d d  S(	   Ni   i   i   i   i    t   decimali   g=
ףp=?(   R   R   t   flattenR7   t   sqrtR%   R   (   RP   RO   t   cmt   tpt   fpt   fnt   tnt   numt   dent   true_mcct   mcc(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   testd  s    +(   RQ   R@   t   str(   RP   RO   Rb   R   RG   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_confusion_matrix_binary`  s
    	c          C  s*  t  j d g d d g d  }  t  j d g d d g d d g d d g d  } t |  |  } t | d d	 d
 t | t | |    t  j |  d g d  }  t  j | d g d  } t t |  | d d d g |  t t |  |   d  t  j d g d d g d d g d  }  t  j d g d d g d d g d  } t t |  |  d d	 d t  j d g d d g d d g d  }  t  j d g d d g d d g d  } t t |  |  d d	 d t t |  | d d d d	 d t t |  | d d d d	 d d  S(   Ni    i(   i   i<   i   i
   i2   gʡE?R   i   i   i   RX   g      ?i.   i,   i4   i    i   g??g+?t   weightsR/   g_vO?t	   quadraticg#?(   R7   Rh   R   R   R   t   append(   Rk   Rl   t   kappa(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_cohen_kappav  s"    !7",,,,"c           C  sB   t  t d g d g  d  t  t d d g d d g  d  d  S(   Ni    i   g        (   R   R%   (    (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_matthews_corrcoef_nan  s    c          C  so   t  j j d  }  |  j d d d d } |  j d d d d } t t | |  t  j | |  d d  d  S(   Ni    i   R   i   i   i
   (   i    i   (   R7   R;   R<   R   R   R%   t   corrcoef(   RK   RP   RO   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt-   test_matthews_corrcoef_against_numpy_corrcoef  s
    c          C  sE  t  j j d  }  |  j d d d d } |  j d d d d } |  j d  } t | | d | } t |  } t g  t |  D]f } t |  D]S } t |  D]@ } | | | f | | | f | | | f | | | f ^ q q q  }	 t g  t |  D]q } | d  d   | f j   t  j g  t |  D]5 }
 t |  D]" } |
 | k rC| | |
 f ^ qCq3 ^ q } t  j g  t |  D]q } | | d  d   f j   t  j g  t |  D]5 }
 t |  D]" } |
 | k r| |
 | f ^ qq ^ q } |	 t  j	 | |  } t
 | | |  } t | | d  d  S(   Ni    i   R   i   t   sample_weighti
   (   R7   R;   R<   R   R   R   R\   t   sumt   rangeR   R%   R   (   RK   RP   RO   R   t   Ct   Nt   kt   mt   lt   cov_ytypRq   t   gt   cov_ytytt   cov_ypypt
   mcc_jurmant   mcc_ours(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt%   test_matthews_corrcoef_against_jurman  s$    yc    	      C  s!  t  j j d  }  g  |  j d d d d D] } | d k rC d n d ^ q+ } t t | |  d  g  | D] } | d k r d n d ^ ql } t t | |  d  t | d d g  } t  j | d d  } t t | |  d  t t d d d d g d d d d g  } t | d	  t t | d g t	 |   } t | d	  d
 d d
 d
 d d
 d
 d
 d d
 d
 d
 d
 d
 d
 d
 d d
 d
 d
 g } d
 d
 d
 d d d
 d
 d
 d
 d d
 d
 d
 d d
 d
 d
 d d
 d
 g } t t | |  d	  d
 g d d g d } t
 t t t | | d | d	  d  S(   Ni    i   R   i   t   at   bg      ?ig        i   i
   R   (   R7   R;   R<   R   R   R%   R   t   whereR   R\   R   R^   (	   RK   R   RP   t
   y_true_invt   y_true_inv2R   t   y_1t   y_2t   mask(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_matthews_corrcoef  s$    =+*BB	c       	   C  s]  t  j j d  }  t d  } d } g  |  j d | d d D] } t | |  ^ q= } t t | |  d  d d d d d d g } d d d d d d g } t t | |  d	  d d d d d d g } d d d d d d g } t t | |  d
 t  j d   d d d g } d d d g } t	 t
 d t | |  } t | d  d d d d d d d d d g	 }	 d d d d d d d d d g	 }
 t t |	 |
  d  d d d d d g } d d d d d g } d d d d d g } t t | | |  d  d d d d g } d d d d g } d d d d g } t	 t
 d t | | |  } t | d  d  S(   Ni    R   i   R   i   g      ?i   i   g      ii   i   i   s   invalid value encounteredg        ii  (   R7   R;   R<   t   ordR   t   chrR   R%   R   R   t   RuntimeWarning(   RK   t   ord_at	   n_classesR   RP   t
   y_pred_badt
   y_pred_minRO   R   R   R   R   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt!   test_matthews_corrcoef_multiclass  s>    5	!!			t   n_pointsid   i'  i@B c           s   t  j j d    d   }   f d   } t  j d d g |   } t t | |  d  t  j d d d g |   } t t | |  d  | |   \ } } t t | |  d  t t | |  | | |   d  S(   Ni3c         S  s   t  |  |  } | d } | d } | d } t |   } | | | } | | | } | | | | }	 | | d | d | }
 |	 t j |
  S(   Ni   i    (   i   i   (   i   i    (   i    i   (   R   R\   R7   R   (   RP   RO   t   conf_matrixt   true_post	   false_post	   false_negR   t   pos_ratet   activityt   mcc_numeratort   mcc_denominator(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   mcc_safe&  s    


c           sL     j  |   } | d   j  |   d } | d k } | d k } | | f S(   Ng?g      ?(   t   random_sample(   R   t   x_truet   x_predRP   RO   (   RK   (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt	   random_ys2  s
    g        g      ?g       @(   R7   R;   R<   t   repeatR   R%   (   R   R   R   t   arrRP   RO   (    (   RK   sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_matthews_corrcoef_overflow!  s    	c    
   	   C  s  t  d t  \ }  } } t |  | d d  \ } } } } t | d d d g d  t | d d d	 g d  t | d
 d d g d  t | d d d g  t |  | d d d d } t | d d  t |  | d d } t | d d  t |  | d d }	 t |	 d d  t |  | d d } t | d d  t |  | d d } t | d d  t |  | d d }	 t |	 d d  t |  | d d } t | d d  t |  | d d } t | d d  t |  | d d }	 t |	 d d  t	 t
 t |  | d d t	 t
 t |  | d d t	 t
 t |  | d d t	 t
 t |  | d d d d t |  | d d d d g d d  \ } } } } t | d d d g d  t | d d	 d g d  t | d
 d d g d  t | d d d g  d  S(    NRE   Rn   g(\?gQ?gzG?i   gHzG?g
ףp=
?g?gQ?g333333?g=
ףp=?i   i   i   R   i   R|   g(\?R{   g333333?gRQ?R}   gGz?R~   Ro   g      ?RX   i    g=
ףp=?g?(   RQ   R[   R&   R2   R   R   R'   R(   R   R   R   R    (
   RP   RO   Rb   RJ   Rp   Rq   Rr   Ru   Rv   Rw   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt)   test_precision_recall_f1_score_multiclassD  sH    !-Rn   R~   R|   R{   R}   c      	   C  s   t  j d d d d g g  } t  j d d d d g g  } t | | d d d d d g d g  d |  \ } } } } t | d  t | d  t | d  |  d  k r t | d d d d g  n  d  S(   Ni   i    RX   i   i   t   warn_forRn   (   R7   Rh   R&   R   R2   (   Rn   RP   RO   RJ   Rp   Rq   Rr   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt;   test_precision_refcall_f1_score_multilabel_unordered_labels{  s    6c    
      C  s  t  j d d d d d d d d d d d d d d d g  }  t  j d d d d d d d d d d d d d d d g  } t |  | d d  \ } } } } t |  | d d \ } } } } t | t  j |   t | t  j |   t | t  j |   t |  | d d \ } } } } t  j |   }	 t | t  j | d |	  t | t  j | d |	  t | t  j | d |	  d  S(   Ni    i   Rn   R{   R}   R   (   R7   Rh   R&   R2   R   R   t   bincountRn   (
   RP   RO   Ru   Rv   Rw   Rb   RJ   Rp   Rq   RT   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt.   test_precision_recall_f1_score_binary_averaged  s    <<c          C  s   t  j d d  }  z t  j d d d d d d g  } t  j d d d d d d g  } t t | | d d d d  t t | | d d d d  t t | | d d d d  Wd  t  j |    Xd  S(	   Nt   allt   raisei    i   i   Rn   R{   g        (   R7   t   seterrRh   R   R'   R(   R   (   t   old_error_settingsRP   RO   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_zero_precision_recall  s    !!
c       	   C  s   t  d t  \ }  } } t |  | d d d g } t | d d g d d g g  t |  | d d d g } t | d	 d g d
 d g g  t j |   d } t |  | d d | g } t | d	 d g d d g g  t t t |  | d | | d g d  S(   NRE   RX   i    i   i   i   i   i   i   i   (   RQ   R[   R   R   R7   t   maxR   R   (   RP   RO   Rb   R   t   extra_label(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt.   test_confusion_matrix_multiclass_subset_labels  s    c          C  s  d d d g }  t  j t |    } t |  |   } t | j t  j  xQ t  j t  j t  j	 g D]7 } t |  |  d | j
 |  } t | j t  j  q_ WxQ t  j t  j d  t g D]7 } t |  |  d | j
 |  } t | j t  j  q Wt  j t |   d d t  j } t |  |  d | } t | d	 d  t | d
 d  t  j t |   d d t  j } t |  |  d | } t | d d  t | d d  d  S(   Ni    i   R   I    t   dtypeI   Ii(   i    i    (   i   i   (   i    i    (   i   i   (   R7   t   onesR\   R   R   R   t   int64t   bool_t   int32t   uint64t   astypet   float32t   float64R2   t   objectt   fullt   uint32(   RG   t   weightR   R   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_confusion_matrix_dtype  s$    !!c          C  sq   t  j   }  t d |  d t  \ } } } d } t | | d t j t |  j   d |  j } t	 | |  d  S(   NRD   RE   s|                precision    recall  f1-score   support

      setosa       0.83      0.79      0.81        24
  versicolor       0.33      0.10      0.15        31
   virginica       0.42      0.90      0.57        20

   micro avg       0.53      0.53      0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
RX   RY   (
   R   R3   RQ   R[   R   R7   R8   R\   RY   R   (   Ra   RP   RO   Rb   Rc   Rd   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt%   test_classification_report_multiclass  s    !c       
   C  si   d d d d d d d d d g	 d d d d d d d d d g	 }  } d } t  |  |  } t | |  d  S(   Ni    i   i   s|                precision    recall  f1-score   support

           0       0.33      0.33      0.33         3
           1       0.33      0.33      0.33         3
           2       0.33      0.33      0.33         3

   micro avg       0.33      0.33      0.33         9
   macro avg       0.33      0.33      0.33         9
weighted avg       0.33      0.33      0.33         9
(   R   R   (   RP   RO   Rc   Rd   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt.   test_classification_report_multiclass_balanced  s    Cc          C  sP   t  j   }  t d |  d t  \ } } } d } t | |  } t | |  d  S(   NRD   RE   s|                precision    recall  f1-score   support

           0       0.83      0.79      0.81        24
           1       0.33      0.10      0.15        31
           2       0.42      0.90      0.57        20

   micro avg       0.53      0.53      0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
(   R   R3   RQ   R[   R   R   (   Ra   RP   RO   Rb   Rc   Rd   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt:   test_classification_report_multiclass_with_label_detection  s
    c       	   C  sw   t  j   }  t d |  d t  \ } } } d } t | | d t j t |  j   d |  j d d } t	 | |  d  S(   NRD   RE   s|                precision    recall  f1-score   support

      setosa    0.82609   0.79167   0.80851        24
  versicolor    0.33333   0.09677   0.15000        31
   virginica    0.41860   0.90000   0.57143        20

   micro avg    0.53333   0.53333   0.53333        75
   macro avg    0.52601   0.59615   0.50998        75
weighted avg    0.51375   0.53333   0.47310        75
RX   RY   t   digitsi   (
   R   R3   RQ   R[   R   R7   R8   R\   RY   R   (   Ra   RP   RO   Rb   Rc   Rd   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt1   test_classification_report_multiclass_with_digits$  s    !c          C  s   t  d t  \ }  } } t j d d d g  |  }  t j d d d g  | } d } t |  |  } t | |  d } t |  | d d d	 d
 g } t | |  d  S(   NRE   t   bluet   greent   reds|                precision    recall  f1-score   support

        blue       0.83      0.79      0.81        24
       green       0.33      0.10      0.15        31
         red       0.42      0.90      0.57        20

   micro avg       0.53      0.53      0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
s|                precision    recall  f1-score   support

           a       0.83      0.79      0.81        24
           b       0.33      0.10      0.15        31
           c       0.42      0.90      0.57        20

   micro avg       0.53      0.53      0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
RY   R   R   t   c(   RQ   R[   R7   Rh   R   R   (   RP   RO   Rb   Rc   Rd   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt7   test_classification_report_multiclass_with_string_label;  s    c          C  sj   t  d t  \ }  } } t j d d d g  } | |  }  | | } d } t |  |  } t | |  d  S(   NRE   u   blue¢u   green¢u   red¢u                precision    recall  f1-score   support

       blue¢       0.83      0.79      0.81        24
      green¢       0.33      0.10      0.15        31
        red¢       0.42      0.90      0.57        20

   micro avg       0.53      0.53      0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
(   RQ   R[   R7   Rh   R   R   (   RP   RO   Rb   RX   Rc   Rd   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt8   test_classification_report_multiclass_with_unicode_label_  s    

c          C  sn   t  d t  \ }  } } t j d d d d g  } | |  }  | | } d } t |  |  } t | |  d  S(   NRE   R   R   i   R   s                             precision    recall  f1-score   support

                     blue       0.83      0.79      0.81        24
greengreengreengreengreen       0.33      0.10      0.15        31
                      red       0.42      0.90      0.57        20

                micro avg       0.53      0.53      0.53        75
                macro avg       0.53      0.60      0.51        75
             weighted avg       0.51      0.53      0.47        75
(   RQ   R[   R7   Rh   R   R   (   RP   RO   Rb   RX   Rc   Rd   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt<   test_classification_report_multiclass_with_long_string_labelu  s    

c       
   C  se   d d d d d g }  d d d d d g } d d d g } t  t d t |  | d d d g d | d  S(	   Ni    i   s   class 0s   class 1s   class 2s6   labels size, 2, does not match size of target_names, 3RX   RY   (   R   R   R   (   RP   RO   RY   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt=   test_classification_report_labels_target_names_unequal_length  s    c          C  sY   d d d d d g }  d d d d d g } d d d g } t  t d t |  | d | d  S(   Ni    i   s   class 0s   class 1s   class 2sa   Number of classes, 2, does not match size of target_names, 3. Try specifying the labels parameterRY   (   R   R   R   (   RP   RO   RY   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt@   test_classification_report_no_labels_target_names_unequal_length  s    c       	   C  s   d }  d } t  d d d | d |  d d  \ } } t  d d d | d |  d d  \ } } d	 } t | |  } t | |  d  S(
   Ni   i2   RI   i   RH   R   R1   i    s                precision    recall  f1-score   support

           0       0.50      0.67      0.57        24
           1       0.51      0.74      0.61        27
           2       0.29      0.08      0.12        26
           3       0.52      0.56      0.54        27

   micro avg       0.50      0.51      0.50       104
   macro avg       0.45      0.51      0.46       104
weighted avg       0.45      0.51      0.46       104
 samples avg       0.46      0.42      0.40       104
(   R   R   R   (   R   RH   Rb   RP   RO   Rc   Rd   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt%   test_multilabel_classification_report  s    c          C  s  t  j d d d g d d d g g  }  t  j d d d g d d d g g  } t t |  |  d  t t |  |   d  t t | |  d  t t | t  j |   d  t t |  t  j |    d  t t |  t  j |  j   d  t t | t  j |  j   d  d  S(   Ni    i   g      ?(   R7   Rh   R   R)   Ri   Rj   R6   (   Rk   Rl   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt$   test_multilabel_zero_one_loss_subset  s    ''"c          C  s  t  j d d d g d d d g g  }  t  j d d d g d d d g g  } t  j d d g  } t t |  |  d  t t |  |   d  t t | |  d  t t | d |  d  t t |  d |   d  t t |  t  j |  j   d  t t | t  j |  j   d  t t |  | d | d  t t |  d | d | d  t t |  t  j |   d | d  t t |  d | d  t |  d | d   d  S(   Ni    i   i   i   i   g      ?R   g      ?i   g      &@g       @gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?(   R7   Rh   R   R!   Rj   R6   t
   zeros_liket
   sp_hamming(   Rk   Rl   t   w(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_multilabel_hamming_loss  s    ''"" %c          C  s  t  j d d d g d d d g g  }  t  j d d d g d d d g g  } t t |  |  d  t t |  |   d  t t | |  d  t t | t  j |   d  t t |  t  j |    d  t t |  t  j |  j   d  t t | t  j |  j   d  d  S(   Ni    i   g      ?(   R7   Rh   R   R#   Ri   Rj   R6   (   Rk   Rl   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt(   test_multilabel_jaccard_similarity_score  s    ''"c          C  sR  t  j d d d d g d d d d g d d d d g g  }  t  j d d d d g d d d d g d d d d g g  } t |  | d d  \ } } } } t | d d d d g d  t | d d d d g d  t | d d d d g d  t | d d d d g d  t |  | d	 d d d  } | } t | d d
 d d g d  t |  | d d \ } } } } t | d  t | d  t | d  t | d   t t |  | d	 d d d t  j |   t |  | d d \ } } } } t | d  t | d  t | d  t | d   t t |  | d	 d d d d | | d | |  t |  | d d \ } } } } t | d  t | d  t | d  t | d   t t |  | d	 d d d t  j	 | d |  t |  | d d \ } } } } t | d  t | d  t | d  t | d   t t |  | d	 d d d d  d  S(   Ni   i    Rn   g        g      ?g      ?i   g      ?Ro   g(\?R{   i   g      @g      ?R|   R}   R   R~   gUUUUUU?g      ?g?g?i   g      ?g?g?(
   R7   Rh   R&   R2   R   R    R   R   R   Rn   (   RP   RO   RJ   Rp   Rq   Rr   t   f2RT   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt+   test_precision_recall_f1_score_multilabel_1  sX    <<!c          C  sU  t  j d d d d g d d d d g d d d d g g  }  t  j d d d d g d d d d g d d d d g g  } t |  | d d  \ } } } } t | d d d d g d  t | d d d d g d  t | d d d d g d  t | d d d d g d  t |  | d	 d d d  } | } t | d d
 d d g d  t |  | d d \ } } } } t | d  t | d  t | d  t | d   t t |  | d	 d d d d | | d | |  t |  | d d \ } } } } t | d  t | d  t | d  t | d   t t |  | d	 d d d t  j |   t |  | d d \ } } } } t | d  t | d  t | d   t | d   t t |  | d	 d d d t  j	 | d |  t |  | d d \ } } } } t | d!  t | d"  t | d%  t | d   t t |  | d	 d d d d d  d  S(&   Ni   i    Rn   g        g      ?i   g      ?gQ?Ro   g?R|   g      ?i   R{   g      ?i   R}   i   R   R~   i   g&S?g      ?g      ?g      ?i   gUUUUUU?g      ?g      ?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?g      ?g      ?gUUUUUU?(
   R7   Rh   R&   R2   R   R    R   R   R   Rn   (   RP   RO   RJ   Rp   Rq   Rr   R  RT   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt+   test_precision_recall_f1_score_multilabel_2>  s^    <<c          C  s]  t  j d d d d g d d d d g d d d d g g  }  t  j d d d d g d d d d g d d d d g g  } t |  | d d  \ } } } } t | d d d d g d  t | d d d d g d  t | d d d d g d  t | d d d d g d  t |  | d	 d d d  } | } t | d d
 d d g d  t |  | d d \ } } } } t | d  t | d  t | d d  t | d   t t |  | d	 d d d t  j |   t |  | d d \ } } } } t | d  t | d  t | d d  t | d   t t |  | d	 d d d d | | d | |  t |  | d d \ } } } } t | d  t | d  t | d  t | d   t t |  | d	 d d d t  j	 | d |  t |  | d d \ } } } } t | d   t | d!  t | d"  t | d   t t |  | d	 d d d d d  d  S(#   Ni    i   Rn   g        g      ?i   g      ?g      ?Ro   g?R{   i   g      @R|   i   R}   R   R~   gZd;O?gUUUUUU?g      ?g      @gUUUUUU?gUUUUUU?gUUUUUU?g?i   g      ?gUUUUUU?g@g?gUUUUUU?gUUUUUU?gUUUUUU?(
   R7   Rh   R&   R2   R   R    R   R   R   Rn   (   RP   RO   RJ   Rp   Rq   Rr   R  RT   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt7   test_precision_recall_f1_score_with_an_empty_prediction  s^    <<Ro   i   c   	   	   C  s   t  j d  } t  j |  } t t t | | d | d |  \ } } } } t | d  t | d  t | d  t | d   t t t	 | | d |  d | } t | d  d  S(   Ni   i   Rn   Ro   i    (   i   i   (
   R7   Rj   R	  R   R,   R&   R   R   R2   R    (	   Ro   Rn   RP   RO   RJ   Rp   Rq   Rr   t   fbeta(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt"   test_precision_recall_f1_no_labels  s    		c       	   C  s   t  j d  }  t  j |   } d } t t t |  | d d  d | \ } } } } t | d d d g d  t | d d d g d  t | d d d g d  t | d d d g d  t t t |  | d | d d  } t | d d d g d  d  S(	   Ni   i   i   Rn   Ro   i    i   (   i   i   (	   R7   Rj   R	  R   R,   R&   R2   R   R    (   RP   RO   Ro   RJ   Rp   Rq   Rr   R  (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt/   test_precision_recall_f1_no_labels_average_none  s    
$	c       	   C  sU  t  t }  } t } x d  d d g D]n } d } | | | |  d d d g d d d g d | d } | | | |  d d d g d d d g d | q# Wd	 } | | | |  t j d d g d d g g  t j d d g d d g g  d d
 d } | | | |  t j d d g d d g g  t j d d g d d g g  d d
 d } | | | |  t j d d g d d g g  t j d d g d d g g  d d d } | | | |  t j d d g d d g g  t j d d g d d g g  d d d } | | | |  d d g d d g d d d } | | | |  d d g d d g d d d  S(   NR}   R{   s_   Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.i    i   i   Rn   sW   Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples.s_   Precision and F-score are ill-defined and being set to 0.0 in samples with no predicted labels.R~   sW   Recall and F-score are ill-defined and being set to 0.0 in samples with no true labels.sW   Precision and F-score are ill-defined and being set to 0.0 due to no predicted samples.R|   sO   Recall and F-score are ill-defined and being set to 0.0 due to no true samples.iRE   (   R&   R,   R   R2   R7   Rh   (   Rq   R  Rt   Rn   t   msg(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_prf_warnings  s0    .2*(*!*(*((c       
   C  s   t  t t j d d g d d g g  t j d d g d d g g  d d t   t j d t  y }  t j d  t t j d d g d d g g  t j d d g d d g g  d d t	 t
 |  j   j  d  Wd  QXd  S(   Ni   i    Rn   R|   t   recordt   alwayssB   Recall is ill-defined and being set to 0.0 due to no true samples.(   R   R(   R7   Rh   R   t   warningst   catch_warningsR@   t   simplefilterR   R   t   popt   message(   R  (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_recall_warnings  s    !!!c       
   C  s   t    t j d t  y }  t j d  t t j d d g d d g g  t j d d g d d g g  d d t t	 |  j
   j  d  Wd  QXt t t j d d g d d g g  t j d d g d d g g  d d d  S(   NR  R  i   i    Rn   R|   sJ   Precision is ill-defined and being set to 0.0 due to no predicted samples.(   R   R  R  R@   R  R'   R7   Rh   R   R   R  R  R   (   R  (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_precision_warnings/  s    !!!c          C  s   t    t j d t  }  t j d  x t t t d d g D] } | t j	 d d g d d g g  t j	 d d g d d g g  d d t
 t |  j   j  d	  | t j	 d d g d d g g  t j	 d d g d d g g  d d t
 t |  j   j  d
  qB WWd  QXd  S(   NR  R  Ro   i   i   i    Rn   R|   sH   F-score is ill-defined and being set to 0.0 due to no predicted samples.sC   F-score is ill-defined and being set to 0.0 due to no true samples.(   R   R  R  R@   R  R   R   R    R7   Rh   R   R   R  R  (   R  t   score(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_fscore_warningsA  s    !!!!c          C  s  d d d d g }  d d d d g } t  j 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 g  } xr |  | d f | | d f g D]R \ } } } x@ t t t t t d d g D]  } t t d | | | |  q Wq Wd  S(	   Ni   i   i   i    t
   multiclasss   multilabel-indicatorRo   sI   Target is %s but average='binary'. Please choose another average setting.(	   R7   Rh   R'   R(   R   R   R    R   R   (   t	   y_true_mct	   y_pred_mct
   y_true_indt
   y_pred_indRP   RO   t   y_typeRf   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt'   test_prf_average_binary_data_non_binaryU  s    33c          C  sc  d }  d } d } d } d } d } |  t  j d d d g d d d g d d d g g  f |  t  j d d g d d g d d g g  f | d	 d
 d g f | d d d g f | d d d g f | t  j d	 g d
 g d g g  f | t  j d g d g d g g  f | t  j d g d g d g g  f | t  j d d	 g d d
 g d	 d
 g g  f | t  j d d g d d g d d g g  f g
 } i |  |  |  f 6| | | f 6| | | f 6d  | |  f 6d  | |  f 6| | | f 6d  | | f 6d  | | f 6d  | | f 6d  |  | f 6d  | | f 6d  | | f 6d  | | f 6d  | | f 6d  |  | f 6d  | | f 6d  | | f 6d  | | f 6d  |  | f 6d  | | f 6d  | | f 6} xt | d d	 D]t\ \ } }	 \ }
 } y | | |
 f } Wn! t k
 r| |
 | f } n X| d  k rt t t |	 |  | |
 k rSt t d j	 | |
  t |	 |  q'| | | |  f k r't t d j	 |  t |	 |  q'qt |	 |  \ } } } t
 | |  | j d  rt
 | j	 d  t
 | j	 d  n, t | t  j |	   t | t  j |   t t t |	 d  |  qWd d g }	 d d g } d } t t | t |	 |  d  S(   Ns   multilabel-indicatorR"  RE   t
   continuouss   multiclass-multioutputs   continuous-multioutputi    i   i   i   g        g      ?g      ?g      ?g       @g?g      @R   s@   Classification metrics can't handle a mix of {0} and {1} targetss   {0} is not supportedt
   multilabelt   csris   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.(   i   i   (   i    i   i   (   i   (   i    i   (   R7   Rh   R2   R   t   KeyErrorR   R   R+   R   t   formatR   t
   startswithR   t   squeeze(   t   INDt   MCt   BINt   CNTt   MMCt   MCNt   EXAMPLESt   EXPECTEDt   type1Rk   t   type2Rl   t   expectedt   merged_typet   y1outt   y2outR  (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test__check_targetsh  s    6-$$$-3+	c          C  s6   d d g }  d d g } t  t |  |  d d  d  S(   Ni    i   iR"  (   R   R+   (   RP   RO   (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pytA   test__check_targets_multiclass_with_both_y_true_and_y_pred_binary  s    c          C  s   t  j d d d d g  }  t  j d d d d g  } t t |  |  d  t  j d	 d
 d
 d	 g  }  t  j d d d d g  } t t |  |  d  d  S(   Nii   g      !g      ?g      ?g333333ӿg333333?i   i    i   g333333?g333333?(   R7   Rh   R   R"   (   RP   t   pred_decision(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_hinge_loss_binary  s    c       
   C  s  t  j d 
d d d g d d d d g d d d	 d g d d	 d d g d
 d d d 
g d d d	 d g g  }  t  j d d d d d d g  } t  j d |  d d |  d d d |  d d |  d d d |  d d |  d d d |  d d |  d d d |  d d |  d d d |  d d |  d d g  } t  j | d d  d | t  j |  } t t | |   |  d  S(   Ng
ףp=
?g(\ſg(\gGzgHzGgGz׿gQ޿g333333gRQؿgzGgHzGgHzGѿgQ?i    i   i   i   i   i   t   out(   R7   Rh   t   clipR2   R   R   R"   (   R@  RP   t   dummy_lossest   dummy_hinge_loss(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_hinge_loss_multiclass  s&    !$c          C  s   t  j d d d d g  }  t  j d 
d d d g d d	 d
 d g d d d d 
g d d d d 
g g  } d } t t | t |  |  d  S(   Ni    i   i   gRQ?g rh?g(\gffffffg333333g(\gRQؿg(\ſgzGgHzGgHzGѿgQ?sD   Please include all labels in y_true or pass labels as third argument(   R7   Rh   R   R   R"   (   RP   R@  t   error_message(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt:   test_hinge_loss_multiclass_missing_labels_with_labels_none  s    c       	   C  sr  t  j d 
d d d g d d d d g d d d d g d d d d g d d d d g g  }  t  j d	 d
 d d
 d g  } t  j d	 d
 d d g  } t  j d
 |  d	 d	 |  d	 d
 d
 |  d
 d
 |  d
 d d
 |  d d |  d d d
 |  d d
 |  d d d
 |  d d |  d d g  } t  j | d	 d  d | t  j |  } t t | |  d | |  d  S(   Ng
ףp=
?g(\ſg(\gGzggRQؿgQ޿g333333i    i   i   i   i   RB  RX   (   R7   Rh   RC  R2   R   R   R"   (   R@  RP   RX   RD  RE  (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt.   test_hinge_loss_multiclass_with_missing_labels  s$    $c       	   C  sm  d d d d d d g }  d 
d d d g d	 d
 d d g d d d
 d g d	 d
 d d g d d d d 
g d d d
 d g g } t  j d | d d | d d d | d d | d d d | d d | d d d | d d | d d d | d d | d d d | d d | d d g  } t  j | d d  d | t  j |  } t t |  |  |  d  S(   NR   R   R   t   whiteg
ףp=
?g(\ſg(\gGzggRQؿgQ޿g333333gzGgHzGgHzGѿgQ?i   i    i   i   i   i   RB  (   R7   Rh   RC  R2   R   R   R"   (   RP   R@  RD  RE  (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt+   test_hinge_loss_multiclass_invariance_lists  s&    	$c          C  sc  d d d d d d g }  t  j d d g d d g d d g d d g d d	 g d
 d g g  } t |  |  } t | d  d d d g }  d d d g d d d g d d d g g } t |  | d t } t | d  |  d 9}  | d 9} t |  | d t } t | d" d d t  j |  d k } t |  | d t d d } t | t |  t  j | d d    d d d g }  d d g d d g d d g g } t t	 t |  |  d d d d g }  d d g d d g d d g d d g g } t |  |  } t | d d d d d g }  d d g d d g g } t  j d d g d d g g  } d } t
 t	 | t |  |  d d g d d g d d g g } d } t
 t	 | t |  |  t  j t  j | d  d   d f   } t |  | d d d g } t | |  d d d g }  d d d g d d d g d d d g g } t |  | d d d d  g } t | d! d d d  S(#   Nt   not   yesg      ?g?g?g{Gz?gGz?g      ?g      ?gMbP?g+?gRF?i   i    i   g?gffffff?g333333?g333333?t	   normalizeg躕ʀ?i   R   t   epsg?t   hamt   spamgL7?sj   y_true contains only one label (2). Please provide the true labels explicitly through the labels argument.sB   Found input variables with inconsistent numbers of samples: [3, 2]RX   i   gPv0?g.L`@(   R7   Rh   R$   R   R@   R[   t   asarrayRC  R   R   R   R   t   log(   RP   RO   t   lossR   t	   error_strt   true_log_losst   calculated_log_losst   y_score2(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_log_loss/  sL    !$*

%!*!!)*c    
      C  s   t  j d d d d g  }  t  j d d g d d g d d g d d g g  } t t f g } y- d	 d
 l m } m } | j | | f  Wn t k
 r n XxO | D]G \ } } | |   | |  } } t | |  }	 t	 |	 d d d q Wd  S(   NRP  RQ  g?gffffff?g333333?g      ?g?g?i(   t   Seriest	   DataFramegL7?R   i   (
   R7   Rh   R   t   pandasRZ  R[  R   t   ImportErrorR$   R   (
   t   y_trt   y_prt   typesRZ  R[  t   TrueInputTypet   PredInputTypeRP   RO   RT  (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_log_loss_pandas_inputo  s    3c          C  sH  t  j d d d d d d g  }  t  j d d d d d d g  } t j |  |  d	 t |   } t t |  |   d
  t t |  |  |  t t d |  |  |  t t d	 |  d |  |  t t t |  | d  t t t |  | d  t t t |  | d  t t d g d g  d  t t d g d g  d  d  S(   Ni    i   g?g?g?g333333?g      ?gffffff?i   g        g      ?g      ?(	   R7   Rh   R   t   normR\   R   R*   R   R   (   RP   RO   t
   true_score(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_brier_score_loss  s    !!!c           C  s,   t  t d t d d d g d d d g  d  S(   Ns%   y_pred contains classes not in y_truei    i   (   R   R   R   (    (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt#   test_balanced_accuracy_score_unseen  s    	s   y_true,y_predR   R   R  c         C  s   t  |  | d d d t j |   } t    t |  |  } Wd  QX| t j |  k s^ t  t |  | d t } t |  t j	 |  |  d   } | | | d | k s t  d  S(   NRn   R{   RX   t   adjustedi    i   (
   R(   R7   t   uniqueR   R   t   pytestt   approxR^   R@   t	   full_like(   RP   RO   t   macro_recallt   balancedRh  t   chance(    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   test_balanced_accuracy_score  s    
(   t
   __future__R    R   t	   functoolsR   t	   itertoolsR   R  t   numpyR7   t   scipyR   Rj  t   sklearnR   R   t   sklearn.datasetsR   t   sklearn.preprocessingR   t   sklearn.utils.validationR	   t   sklearn.utils.testingR
   R   R   R   R   R   R   R   R   R   R   R   R   R   t   sklearn.utils.mockingR   t   sklearn.metricsR   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   t   sklearn.metrics.classificationR+   t   sklearn.exceptionsR,   t   scipy.spatial.distanceR-   R
  R2   R[   RQ   Rg   Rm   Rx   Ry   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   markt   parametrizeR   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?  RA  RF  RH  RI  RK  RY  Rc  Rf  Rg  Rp  (    (    (    sH   lib/python2.7/site-packages/sklearn/metrics/tests/test_classification.pyt   <module>   s   /	2			0										)	7'#	7!									$					 			ED?-		.					]		
					@			!!