
\c           @   sY  d  d l  m Z d  d l Z d  d l Z 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 m Z d  d l m Z m Z d  d l m  Z  m! Z! d  d l" m# Z# m$ Z$ m% Z% d  d l" m& Z& d  d l' m( Z( d  d l) m* Z* m+ Z+ d  d l m, Z, d  d l) m- Z- d  d l. m/ Z/ d  d l0 m1 Z1 e j2 j3 d  Z4 d e  f d     YZ5 d e! f d     YZ6 e j7 d  d  g d  d  g d  d  g d! d! g d! d" g d" d! g g  Z8 d! d! d! d" d" d" g Z9 e j7 d  d  g d" d" g d# d" g g  Z: d! d" d" g Z; e j7 d  d! g d$ d% g d& d' g d! d! g d( d% g d' d' g d  d  g d) d* g d! d  g g	  Z< d+ g d# d, g d# d- g d# Z= e j7 d& d% g d! d" g d) d  g g  Z> d+ d, d- g Z? e j7 d! d! d) d) d) d) g d! d! d) d) d) d) g d) d) d! d) d) d) g d) d) d! d) d) d) g d) d) d) d) d! d! g d) d) d) d) d! d! g d) d) d) d! d) d) g d) d) d) d! d) d) g g  Z@ e j7 d! d! d! d! d" d" d" d" g  ZA e j7 d! d. d/ d) d) d) g d! d0 d1 d) d) d) g d! d2 d3 d) d) d) g d! d4 d5 d) d) d) g d) d) d) d6 d4 d! g d) d) d) d7 d0 d! g d) d) d) d4 d8 d! g d) d) d) d9 d! d! g g  ZB e j7 d! d! d! d! d" d" d" d" g  ZC e jD   ZE e j7 d  d  g d  d  g d  d  g d! d! g d! d" g d" d! g g  ZF d! d! d! d" d" d" g ZG d) d! d! g ZH d: eI f d;     YZJ d< e jK eJ f d=     YZL d> eL f d?     YZM d@ e jK eJ f dA     YZN dB eN f dC     YZO dD   ZP dE   ZQ dF   ZR e j2 jS dG dH dI dJ g  dK    ZT dL   ZU dM   ZV e dN eW eX f  dO    ZY dP   ZZ dQ   Z[ dR   Z\ dS   Z] dT   Z^ dU   Z_ dV   Z` dW   Za dX   Zb dY   Zc dZ   Zd e j2 je ef e	 d[  d\ d] e j2 jS d^ d_ d` da g  db     Zg d S(c   i(   t   LooseVersionN(   t   assert_array_equal(   t   assert_almost_equal(   t   assert_array_almost_equal(   t   assert_greater(   t   assert_less(   t   assert_raises(   t   assert_false(   t   assert_equal(   t   assert_raises_regexp(   t   assert_warns(   t   assert_warns_message(   t   assert_no_warnings(   t   ignore_warnings(   t   linear_modelt   datasetst   metrics(   t   clonet   is_classifier(   t   SGDClassifiert   SGDRegressor(   t   LabelEncodert   scalet   MinMaxScaler(   t   StandardScaler(   t   ConvergenceWarning(   t   StratifiedShuffleSplitt   ShuffleSplit(   t   sgd_fast(   t   RandomizedSearchCV(   t   _joblib(   t   parallel_backends,   ignore:max_iter and tol parameters have beent   SparseSGDClassifierc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         O   s.   t  j |  } t t |   j | | | |  S(   N(   t   spt
   csr_matrixt   superR    t   fit(   t   selft   Xt   yt   argst   kw(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR$   ,   s    c         O   s.   t  j |  } t t |   j | | | |  S(   N(   R!   R"   R#   R    t   partial_fit(   R%   R&   R'   R(   R)   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR*   0   s    c         C   s%   t  j |  } t t |   j |  S(   N(   R!   R"   R#   R    t   decision_function(   R%   R&   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR+   4   s    c         C   s%   t  j |  } t t |   j |  S(   N(   R!   R"   R#   R    t   predict_proba(   R%   R&   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR,   8   s    (   t   __name__t
   __module__R$   R*   R+   R,   (    (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR    *   s   			t   SparseSGDRegressorc           B   s#   e  Z d    Z d   Z d   Z RS(   c         O   s(   t  j |  } t j |  | | | |  S(   N(   R!   R"   R   R$   (   R%   R&   R'   R(   R)   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR$   ?   s    c         O   s(   t  j |  } t j |  | | | |  S(   N(   R!   R"   R   R*   (   R%   R&   R'   R(   R)   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR*   C   s    c         O   s%   t  j |  } t j |  | | |  S(   N(   R!   R"   R   R+   (   R%   R&   R(   R)   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR+   G   s    (   R-   R.   R$   R*   R+   (    (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR/   =   s   		ii   i   i   g      g      ?g      g      ?g      ?i    g      t   onet   twot   threeg?g?gzG?g\(\?gQ?g)\(?gQ?gGz?g{Gz?gHzG?gffffff?g(\?t
   CommonTestc           B   s   e  Z d    Z d d d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         K   sX   d | k r d | d <n  d | k r2 d  | d <n  d | k rK d | d <n  |  j |   S(   Nt   random_statei*   t   tolt   max_iteri   (   t   Nonet   factory_class(   R%   t   kwargs(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   factoryw   s    g        c         C   sG  | d  k r% t j | j d  } n | } t j | j d  } | }	 d }
 d } t |  t  sq t |  t  rz d } n  x t |  D] \ } } t j | |  } | |	 7} | | | } | d | | 9} | | | | 7} |	 | | | 7}	 | | 9} | | 7} | | d :} |
 | 9}
 |
 |	 7}
 |
 | d :}
 q W| |
 f S(   Ni   g        g      ?g{Gz?(	   R7   t   npt   zerost   shapet
   isinstancet   SparseSGDClassifierTestCaset   SparseSGDRegressorTestCaset	   enumeratet   dot(   R%   R&   R'   t   etat   alphat   weight_initt   intercept_initt   weightst   average_weightst	   interceptt   average_interceptt   decayt   it   entryt   pt   gradient(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   asgd   s0    	




c         C   s0  |  j  d d d d d t d |  } | j | |  |  j  d d d d d t d |  } | j | | d | j j   d | j j   |  j  d d d d d t d	 t d |  } | j | |  t | j | j  t	 | j | j  | j
 d d  | j | |  t | j | j  t	 | j | j  d  S(
   NRD   g{Gz?t   eta0t   shufflet   learning_rategMbP?t	   coef_initRF   t
   warm_start(   R:   t   FalseR$   t   coef_t   copyt
   intercept_t   TrueR   t   t_R   t
   set_params(   R%   R&   t   Yt   lrt   clft   clf2t   clf3(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   _test_warm_start   s"    		c         C   s   |  j  t t d  d  S(   Nt   constant(   Rb   R&   R]   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_warm_start_constant   s    c         C   s   |  j  t t d  d  S(   Nt
   invscaling(   Rb   R&   R]   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_warm_start_invscaling   s    c         C   s   |  j  t t d  d  S(   Nt   optimal(   Rb   R&   R]   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_warm_start_optimal   s    c         C   s   |  j  t t d  d  S(   Nt   adaptive(   Rb   R&   R]   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_warm_start_adaptive   s    c         C   sw   |  j  d d d t  } | j t t  t j t  d  d   t j f } t j | | f } t	 t
 | j t |  d  S(   NRD   g{Gz?RR   (   R:   RV   R$   R&   R]   R;   t   arrayt   newaxist   c_R   t
   ValueError(   R%   R_   t   Y_(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_input_format   s
    "c         C   s   |  j  d d d d  } t |  } | j d d  | j t t  |  j  d d d d  } | j t t  t | j | j  d  S(   NRD   g{Gz?t   penaltyt   l1t   l2(   R:   R   R\   R$   R&   R]   R   RW   (   R%   R_   R`   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt
   test_clone   s    c         C   s   |  j  d t d d  } | j t t  t | d  s= t  t | d  sR t  t | d  sg t  t | d  s| t  |  j    } | j t t  t t | d   t t | d   t t | d   t t | d   d  S(   Nt   averageRQ   g{Gz?t   average_coef_t   average_intercept_t   standard_intercept_t   standard_coef_(   R:   RZ   R$   R&   R]   t   hasattrt   AssertionErrorR   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_plain_has_no_average_attr   s    c         C   s   |  j  d d  } |  j    } x t d  D]v } t | t  r | j t t d t j t  | j t t d t j t  q+ | j t t  | j t t  q+ Wt	 | j
 | j
 d d t | j | j d d d  S(   NRu   iX  id   t   classest   decimali   (   R:   t   rangeR>   R   R*   R&   R]   R;   t   uniqueR   RW   R   RY   (   R%   t   clf1R`   t   _(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt%   test_late_onset_averaging_not_reached   s    "c         C   s9  d } d } t  j t  } d | | d k <d | | d k <|  j d d d	 d
 d d d | d | d d d t  } |  j d d d	 d
 d d d | d | d d d t  } | j t |  | j t |  |  j t | | | d | j j	   d | j
 \ } } t | j j	   | j	   d d t | j
 | d d d  S(   NgMbP?g-C6?g      i   g      ?i   Ru   i   RS   Rc   t   losst   squared_lossRQ   RD   R6   RR   i    RE   RF   R~   i   (   R;   Rk   R]   R:   RV   R$   R&   RP   RW   t   ravelRY   R   R   (   R%   RQ   RD   t   Y_encodeR   R`   RH   RJ   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt!   test_late_onset_averaging_reached   s(    c         C   s    t  t |  j d d d d d  S(   NRD   i    RS   Rg   (   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt,   test_sgd_bad_alpha_for_optimal_learning_rate  s    c         C   s   t  j t  j d k } t  j t  j d k } xY t t g D]K } d } |  j d | d d d |  j | |  } | j | k  s9 t  q9 Wd  S(   Ni    i  t   early_stoppingR5   gMbP?R6   (	   t   irist   datat   targetRZ   RV   R:   R$   t   n_iter_R{   (   R%   R&   R]   R   R6   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_early_stopping!  s    c      	   C   s   |  j  d d d d d d d d  } | j t j t j  |  j  d d	 d d d d d d  } | j t j t j  | j | j k s t  d  S(
   NRS   Ri   RQ   g{Gz?R5   gMbP?R6   id   Rc   (   R:   R$   R   R   R   R   R{   (   R%   R   R`   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt"   test_adaptive_longer_than_constant*  s    		c         C   s  t  j t  j } } d } d } t } d } |  j d t d t j j |  d | d d d	 d
 d d  d | d |  } | j
 | |  | j | k s t  |  j d t d t j j |  d d d	 d
 d d  d | d |  } t |  r t d | d |  }	 n t d | d |  }	 t |	 j | |   \ }
 } t j |
  }
 | j
 | |
 | |
  | j | k smt  t | j | j  d  S(   Ng?i*   i
   R   R4   t   validation_fractionRS   Rc   RQ   g{Gz?R5   R6   RR   t	   test_size(   R   R   R   RV   R:   RZ   R;   t   randomt   RandomStateR7   R$   R   R{   R   R   R   t   nextt   splitt   sortR   RW   (   R%   R&   R]   R   t   seedRR   R6   R   R`   t   cvt	   idx_traint   idx_val(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt)   test_validation_set_not_used_for_training3  s4    	c         C   s   t  j t  j } } xv t t g D]h } g  d d d g D]9 } |  j d | d | d d d d	  j | |  j ^ q6 } t | t	 |   q  Wd  S(
   Ni   i   i
   R   t   n_iter_no_changeR5   g-C6?R6   i  (
   R   R   R   RZ   RV   R:   R$   R   R   t   sorted(   R%   R&   R]   R   R   t   n_iter_list(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_n_iter_no_changeS  s
    Lc         C   sB   |  j  d t d d  } t j t   | j t t  Wd  QXd  S(   NR   R   gGz?(   R:   RZ   t   pytestt   raisesRn   R$   t   X3t   Y3(   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt)   test_not_enough_sample_for_early_stopping^  s    N(   R-   R.   R:   R7   RP   Rb   Rd   Rf   Rh   Rj   Rp   Rt   R|   R   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR3   u   s$   	"																	 	t   DenseSGDClassifierTestCasec           B   s  e  Z d  Z e Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d    Z$ d!   Z% d"   Z& d#   Z' d$   Z( d%   Z) d&   Z* d'   Z+ d(   Z, d)   Z- d*   Z. d+   Z/ d,   Z0 d-   Z1 d.   Z2 d/   Z3 d0   Z4 d1   Z5 d2   Z6 RS(3   s6   Test suite for the dense representation variant of SGDc         C   sk   xd d D]\ } |  j  d d d d d	 t d
 | d d d t  } | j t t  t | j t  t  q Wd  S(   Nt   hinget   squared_hinget   logt   modified_huberRq   Rs   RD   g{Gz?t   fit_interceptR   R6   i
   RR   (   R   R   R   R   (	   R:   RZ   R$   R&   R]   R   t   predictt   Tt   true_result(   R%   R   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgdl  s
    c         C   s   t  t |  j d d d  S(   Nt   l1_ratiog?(   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_bad_l1_ratiov  s    c         C   s   t  t |  j d d d  S(   NRS   s	   <unknown>(   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt#   test_sgd_bad_learning_rate_schedulez  s    c         C   s    t  t |  j d d d d d  S(   NRQ   i    RS   Rc   (   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_bad_eta0~  s    c         C   s   t  t |  j d d d  S(   NRD   g(   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_bad_alpha  s    c         C   s    t  t |  j d d d d d  S(   NRq   t   foobarR   g333333?(   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_bad_penalty  s    c         C   s   t  t |  j d d d  S(   NR   R   (   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_bad_loss  s    c         C   s   t  t |  j d d d  S(   NR6   i(   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_max_iter_param  s    c         C   s   t  t |  j d d d  S(   NRR   t   false(   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_shuffle_param  s    c         C   s   t  t |  j d d d  S(   NR   R   (   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_early_stopping_param  s    c         C   s   t  t |  j d d d  S(   NR   g(   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_validation_fraction  s    c         C   s   t  t |  j d d d  S(   NR   i    (   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_n_iter_no_change  s    c         C   s#   t  t |  j d t j d  d  S(   NRT   i   (   i   (   R   t	   TypeErrorR:   R;   R<   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_argument_coef  s    c         C   s/   t  t |  j   j t t d t j d  d  S(   NRT   i   (   i   (   R   Rn   R:   R$   R&   R]   R;   R<   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_provide_coef  s    c         C   s/   t  t |  j   j t t d t j d  d  S(   NRF   i   (   i   (   R   Rn   R:   R$   R&   R]   R;   R<   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_set_intercept  s    c         C   s&   t  t |  j d t  j t t  d  S(   NR   (   R   Rn   R:   RZ   R*   R&   R]   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt(   test_sgd_early_stopping_with_partial_fit  s    c         C   s    |  j    j t t d d d  S(   NRF   i    (   R:   R$   t   X5t   Y5(   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_set_intercept_binary  s    c         C   s!  d } d } d } d } t  j j d  } | j d | | f  } | j d |  } |  j d d d	 d
 d | d | d t d d d t d t  } t  j | |  }	 t  j |	  }	 | j	 | |	  |  j
 | |	 | |  \ }
 } |
 j d d  }
 t | j |
 d d t | j | d d d  S(   Ng?g       @i   i
   i    t   sizeR   R   RS   Rc   RQ   RD   R   R6   i   Ru   RR   iR~   i   (   R;   R   R   t   normalR:   RZ   RV   RB   t   signR$   RP   t   reshapeR   RW   R   RY   (   R%   RC   RD   t	   n_samplest
   n_featurest   rngR&   t   wR_   R'   RH   RJ   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt&   test_average_binary_computed_correctly  s*    	c         C   sr   |  j    j t t  } |  j    j t t d | j |  j    j t t  } |  j    j t t d | j d  S(   NRF   (   R:   R$   R   R   RY   R&   R]   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_set_intercept_to_intercept  s    c         C   s;   |  j  d d d d  } t t | j t t j d   d  S(   NRD   g{Gz?R6   i   i	   (   R:   R   Rn   R$   t   X2R;   t   ones(   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_at_least_two_labels  s    c      	   C   s>   d } t  t | |  j d d  j t t d t j t  d  S(   NsU  class_weight 'balanced' is not supported for partial_fit\. In order to use 'balanced' weights, use compute_class_weight\('balanced', classes, y\). In place of y you can us a large enough sample of the full training set target to properly estimate the class frequency distributions\. Pass the resulting weights as the class_weight parameter\.t   class_weightt   balancedR}   (   R	   Rn   R:   R*   R&   R]   R;   R   (   R%   t   regex(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt&   test_partial_fit_weight_class_balanced  s
    c         C   s   |  j  d d d d  j t t  } t | j j d	  t | j j d
  t | j d d g g  j d  | j	 t
  } t | t  d  S(   NRD   g{Gz?R6   i   i   i   i    i   (   i   i   (   i   (   i   i   (   R:   R$   R   t   Y2R   RW   R=   RY   R+   R   t   T2R   t   true_result2(   R%   R_   t   pred(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_multiclass  s    $"c         C   s  d } d } |  j  d d d d d | d | d	 t d
 d d t d t  } t j t  } | j t |  t j |  } x t	 |  D] \ } } t j
 | j d  } d | | | k <|  j t | | |  \ }	 }
 t |	 | j | d d t |
 | j | d d q Wd  S(   NgMbP?g{Gz?R   R   RS   Rc   RQ   RD   R   R6   i   Ru   RR   i    iR~   i   (   R:   RZ   RV   R;   Rk   R   R$   R   R   RA   R   R=   RP   R   RW   R   RY   (   R%   RC   RD   R_   t   np_Y2R}   RL   t   clt   y_it   average_coefRJ   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_multiclass_average   s$    c         C   s   |  j  d d d d  } | j t t d t j d	  d t j d  t | j j d
  | j	 j sq t
 d   | j t  } t | t  d  S(   NRD   g{Gz?R6   i   RT   i   i   RF   (   i   i   (   i   i   (   i   (   R:   R$   R   R   R;   R<   R   RW   R=   RY   R{   R   R   R   R   (   R%   R_   R   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt"   test_sgd_multiclass_with_init_coef  s    c         C   s   |  j  d d d d d d  j t t  } t | j j d
  t | j j d  t | j d d g g  j d  | j	 t
  } t | t  d  S(   NRD   g{Gz?R6   i   t   n_jobsi   i   i    i   (   i   i   (   i   (   i   i   (   R:   R$   R   R   R   RW   R=   RY   R+   R   R   R   R   (   R%   R_   R   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_multiclass_njobs!  s    *"c      	   C   s   |  j    } t t | j t t d t j d  |  j    j t t d t j d  } |  j    } t t | j t t d t j d  |  j    j t t d t j d	  } d  S(
   NRT   i   i   RF   i   (   i   i   (   i   i   (   i   (   i   (   R:   R   Rn   R$   R   R   R;   R<   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_set_coef_multiclass*  s    %'c         C   s   x t  j D] } t  d |  } | d k rX t | d  s@ t  t | d  s t  q
 d j |  } t | d  s} t  t | d  s t  t j t d |  | j Wd  QXt j t d |  | j	 Wd  QXq
 Wd  S(	   NR   R   R   R,   t   predict_log_probas5   probability estimates are not available for loss={!r}t   match(   R   R   (
   R   t   loss_functionsRz   R{   t   formatR   R   t   AttributeErrorR,   R   (   R%   R   R_   t   message(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt$   test_sgd_predict_proba_method_access<  s    	

c      	   C   s<  t  d d d d d d d d   j t t  } t t | d   t t | d	   xd
 d g D] } |  j d | d d d d  } | j t t  | j d d g g  } | d d k s t	  | j d d g g  } | d d k  s t	  | j
 d d g g  } | d | d k s"t	  | j
 d d g g  } | d | d k  s` t	  q` W|  j d d
 d d d d  j t t  } | j d d g d d g g  } | j d d g d d g g  } t t j | d d t j | d d  t | d j   d  t j | d d k  s%t	  | j d d g g  } | j d d g g  } t t j | d  t j | d   | j
 d d g g  } | j d d g g  } t t j |  |  | j
 d d g g  } | j d d g g  } t t j |  |  |  j d d d d d d  } | j t t  | j d d g g  } | j d d g g  } t |  t  st t j | d d t j | d d  n+ t t j | d d t j | d d  t j d d  } | j | g  } t j | d k   r8| j | g  } t | d d d g d  n  d  S(   NR   R   RD   g{Gz?R6   i
   R5   R,   R   R   R   i   i   i    i   g      ?ig?gg333333?g?t   axisg      @(   i    i   (   i    i   (   i    i   (   i    i    (   i    i   (   i    i    (   R   R7   R$   R&   R]   R   Rz   R:   R,   R{   R   R   R   R+   R   R;   t   argmaxR   t   sumt   allt   argsortR   R   R>   R?   R   t   argmint   mean(   R%   R_   R   RN   t   dt   lt   x(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_probaS  sT    *!!+'.+c         C   sm  t  t  } t j j d  } t j |  } | j |  t | d  d   f } t | } |  j d d d d d t	 d d d	 d  d
 t	  } | j | |  t | j d d d  f t j d   | j |  } t | |  | j   t j | j  st  | j |  } t | |  t j t j |   } t j | j  sMt  | j |  } t | |  d  S(   Ni   Rq   Rr   RD   g?R   R6   i  R5   RR   i    i   ii   (   i   (   t   lent   X4R;   R   R   t   arangeRR   t   Y4R:   RV   R7   R$   R   RW   R<   R   t   sparsifyR!   t   issparseR{   t   picklet   loadst   dumps(   R%   t   nR   t   idxR&   R]   R_   R   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_l1  s(    
)
c         C   s  t  j d d g d d g d d g d d g d d g g  } d d d d d g } |  j d d	 d
 d d t d d   } | j | |  t | j d d g g  t  j d g   |  j d d	 d
 d d t d i d d 6 } | j | |  t | j d d g g  t  j d g   d  S(   Ng      i    gg      ?g        i   iRD   g?R6   i  R   R   g?gMbP?(   R;   Rk   R:   RV   R7   R$   R   R   (   R%   R&   R'   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_class_weights  s    !	+c      	   C   s   d d g d d g d d g d d g g } d d d d g } |  j  d d d d d d   } | j | |  d d g d d g g } d d g } |  j  d d d d d i d d 6d d 6 } | j | |  t | j | j d	 d
 d  S(   Ni   i    RD   g?R6   i  R   g      ?R~   i   (   R:   R7   R$   R   RW   (   R%   R&   R'   R_   t   clf_weighted(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_equal_class_weight  s    *c      	   C   s?   |  j  d d d d d i d d 6 } t t | j t t  d  S(   NRD   g?R6   i  R   g      ?i    (   R:   R   Rn   R$   R&   R]   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_wrong_class_weight_label  s    %c         C   s;   |  j  d d d d d d g  } t t | j t t  d  S(   NRD   g?R6   i  R   g      ?(   R:   R   Rn   R$   R&   R]   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_wrong_class_weight_format  s    !c         C   s   i d d 6d d 6} t  j j d  } | j t j d  } t  j |  } | t d k c | d 9<| t d k c | d 9<|  j d d d d	 d
 |  } |  j d d d d	  } | j t	 t d | | j t	 t d | t
 | j | j  d  S(   Ng333333?i   g333333?i   i    RD   g?R6   i   R   t   sample_weight(   R;   R   R   t   random_sampleR   R=   RX   R:   R$   R   R   RW   (   R%   t   class_weightsR   t   sample_weightst   multiplied_togetherR   R`   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_weights_multiplied  s    c      	   C   sh  t  j t  j } } t |  } t j | j d  } t j j d  } | j	 |  | | } | | } |  j
 d d d d d d  d t  j | |  } t j | | j |  d	 d
 } t | d d d |  j
 d d d d d d d t  j | |  } t j | | j |  d	 d
 } t | d d d t | j | j d  | | d k d  d   f } | | d k }	 t j | g | g d  }
 t j | g |	 g d  } |  j
 d d d d  d t  } | j |
 |  | j |  } t t j | | d	 d
 d  |  j
 d d d d d t  } | j |
 |  | j |  } t t j | | d	 d
 d  d  S(   Ni    i   RD   g-C6?R6   i  R   RR   Ru   t   weightedgQ?R~   i   R   i
   (   R   R   R   R   R;   R   R=   R   R   RR   R:   R7   RV   R$   R   t   f1_scoreR   R   R   RW   t   vstackt   concatenateR   R   (   R%   R&   R'   R  R   R_   t   f1t   clf_balancedt   X_0t   y_0t   X_imbalancedt   y_imbalancedt   y_pred(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_balanced_weight  s<    

!!	c         C   s  t  j d d g d d g d d g d d g d d g g  } d d d d d g } |  j d d	 d
 d d t  } | j | |  t | j d d g g  t  j d g   | j | | d d g d d g d t | j d d g g  t  j d g   d  S(   Ng      i    gg      ?g        i   iRD   g?R6   i  R   g?R  gMbP?i   i   (   R;   Rk   R:   RV   R$   R   R   (   R%   R&   R'   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sample_weights"  s    !+(c         C   sG   |  j  d d d d d t  } t t | j t t d t j d  d  S(   NRD   g?R6   i  R   R  i   (	   R:   RV   R   Rn   R$   R&   R]   R;   R   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_wrong_sample_weights3  s    c         C   s,   |  j  d d  } t t | j t t  d  S(   NRD   g{Gz?(   R:   R   Rn   R*   R   R   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_partial_fit_exception9  s    c         C   s  t  j d d } |  j d d  } t j t  } | j t  |  t |  d | t | j j d t  j d f  t | j	 j d  t | j
 d d g g  j d  t | j j  } | j t  | t |  t | j j  } | s t |   | j t  } t | t  d  S(	   Ni    i   RD   g{Gz?R}   i   (   i   (   i   (   R&   R=   R:   R;   R   R]   R*   R   RW   RY   R+   t   idR   R{   R   R   R   R   (   R%   t   thirdR_   R}   t   id1t   id2R  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_partial_fit_binary>  s     "c         C   s   t  j d d } |  j d d  } t j t  } | j t  |  t |  d | t | j j d t  j d f  t | j	 j d  t | j
 d d g g  j d  t | j j  } | j t  | t |  t | j j  } | s t |   d  S(	   Ni    i   RD   g{Gz?R}   i   (   i   (   i   i   (   R   R=   R:   R;   R   R   R*   R   RW   RY   R+   R  R   R{   (   R%   R  R_   R}   R  R   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_partial_fit_multiclassQ  s     "c         C   s   t  j d d } |  j d d d t  j d  } t j t  } | j t  |  t |  d | t | j j d t  j d f  t | j	 j d  | j t  | t |  t | j j d t  j d f  t | j	 j d	  d  S(
   Ni    i   RD   g{Gz?Ru   R}   i   (   i   (   i   (
   R   R=   R:   R;   R   R   R*   R   RW   RY   (   R%   R  R_   R}   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt#   test_partial_fit_multiclass_averagea  s      c         C   s0   |  j    } | j t t  | j t t  d  S(   N(   R:   R$   R   R   R*   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_fit_then_partial_fitn  s    c         C   s  xt  t t f t t t f f D] \ } } } |  j d d d d d d d | d t  } | j | |  | j	 |  } | j
 } t j |  } |  j d d d d d | d t  } x* t d  D] }	 | j | | d | q W| j	 |  }
 t | j
 |  t | |
 d	 d q Wd  S(
   NRD   g{Gz?RQ   R6   i   RS   RR   R}   R~   (   R&   R]   R   R   R   R   R:   RV   R$   R+   R[   R;   R   R   R*   R   R   (   R%   R^   t   X_Ro   t   T_R_   R  t   tR}   RL   t   y_pred2(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   _test_partial_fit_equal_fitv  s    .		c         C   s   |  j  d  d  S(   NRc   (   R)  (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt#   test_partial_fit_equal_fit_constant  s    c         C   s   |  j  d  d  S(   NRg   (   R)  (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt"   test_partial_fit_equal_fit_optimal  s    c         C   s   |  j  d  d  S(   NRe   (   R)  (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt%   test_partial_fit_equal_fit_invscaling  s    c         C   s   |  j  d  d  S(   NRi   (   R)  (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt#   test_partial_fit_equal_fit_adaptive  s    c      	   C   s\  |  j  d d d d d d d d  } | j t t  t d	 t j | j t  t k   |  j  d d d d d d d d
  } | j t t  t d	 t j | j t  t k   |  j  d d d d  } | j t t  t d	 t j | j t  t k   |  j  d d d d d d d d  } | j t t  t d	 t j | j t  t k   d  S(   NRD   g{Gz?RS   Rc   RQ   g?R   t   epsilon_insensitiveg      ?t   squared_epsilon_insensitivet   huberR   (   R:   R$   R&   R]   R   R;   R   R   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_regression_losses  s    %%%	c         C   s   |  j  t t d  d  S(   NRg   (   Rb   R   R   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_warm_start_multiclass  s    c         C   s   |  j  d d d t  } | j t t  t | d  s= t  g  t   j t  D] } d d g | ^ qP } | j t d  d   d  d  f |  d  S(   NRD   g{Gz?RR   RW   t   hamt   spami(	   R:   RV   R$   R&   R]   Rz   R{   R   t   fit_transform(   R%   R_   RL   R'   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_multiple_fit  s
    /(7   R-   R.   t   __doc__R   R8   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R  R  R  R  R  R  R!  R"  R#  R$  R)  R*  R+  R,  R-  R1  R2  R6  (    (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR   h  sh   	
																								
					D							/														R?   c           B   s   e  Z d  Z e Z RS(   sB   Run exactly the same tests using the sparse representation variant(   R-   R.   R7  R    R8   (    (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR?     s   t   DenseSGDRegressorTestCasec           B   s   e  Z d  Z e Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z e d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   s6   Test suite for the dense representation variant of SGDc         C   sq   |  j  d d d d d t  } | j d d g d d g d d g g d d d g  t | j d | j d  d  S(   NRD   g?R6   i   R   i    i   (   R:   RV   R$   R   RW   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR     s    	4c         C   s    t  t |  j d d d d d  S(   NRq   R   R   g333333?(   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR     s    c         C   s   t  t |  j d d d  S(   NR   R   (   R   Rn   R:   (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR     s    c         C   s   d } d } d } d } t  j j d  } | j d | | f  } | j d |  } t  j | |  } |  j d d d	 d
 d | d | d t d d d t d t  }	 |	 j | |  |  j	 | | | |  \ }
 } t
 |	 j |
 d d t |	 j | d d d  S(   NgMbP?g{Gz?i   i
   i    R   R   R   RS   Rc   RQ   RD   R   R6   i   Ru   RR   R~   i   (   R;   R   R   R   RB   R:   RZ   RV   R$   RP   R   RW   R   RY   (   R%   RC   RD   R   R   R   R&   R   R'   R_   RH   RJ   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt$   test_sgd_averaged_computed_correctly  s&    	c         C   sN  d } d } d } d } t  j j d  } | j d | | f  } | j d |  } t  j | |  } |  j d d d	 d
 d | d | d t d d d t d t  }	 |	 j | t	 | d   | t	 | d    |	 j | t	 | d  | t	 | d   |  j
 | | | |  \ }
 } t |	 j |
 d d t |	 j d | d d d  S(   NgMbP?g{Gz?i   i
   i    R   R   R   RS   Rc   RQ   RD   R   R6   i   Ru   RR   i   R~   i   (   R;   R   R   R   RB   R:   RZ   RV   R*   t   intRP   R   RW   R   RY   (   R%   RC   RD   R   R   R   R&   R   R'   R_   RH   RJ   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_averaged_partial_fit  s(    --	c         C   s   d } d } |  j  d d d d d | d | d	 t d
 d d t d t  } t j d } | j t t | d   t t | d    | j t t | d  t t | d   |  j t t | |  \ } } t	 | j
 | d d t | j | d d d  S(   NgMbP?g{Gz?R   R   RS   Rc   RQ   RD   R   R6   i   Ru   RR   i    i   R~   i   (   R:   RZ   RV   R   R=   R*   R   R:  RP   R   RW   R   RY   (   R%   RC   RD   R_   R   RH   RJ   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_average_sparse  s    --	c   	   	   C   s%  d \ } } d } t  j j d  } t  j | | |  j | d  } d | j   } |  j d d d	 d
 d d d t  } | j | |  | j	 | |  } t
 | d  d | j   | j | d  j   } |  j d d d	 d
 d d d t  } | j | |  | j	 | |  } t
 | d  d  S(   Nii   id   i    i   g      ?R   R   RD   g?R6   i   R   gGz?(   ii   (   R;   R   R   t   linspaceR   R   R:   RV   R$   t   scoreR   t   randn(	   R%   t   xmint   xmaxR   R   R&   R'   R_   R>  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_least_squares_fit"  s     !	&	c   	      C   s;  d \ } } d } t  j j d  } t  j | | |  j | d  } d | j   } |  j d d d	 d
 d d d d d t  } | j | |  | j	 | |  } | d k s t
  d | j   | j | d  j   } |  j d d d	 d
 d d d d d t  } | j | |  | j	 | |  } | d k s7t
  d  S(   Nii   id   i    i   g      ?R   R.  t   epsilong{Gz?RD   g?R6   i   R   gGz?(   ii   (   R;   R   R   R=  R   R   R:   RV   R$   R>  R{   R?  (	   R%   R@  RA  R   R   R&   R'   R_   R>  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_epsilon_insensitive:  s$    !	&	c   	      C   s1  d \ } } d } t  j j d  } t  j | | |  j | d  } d | j   } |  j d d d	 d
 d d
 d d d t  } | j | |  | j	 | |  } t
 | d  d | j   | j | d  j   } |  j d d d	 d
 d d
 d d d t  } | j | |  | j	 | |  } t
 | d  d  S(   Nii   id   i    i   g      ?R   R0  RC  g?RD   R6   i   R   gGz?(   ii   (   R;   R   R   R=  R   R   R:   RV   R$   R>  R   R?  (	   R%   R@  RA  R   R   R&   R'   R_   R>  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_sgd_huber_fitT  s     !!	&!	c         C   s  d \ } } t  j j d  } | j | |  } | j |  } t  j | |  } x d d g D] } x d d d g D] } t j d	 | d
 | d t  }	 |	 j | |  |  j	 d d d d d	 | d
 | d t  }
 |
 j | |  d | | f } t
 |	 j |
 j d d d | qt Wq^ Wd  S(   Ni  i   i    g{Gz?gMbP?g      ?g?g      ?RD   R   R   Rq   t
   elasticnetR6   i2   sN   cd and sgd did not converge to comparable results for alpha=%f and l1_ratio=%fR~   i   t   err_msg(   i  i   (   R;   R   R   R?  RB   R   t
   ElasticNetRV   R$   R:   R   RW   (   R%   R   R   R   R&   t   ground_truth_coefR'   RD   R   t   cdt   sgdRG  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_elasticnet_convergencel  s$    		c         C   s   t  j d d } |  j d d  } | j t  |  t |   t | j j t  j d f  t | j j d  t | j d d g g  j d  t	 | j j
  } | j t  | t |  t	 | j j
  } | s t |   d  S(   Ni    i   RD   g{Gz?i   (   i   (   i   (   R&   R=   R:   R*   R]   R   RW   RY   R   R  R   R{   (   R%   R  R_   R  R   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_partial_fit  s    "c         C   s   |  j  d d d d d d d | d t  } | j t t  | j t  } | j } |  j  d d d d d | d t  } x$ t d  D] } | j	 t t  q W| j t  } t
 | j |  t | | d d d  S(	   NRD   g{Gz?R6   i   RQ   RS   RR   R~   (   R:   RV   R$   R&   R]   R   R   R[   R   R*   R   R   (   R%   R^   R_   R  R'  RL   R(  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR)    s    	c         C   s   |  j  d  d  S(   NRc   (   R)  (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR*    s    c         C   s   |  j  d  d  S(   NRg   (   R)  (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR+    s    c         C   s   |  j  d  d  S(   NRe   (   R)  (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR,    s    c         C   s   |  j  d  d  S(   NRi   (   R)  (   R%   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR-    s    c         C   sC   |  j  d d  } | j d d  | j d d d k s? t  d  S(   NRC  g?g?R0  i   (   R:   R\   R   R{   (   R%   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_loss_function_epsilon  s    (   R-   R.   R7  R   R8   R   R   R   R9  R;  R<  RB  RD  RE  RL  R   RM  R)  R*  R+  R,  R-  RN  (    (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR8    s&   															R@   c           B   s   e  Z e Z RS(    (   R-   R.   R/   R8   (    (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyR@     s   c          C   s,  t  j d d d d d d d d  \ }  } t d	 d
 d d d d  d d d d d d  j |  |  } t d	 d
 d d d d d d d d   j |  |  } t | j | j  t d	 d
 d d d d  d d d d d d  j |  |  } t d	 d
 d d d d d d d d   j |  |  } t | j | j  d  S(   NR   i  R   id   t   n_informativei   R4   i  RD   gMbP?Rq   RF  R5   R6   i   R   gA?i*   Rr   g|=Rs   (   R   t   make_classificationR   R7   R$   R   RW   (   R&   R'   t   est_ent   est_l1t   est_l2(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_l1_ratio  s    c    	      C   sw  t  j d d  _t  j j d  }  d } d } |  j d | | f  } | d  d   d  d  f c d 9<t  j |  j   s t  t   j	 |  } t  j |  j   s t  |  j d |  } t  j
 | |  d	 k j t  j  } t t  j |  d d
 g  t d d d d d d  } | j | |  t  j | j  j   sNt  d } t t | | j | |  Wd  QXd  S(   NR   t   raisei    id   i
   R   i   gu <7~g        i   RD   g?R   R   R6   i  sw   Floating-point under-/overflow occurred at epoch #.* Scaling input data with StandardScaler or MinMaxScaler might help.(   R;   t   errstateR   R   R   t   isfiniteR   R{   R   R5  RB   t   astypet   int32R   R   R   R$   RW   R	   Rn   (	   R   R   R   R&   t   X_scaledt   ground_truthR'   t   modelt	   msg_regxp(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_underflow_or_overlow  s"    "$c          C   s   t  d d d d d t d d d d	 d
 d d d d d d d   	}  t j d d   |  j t j t j  Wd  QXt j	 |  j
  j   s t  d  S(   NR   R   R6   i
   RR   Rq   RF  R   g333333?RD   g{Gz?RQ   gMbP?R4   i    R5   R   RU  (   R   RZ   R7   R;   RV  R$   R   R   R   RW  RW   R   R{   (   R\  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt'   test_numerical_stability_large_gradient  s    Rq   Rs   Rr   RF  c         C   s   t  d d d d d d d |  d t d	 d  d
 d  } t j d d   | j t j t j  Wd  QXt	 | j
 t j | j
   d  S(   NRD   g     j@RS   Rc   RQ   g?Rq   RR   R5   R6   i   R   RU  (   R   RV   R7   R;   RV  R$   R   R   R   R   RW   t
   zeros_like(   Rq   R\  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_large_regularization  s    c          C   sK  t    j t j  }  t j d k } d } t d d  d d d |  } | j |  |  t | | j	  d } t d d d d d |  } | j |  |  t
 | | j	  t
 | j	 d  t d d	 d d d |  } | j |  |  t
 | j	 | j	  t
 | j	 d
  t d d
 d d d d  } t t | j |  |  } t | j	 d
  d  S(   Ni   i*   R5   R4   i    R6   i  i   g?i   gMbP?(   R   R5  R   R   R   R   R7   R$   R   R   R   R
   R   (   R&   R'   R6   t   model_0t   model_1t   model_2t   model_3(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_tol_parameter  s$    c          C   s   d  d  d  t d  }  d } t t | |   d } t t | |  d d d  d } t t | |  d d  d   t |  d  d	 d   t |  d d	 d   t |  d  d  d  t  d  S(
   Nc         S   s/   t  d |  d | d |  } | j d |  d  S(   NR6   R5   t   n_itert   for_partial_fit(   R   t   _validate_params(   R6   R5   Rg  Rh  RK  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   init1  s    s/   max_iter and tol parameters have been added in s   n_iter parameter is deprecatedi   i    i   s(   If max_iter is set but tol is left unsetid   gMbP?(   R7   RV   R   t   FutureWarningt   DeprecationWarningR   RZ   (   Rj  t
   msg_futuret   msg_deprecationt   msg_changed(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt$   test_future_and_deprecation_warnings.  s    t   categoryc          C   s!  t    }  |  j   t |  j d   t |  j d  t  d d  }  |  j   t |  j d   t |  j d  t  d d  }  |  j   t |  j d  t |  j d  t  d d  }  |  j   t |  j d   t |  j d  t  d d d d  }  |  j   t |  j d  t |  j d  d  S(   Ni   Rg  i*   R5   g{Gz?i  R6   (   R   Ri  R   t   _tolR7   t	   _max_iter(   t   est(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt$   test_tol_and_max_iter_default_valuesI  s(    	




c         C   s7   x0 | D]( \ } } } t  |  j | |  |  q Wd  S(   N(   R   t   dloss(   t   loss_functiont   casesRN   R'   t   expected(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   _test_gradient_commonf  s    c       
   C   sx   t  j d  }  d
 d d d d d d d g } t |  |  t  j d  }  d d d d d d d d g } t |  |  d  S(   Ng      ?g?g        g       g      g      ?g       @g      g(   g?g      ?g        (   g       g      g        (   g      ?g      ?g      (   g      g      g      ?(   g      ?g      ?g      (   g       @g      g      ?(   g      g      g      ?(   g        g      ?g      (   g      ?g      ?g        (   gg      g        (   g        g      ?g      (   g        g      g      ?(   g      ?g      g      ?(   g       @g      g      ?(   g      g      ?g      (   g      g      ?g      (   R   t   HingeRz  (   R   Rx  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_gradient_hingem  s    		c          C   s8   t  j d  }  d	 d
 d d d d g } t |  |  d  S(   Ng      ?g        g       g      g      @g      g      ?g      @(   g      ?g      ?g        (   g       g      g        (   g      ?g      g      @(   g      g      ?g      (   g      ?g      ?g      (   g      ?g      g      @(   R   t   SquaredHingeRz  (   R   Rx  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_gradient_squared_hinge  s    	c       
   C   s   t  j   }  d d d t j d  d f d d d t j d  d f d d d t j d  d f d d d t j d  d f d d d d g } t |  |  t |  j d d  t j d	  d d
  t |  j d	 d  t j d	  d d
  d  S(   Ng      ?g      g        g      g      ?gfffff1@gfffff1g2@g2i   (   g        g      ?g      (   g        g      g      ?(   gfffff1@g      g      ?(   gfffff1g      ?g      (   R   t   LogR;   t   expRz  R   Rv  (   R   Rx  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_gradient_log  s    )c          C   s2   t  j   }  d	 d
 d d d g } t |  |  d  S(   Ng        g      ?g      ?g      g      ?g      g       @g      (   g        g        g        (   g      ?g      ?g        (   g      ?g        g      ?(   g      ?g      g      ?(   g      g       @g      (   R   t   SquaredLossRz  (   R   Rx  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_gradient_squared_loss  s    	c          C   s8   t  j d  }  d
 d d d d d g } t |  |  d  S(   Ng?g        gg@g      @gg      @g       @g      (   g        g        g        (   g?g        g?(   g        g?g(   g@g      @g(   g      @g       @g?(   g      g      @g(   R   t   HuberRz  (   R   Rx  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_gradient_huber  s    	c          C   s>   t  j   }  d
 d d d d d d d d g	 } t |  |  d  S(   Ng      ?g        g      g       @g       g      g      ?g      @g      (   g      ?g      ?g        (   g      g      g        (   g       @g      ?g        (   g        g      ?g       (   g      g      ?g      (   g      ?g      g      @(   g      ?g      g      @(   g       g      ?g      (   g      g      ?g      (   R   t   ModifiedHuberRz  (   R   Rx  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   test_gradient_modified_huber  s
    		c       
   C   s>   t  j d  }  d d d d d d d d g } t |  |  d  S(   Ng?g        gffffff g       gffffff@g      @g@g       @g      ?g      (   g        g        g        (   g?g        g        (   gffffff g       g        (   gffffff@g      @g        (   g@g       @g      ?(   g       @g      g      ?(   g       @g@g      (   g       g      ?g      (   R   t   EpsilonInsensitiveRz  (   R   Rx  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt!   test_gradient_epsilon_insensitive  s
    		c       
   C   s>   t  j d  }  d d d d d d d d g } t |  |  d  S(   Ng?g        gffffff g       gffffff@g      @g@g       @g?g      g333333@gɿg      ?g333333(   g        g        g        (   g?g        g        (   gffffff g       g        (   gffffff@g      @g        (   g@g       @g?(   g       @g      g333333@(   g       @g@gɿ(   g       g      ?g333333(   R   t   SquaredEpsilonInsensitiveRz  (   R   Rx  (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt)   test_gradient_squared_epsilon_insensitive  s
    		c          C   s   t  d d d d d d d t d d d	 d
 d d  }  |  j t j t j  |  j |  j k sa t  |  j |  j d k  s} t  |  j	 t j t j  d k s t  d  S(   NRD   gMbP?R5   R6   i  R   R   id   R4   i    R   i   i   g?(
   R   RZ   R$   R   R   R   R   R   R{   R>  (   R_   (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt0   test_multi_thread_multi_class_and_early_stopping  s    c          C   s   i t  j d d d  d 6d d d g d 6}  t d	 d
 d d d t d d  } t | |  d d d d d d d d } | j t j t j  | j	 d k s t
  d  S(   Nii   i	   RD   i   i
   i2   R   R5   gMbP?R6   i  R   R4   i    Rg  R   R   i   g?(   R;   t   logspaceR   RZ   R   R$   R   R   R   t   best_score_R{   (   t
   param_gridR_   t   search(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt-   test_multi_core_gridsearch_and_early_stopping  s    		R   t   reasons   this test uses scipy.random, that was introduced in version  0.17. This skip condition can be dropped as soon as we drop support for scipy versions older than 0.17t   backendt   lokyt   multiprocessingt	   threadingc      	   C   s  t  j t d  k  r1 |  d k r1 t j d  n  t j j d  } t j d d d d d	 d
 d | } | j	 d d  } t
 d d d d d d d d  } | j | |  t
 d d d d d d d d  } t d |    | j | |  Wd  QXt | j | j  d  S(   Ns   0.12R  s+   loky backend does not exist in joblib <0.12i*   i  iP  t   densityg{Gz?R   t   csrR4   i   R5   gMbP?R6   R   i   i   R  (   R   t   __version__R    R   t   skipR;   R   R   R!   t   choiceR   R$   R   R   RW   (   R  R4   R&   R'   t   clf_sequentialt   clf_parallel(    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt'   test_SGDClassifier_fit_for_all_backends  s    !			(h   t   distutils.versionR    R   t   unittestR   t   numpyR;   t   scipy.sparset   sparseR!   t   sklearn.utils.testingR   R   R   R   R   R   R   R   R	   R
   R   R   R   t   sklearnR   R   R   t   sklearn.baseR   R   t   sklearn.linear_modelR   R   t   sklearn.preprocessingR   R   R   R   t   sklearn.exceptionsR   t   sklearn.model_selectionR   R   R   R   t   sklearn.utilsR   t   sklearn.utils._joblibR   t   markt   filterwarningst
   pytestmarkR    R/   Rk   R&   R]   R   R   R   R   R   R   R   R   R   R   t	   load_irisR   R   R   t   true_result5t   objectR3   t   TestCaseR   R?   R8  R@   RT  R^  R_  t   parametrizeRa  Rf  Rp  Rl  Rk  Ru  Rz  R|  R~  R  R  R  R  R  R  R  R  t   skipifRz   R  (    (    (    sB   lib/python2.7/site-packages/sklearn/linear_model/tests/test_sgd.pyt   <module>   s   		E*!$#*0**3'0**3'E  P			#	'														