ó
\c           @   s
  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 m Z d  d l m Z d  d l Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d	 l m Z d  d
 l m Z d  d l m Z d  d l m Z d  d l m Z 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; m< Z< d  d, l= m> Z> d  d- l? m@ Z@ d  d. lA mB ZB d  d/ lC mD ZD d  d0 l mE ZE d  d1 lF mG ZG eG jH   ZI e jJ jK d2  ZL d3 ZM d4 ZN eL jO d  d5 d6 eM ZP eL jO d5 d7 d6 eM ZQ eL jR eN eM  eQ eP ZS eS d2 d d  f jT d5 eM  ZU eS d d  d2 f jT eN d5  ZV eU jW   ZX eV jW   ZY d8   ZZ d9   Z[ d:   Z\ d;   Z] d<   Z^ e j_ j` d= d> d? d@ g d5 ea eb ec f dA ea eb ec f dA ea eb e jd f dA ea eb e je f dB eb eb e je f dB eb ea e je f g  dC    Zf dD   Zg dE   Zh dF   Zi e# dG    Zj dH   Zk dI   Zl dJ   Zm dK   Zn dL   Zo dM   Zp dN   Zq dO   Zr dP   Zs dQ   Zt dR   Zu dS   Zv e j_ j` dT ea eb g  e j_ j` dU ea eb g  e j_ j` dV e jw e jx e jy g  dW      Zz dX   Z{ dY   Z| dZ   Z} d[   Z~ d\   Z d]   Z d^   Z e j_ j` d_ ea eb g  e j_ j` d` ea eb g  e j_ j` da e jJ jR d7 dB  e j d7 dB db dc g  dd      Z de   Z df   Z e j_ j` db d2 dg dh dc d5 g  e j_ j` di dj dk dl d g  dm     Z dn   Z do   Z dp   Z dq   Z dr   Z ds   Z dt   Z du   Z dv   Z dw   Z dx   Z dy   Z dz   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­ e j_ j` d d d g  d    Z® e j_ j` d d d g  e j_ j` d ea eb g  e j_ j` da eV eS g  d      ZÆ d   Z° d   Z± d   Z² e j_ j` da eS e j³ eS  e j³ eS  e j“ eS jµ  g  d    Z¶ e j_ j` d d d g  d    Z· d   Zø d    Z¹ d”   Zŗ e j_ j` d¢ d« d¬ d­ d® dÆ g  d¤    Z» d„   Z¼ e j_ j` d d d g  d¦    Z½ e j_ j` d d d g  e j_ j` d ea eb g  d§     Z¾ e j_ j` d d d g  e j_ j` d ea eb g  dØ     Zæ e j_ j` d d d g  e j_ j` d ea eb g  d©     ZĄ dŖ   ZĮ d S(°   i’’’’(   t   divisionN(   t   sparset   stats(   t   LooseVersion(   t   gen_batches(   t   assert_raise_message(   t   assert_almost_equal(   t   clean_warning_registry(   t   assert_array_almost_equal(   t   assert_array_equal(   t   assert_array_less(   t   assert_equal(   t   assert_greater_equal(   t   assert_less_equal(   t   assert_raises(   t   assert_raises_regex(   t   assert_false(   t   assert_warns_message(   t   assert_no_warnings(   t   assert_allclose(   t   assert_allclose_dense_sparse(   t   skip_if_32bit(   t   mean_variance_axis(   t   _handle_zeros_in_scale(   t	   Binarizer(   t   KernelCenterer(   t
   Normalizer(   t	   normalize(   t   StandardScaler(   t   scale(   t   MinMaxScaler(   t   minmax_scale(   t   QuantileTransformer(   t   quantile_transform(   t   MaxAbsScaler(   t   maxabs_scale(   t   RobustScaler(   t   robust_scale(   t   add_dummy_feature(   t   PolynomialFeatures(   t   PowerTransformer(   t   power_transform(   t   DataConversionWarningt   NotFittedError(   t   clone(   t   Pipeline(   t   cross_val_predict(   t   SVR(   t   shuffle(   t   datasetsi    i   ič  i   t   sizei
   c         C   s"   t  |  d  r |  j   }  n  |  S(   Nt   toarray(   t   hasattrR3   (   t   a(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyR3   S   s    c         C   s.   t  |  t  r# t j |   j d S|  j d S(   Ni    (   t
   isinstancet   listt   npt   arrayt   shape(   R5   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   _check_dim_1axisY   s    c         C   sA   | | k r$ t  |  d | |  n t  |  | | | |  d  S(   Ni   (   R   (   t   it   batch_startt
   batch_stopt   nt
   chunk_sizet   n_samples_seen(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   assert_correct_incr_   s    c       	   C   s  t  j d  d  d   t  j f }  t  j t  j |   |  |  d |  d g  } d } t  j d  j d	  } | d  d   d  d  f } | d  d   d d   f } t  j | d | d | d | d | d | d | d | d | d | d | d | d g  } d } x | |  | f | | | f g D]u \ } }	 }
 t | d t j |	  } t	 | |
  t | d t
 j |	  } t	 | |
 d  d   d d   f  q2Wt d d t d t } | j |	  } t	 | | d  d   d d d d g f  t | j j | j | j f  d  S(
   Ni   i   i   i   i    t   include_biast   interaction_onlyi   (   i   i   (   R8   t   aranget   newaxist   hstackt	   ones_liket   reshapeR'   t   Truet   fit_transformR   t   FalseR   t   powers_R:   t   n_output_features_t   n_input_features_(   t   X1t   P1t   deg1t   X2t   x1t   x2t   P2t   deg2t   degt   Xt   Pt   P_testt   interactt   X_poly(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_polynomial_featuresh   s0    ".')c          C   s?  t  j d  j d d  }  t d d d t  j |   } | j   } t d d d	 d
 d d d d d d g
 |  t d d d t  j |   } | j d d d g  } t d d d d d d d d d d d d d d d d  d! d" d# g |  t d d$ d t  j |   } | j d% d& d' g  } t d( d% d& d' g |  d  S()   Ni   i
   i   t   degreei   RC   t   1t   x0RT   RU   s   x0^2s   x0 x1s   x0 x2s   x1^2s   x1 x2s   x2^2R5   t   bt   cs   a^2s   a bs   a cs   b^2s   b cs   c^2s   a^3s   a^2 bs   a^2 cs   a b^2s   a b cs   a c^2s   b^3s   b^2 cs   b c^2s   c^3i   u   F40Du   ā®u   ×u   1(	   R8   RE   RI   R'   RJ   t   fitt   get_feature_namesR	   RL   (   RY   t   polyt   feature_names(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_polynomial_feature_names   s"    RX   RC   RD   t   dtypei   i   c   
      C   s¼   t  j j d  } | j d d d  } t j |  } t |  d | } | j | j |   } | j | j |   }	 t	 | t j
  s t  | j |	 j k sØ t  t | j |	  d  S(   Ni    i   id   RC   (   id   i   (   R8   t   randomt   RandomStatet   randintR   t
   csr_matrixR'   RK   t   astypeR6   t
   csc_matrixt   AssertionErrorRi   R   t   A(
   RX   RC   RD   Ri   t   rngRY   t   X_sparset   estt	   Xt_sparset   Xt_dense(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt!   test_polynomial_features_sparse_X   s    	c          C   sC  xt  t t t g D]}  t   } | j |   j |  d t } t |  t  ra t	 j
 |   }  n  t |   d k ré t | j |  j    t | j t	 j t   t | j d d  t	 j t   t | j d d  t	 j t   n t | j |  j    t | j |  j    t | j d d  t	 j t   t | j d d  d  t | j d d  d  t | j |  j d  | j |  } t | |   q Wt	 j d  }  t   } | j |   j |  d t } t | j d  t | j d  t | j d d  d  t | j d d  d  t | j |  j d  d  S(	   Nt   copyi   t   axisi    g        g      š?i   (   i   i   (   t   X_1rowt   X_1colt   X_list_1rowR   Rd   t	   transformRJ   R6   R7   R8   R9   R;   R   t   mean_t   ravelt   scale_t   onest
   n_featuresR   t   meant
   zeros_liket   stdR   t   n_samples_seen_R:   t   inverse_transform(   RY   t   scalert   X_scaledt   X_scaled_back(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_standard_scaler_1dµ   s:    		c          C   sĻ   t  j j d  }  d } d } xŖ t  j t  j t  j g D] } |  j | |  j |  } t   } | j	 |  j
 |  } | j | j k s t  | j j t  j k s¬ t  | j j t  j k s7 t  q7 Wd  S(   Ni    i
   i   (   R8   Rj   Rk   t   float16t   float32t   float64t   randnRn   R   Rd   R}   Ri   Rp   R~   R   (   Rr   t	   n_samplesR   Ri   RY   R   R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_standard_scaler_dtypeŽ   s    	c          C   s   d d d d g }  t  j |   } xe |  | g D]W } t |  } t | j   d  t | j   d  t t | d t d t |  q. Wd  S(   Ng      š?g      @g      @g        t	   with_meant   with_std(   R8   R9   R   R   R   R   R	   RL   (   t   X_listt   X_arrRY   R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_scale_1dģ   s    c          C   sĪ  t  j d t  j d  d t  j }  t t  j  t d  k rm t t |   } t t |   t  j	 d   n1 d } t
 t | t |   } t | t  j	 d   t  j d t  j d  d t  j }  d } t
 t | t |   } t | t  j	 d   t  j d d d t  j }  t t |   } t | t  j	 d   t  j d d d t  j } d	 } t
 t | t |  } t | t  j	 d   t | |  t
 t | t | d
 t } t | t  j	 d   t | |  d  S(   Ni   gńhćµųä>Ri   s   1.9s:   standard deviation of the data is probably very close to 0i
   g0ä.’++g}Ć%­I²Ts$   Dataset may contain too large valuesR   (   R8   t   fullt   logR   R   t   __version__R   R   R   t   zerosR   t   UserWarningRL   (   t   xt   x_scaledt   wt   x_small_scaledt   x_bigt   x_big_scaledt   x_big_centered(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt(   test_standard_scaler_numerical_stabilityų   s.    $$	c          C   sj  t  j j d  }  d } d } |  j | |  } d | d  d   d f <t   } | j |  j | d t } t t  j	 t  j
 |    t | j |  t | j d d  | d g  t | j d d  d d d d d g  | | k	 só t  | j |  } | | k	 st  | | k	 s&t  t | |  t | d d d	 t } t t  j	 t  j
 |    t | j d d  | d g  t | d d d	 t } t t  j	 t  j
 |    t | j d d  | d g  t | j d d  | d g  | | k	 st  | j |  j | d t } t t  j	 t  j
 |    t | j d d  | d g  t | j d d  d d d d d g  | | k s”t  |  j d d  } d | d  d   d f <t   } | j |  j | d t } t t  j	 t  j
 |    t | j d d  | d g  t | j d d  d d d d d g  | | k	 sft  d  S(
   Ni    i   i   g        Rx   Ry   g      š?i   R   (   R8   Rj   Rk   R   R   Rd   R}   RJ   R   t   anyt   isnanR   R   R   R   R   Rp   R   R   RL   (   Rr   R   R   RY   R   R   R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_scaler_2d_arrays   sJ    	 (    (	 (c          C   s   t  j d d d d g  }  t |  d t } t |  d | d k  t |  t  j d d d d g   t | t  j d d d d g   d  S(   Ni    i   i   i   Rx   (   R8   R9   R   RJ   R   R	   (   t   s1t   s2(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_handle_zeros_in_scaleT  s
    "c          C   s'  t  }  |  j d } xd d d | | d g D]ņ} t   j |   } t   } x* t t |  D] } | j |  |  } q^ Wt | j | j  t | j	 | j	  t
 | j | j  t | j | j  t | j | j  t | j | j  t d |  } t   j |  |  } t   j |  |  } t | j | j  t | j	 | j	  t
 | j | j  t | j | j  t | j | j  t | j | j  t   j |   } t   } xg t t t |   D]P \ } } | j |  |  } t | d | j d | j d | d	 | d
 | j qĖWq- Wd  S(   Ni    i   i   i2   i*   R=   R>   R?   R@   RA   (   t   X_2dR:   R   Rd   R   R   t   partial_fitR   t	   data_min_t	   data_max_R   R   t   data_range_R   t   min_t   slicet	   enumerateRB   t   startt   stop(   RY   R?   R@   t   scaler_batcht   scaler_incrt   batcht   batch0R<   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_minmax_scaler_partial_fit]  sH     		
	
	
	
	
	
	"c          C   s1  t  }  |  j d } xd d d | | d g D]ü} t d t  j |   } t d t  } x* t t |  D] } | j |  |  } qj Wt | j	 | j	  t
 | j | j  t
 | j | j  t d |  } t   j |  |  } | d k r8t t j t d t j | j  t t j t d t j | j  nF t t j |  | d d | j  t t j |  | d d | j  t   j |   } t   } xg t t t |   D]P \ } } | j |  |  } t | d	 | j d
 | j d | d | d | j qÆWt | j | j  t
 | j | j  q- Wd  S(   Ni    i   i   i2   i*   R   Ri   Ry   R=   R>   R?   R@   RA   (   RŖ   R:   R   RL   Rd   R   R   R«   R   R~   R   t   var_R   R°   R8   R   R   R   R   R   t   varR   R±   RB   R²   R³   (   RY   R?   R@   R“   Rµ   R¶   R·   R<   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt    test_standard_scaler_partial_fit  s>     


	"c          C   sž  t  j j d  }  d } d } |  j d d d | } |  j d d d | } |  j | |  | | } t   j |  } t   } x) | D]! } | j | j d	 |   } q Wd }	 t	 | j
 | j
 d |	 t	 | j | j d |	 t	 | j | j d |	 d }
 d } |  j d d |
  j t  j  | } t j |  } t j |  } xØ | | g D] } t d t  j |  } t d t  } x | D] } | j |  } qWd }	 | j
 d  k	 sÄt  t	 | j | j d |	 t	 | j | j d |	 q\Wd  S(   Ni    i   id   g  4&õkĆg  4&õkCR2   g     @@g    .Ai   i
   iś’’’t   rtoli   g@µxÆDR   gķµ ÷Ę°>(   id   i   gķµ ÷Ę°>(   R8   Rj   Rk   t   uniformR   R   Rd   R«   RI   R   R~   R¹   R   Rl   Rn   R   R   Rm   Ro   RL   t   NoneRp   (   Rr   R   R   t   offsetst   scalesRY   R“   Rµ   t   chunkt   tolR2   R   t   X_csrt   X_cscR   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt4   test_standard_scaler_partial_fit_numerical_stability½  s8    	%c          C   sŪ   t  j d g d g d g d g g  }  t j |   } t j |   } t d t d t d t  } xt | | g D]f }  | j |   j	 |   } t
 | j |  j  | j |  } t
 | j | j  t
 | j |  j  qm Wd  S(   Ng      š?g        g      @R   R   Rx   (   R8   R9   R   Rm   Ro   R   RL   RJ   R«   R}   R	   t   dataR   (   RY   RĆ   RÄ   t   null_transformt   X_nullt   X_orig(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_partial_fit_sparse_inputė  s    'c          C   sP  t  d  d  d  d   f }  t   } x$t t |  j d d   D]\ } } |  d  | d  d  d   f } | j   } t   j |  } | j |  |  } | j |  } t	 | |  t	 | |  | j
 |  } t	 | |  t j |  j d  }	 t j t  j }
 t |	 | j |
  t |	 | j |
  t | d | j  qB Wd  S(   Nid   i    i   (   RŖ   R   R±   R   R:   Rx   RK   R«   R}   R   R   R8   R   t   finfot   floatt   epsR
   R¹   R   R   R   (   RY   Rµ   R<   R¶   t   X_sofart   chunks_copyt   scaled_batcht   scaled_incrt   right_inputt   zerot   epsilon(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt.   test_standard_scaler_trasform_with_partial_fitū  s"    	) c          C   sm  t  j }  t   } | j |   } t | j d d  d  t | j d d  d  | j |  } t |  |  t d d  } | j |   } t | j d d  d  t | j d d  d  | j |  } t |  |  t d d	  } | j |   } t | j d d  d  t | j d d  d  | j |  } t |  |  t d d
  } t t	 | j
 |   d  S(   NRy   i    i   t   feature_rangei   g      ąæg333333ć?(   i   i   (   g      ąæg333333ć?(   i   i   (   t   irisRĘ   R   RK   R   t   mint   maxR   R   t
   ValueErrorRd   (   RY   R   t   X_transt   X_trans_inv(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_min_max_scaler_iris  s*    		c    	      C   s¢  d d d 
g d d d g d d d 
g g }  d 
d d g d d d g d 
d d g g } t    } | j |   } d d d g d d d g d d d g g } t | |  | j |  } t |  |  | j |  } d 
d d g d d d	 g d 
d d
 g g } t | | d d t  d d  } | j |   } d d d g d d d g d d d g g } t | |  t |   } t | |  t |  d d } t | |  d  S(   Ng        g      š?g      ą?g¹ægń?g       @g      šæg      ų?gshķ|?µ?gŁĪ÷Sõ?t   decimali   RÖ   i   (   i   i   (   i   i   (   R   RK   R   R   R}   R   (	   RY   t   X_newR   RŪ   t   X_expected_0_1RÜ   t   X_trans_newt   X_expected_0_1_newt   X_expected_1_2(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt*   test_min_max_scaler_zero_variance_features5  s:    	c          C   sW   t  j }  t |  d d } t t j | d d d  t t j | d d d  d  S(   NRy   i   i    (   R×   RĘ   R   R   R8   RŲ   RŁ   (   RY   RŪ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_minmax_scale_axis1^  s    	c          C   sŻ  x t  t t t g D]}  t d t  } | j |   j |   } t |  t  ra t	 j
 |   }  n  t |   d k rŗ t | j d d  t	 j t   t | j d d  t	 j t   n2 t | j d d  d  t | j d d  d  t | j |  j d  | j |  } t | |   q Wt	 j d  }  t   } | j |   j |   } t | j   d  t | j   d  t | j |  j d  t  j   } | j   } | j   } t | | | | t | d t  d  S(	   NRx   i   Ry   i    g        g      š?i   (   i   i   (   Rz   R{   R|   R   RJ   Rd   R}   R6   R7   R8   R9   R;   R   RŲ   R   R   RŁ   R   R   R:   R   R   R   R   R   R   (   RY   R   R   R   t   X_1dRÆ   t   max_(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_min_max_scaler_1de  s4    	c          C   sŹ  t  j j d  }  |  j d d  } d | d  d   d f <t j |  } t j |  } t t t	   j
 |  t t t	   j
 |  t	 d t d t d t  } | j |  } t | j | j  | j |  } t | j | j  t	 d t  j
 |  } | j | d t } t t  j t  j |    t	 d t  j
 |  }	 |	 j | d t }
 t t  j t  j |
 j    t	 d t  j
 |  } | j | d t } t t  j t  j | j    t | j |	 j  t | j |	 j  t | j |	 j  t | j | j  t | j | j  t | j | j  t | j d	 d  d d
 d d d g d  t | j d	 d  d d d d d g  t |
 d  \ } } t | | j d	 d   t | | j d	 d   | | k	 sāt  |
 | k	 sōt  | j |  } | | k	 st  | | k	 s't  t | |  |	 j |
  } | | k	 sUt  | |
 k	 sgt  t | j   |  |	 j | j    } | | k	 s”t  | | k	 s³t  t | j   |  d  S(   Ni*   i   i   g        i    R   R   Rx   Ry   g{®GįzægģQøė@gffffffÖægö(\Āõčæi   g      š?(   R8   Rj   Rk   R   R   Rm   Ro   R   RŚ   R   Rd   RL   RJ   RK   R	   RĘ   R   R}   R   R¤   R„   R   R~   R¹   R   R   R   R   Rp   R3   t   tocsc(   Rr   RY   RĆ   RÄ   RĒ   RČ   RÉ   R   R   t
   scaler_csrt   X_csr_scaledt
   scaler_csct   X_csc_scaledt   X_csr_scaled_meant   X_csr_scaled_stdR   t   X_csr_scaled_backt   X_csc_scaled_back(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_scaler_without_centering  s^    ((R   R   t   array_constructorc         C   sŹ   t  j d d d g t  j d d g d d t  j g d d t  j g g d	 t  j } | |  } t j |  r |  r t j d
  n  t d |  d |  } | j	 |  t
 | j t  j d d d g   d  S(   Ni    i   i   i   i
   i   i   i   Ri   s3   'with_mean=True' cannot be used with sparse matrix.R   R   i   (   R8   R9   t   nanR   R   t   issparset   pytestt   skipR   Rd   R	   R   (   R   R   Ró   RY   t   transformer(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt#   test_scaler_n_samples_seen_with_nanĶ  s    c         C   s   |  j  | j  k o d  k n s( t  |  j | j k oE d  k n sP t  |  j | j k om d  k n sx t  |  j | j k s t  d  S(   N(   R~   R¾   Rp   R¹   R   R   (   t   scaler_1t   scaler_2(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt"   _check_identity_scalers_attributesć  s    (((c          C   sÕ  t  j d d d g d d d g d d d g g d t  j }  t j |   } | j   } t d	 t d
 t  } | j |   } t	 |  } | j |  } t	 |  } | j |  } t
 | |  t
 | |  t | |   x6 t j | | | g d  D] \ }	 }
 t |	 |
  qō W| j |   | j |  | j |  x6 t j | | | g d  D] \ }	 }
 t |	 |
  qTW| j |   | j |  | j |  x6 t j | | | g d  D] \ }	 }
 t |	 |
  q“Wd  S(   Ni    i   i   i   i   i   i
   Ri   R   R   i   (   R8   R9   R   R   Rm   Ré   R   RL   RK   R,   R   R   t	   itertoolst   combinationsRü   R«   Rd   (   t   X_denseRĆ   RÄ   t   transformer_denset   X_trans_denset   transformer_csrt   X_trans_csrt   transformer_csct   X_trans_csct   trans_1t   trans_2(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_scaler_return_identityź  sH    c          C   s-  t  j j d  }  |  j d d d } d | d  d   d f <t j |  } t j |  } t d t d t d	 t	  } t
   t j d
 t	   | j |  } Wd  QXt | j | j  | j |  } t | j | j  t
   t j d
 t	  2 t d t  j |  } | j | d	 t	 } Wd  QXt t  j t  j |    t
   t j d
 t	  2 t d t  j |  }	 |	 j | d	 t	 }
 Wd  QXt t  j t  j |
 j    t
   t j d
 t	  2 t d t  j |  } | j | d	 t	 } Wd  QXt t  j t  j | j    t | j |	 j  t | j |	 j  t | j |	 j  t | j | j  t | j | j  t | j | j  t | j d d  d d d d d g d  t | j d d  d d d d d g  t |
 j t  j  d  \ } } t | | j d d   t | | j d d   | | k	 sEt  |
 | k	 sWt  | j |  } | | k	 sxt  | | k	 st  t | |  |	 j |
  } | | k	 søt  | |
 k	 sŹt  t | j    |  |	 j | j!    } | | k	 st  | | k	 st  t | j    |  d  S(   Ni*   i   R2   i   i   i    R   R   Rx   t   recordRy   g        gX9“Čv¾ń?gV-²ż?g      5@glēū©ńų?i   g      š?(   i   i   ("   R8   Rj   Rk   Rl   R   Rm   Ro   R   RL   RJ   R   t   warningst   catch_warningsRK   R	   RĘ   R   Rd   R}   R   R¤   R„   R   R~   R¹   R   R   R   R   Rn   RĢ   Rp   R3   Ré   (   Rr   RY   RĆ   RÄ   RĒ   RČ   RÉ   R   R   Rź   Rė   Rģ   Rķ   Rī   Rļ   R   Rš   Rń   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_scaler_int  sn    (c          C   s  t  j j d  }  |  j d d  } d | d  d   d f <t j |  } t j |  } | j   } t d t	  j
 |  t | |  | j   } t d t	 d t	  j
 |  t | j   | j    | j   } t d t	 d t	  j
 |  t | j   | j    d  S(   Ni*   i   i   g        i    Rx   R   (   R8   Rj   Rk   R   R   Rm   Ro   Rx   R   RL   Rd   R	   R3   (   Rr   RY   RĆ   RÄ   t   X_copyt
   X_csr_copyt
   X_csc_copy(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_scaler_without_copye  s    c          C   s>  t  j j d  }  |  j d d  } t j |  } t j |  } t t t	 | d t
 t t t d t
  j |  t t t	 | d t
 t t t d t
  j |  t d t
  j |  } t t | j |  t t | j |  t j | j |   } t t | j |  t j | j |   } t t | j |  d  S(   Ni*   i   i   R   (   R8   Rj   Rk   R   R   Rm   Ro   R   RŚ   R   RJ   R   Rd   R}   R   (   Rr   RY   RĆ   RÄ   R   t   X_transformed_csrt   X_transformed_csc(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt+   test_scale_sparse_with_mean_raise_exceptionz  s    c          C   s2   t  j d d d d g g }  t t d t |   d  S(   Ni   i   i   i   s,   Input contains infinity or a value too large(   R8   t   infR   RŚ   R   (   RY   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt&   test_scale_input_finiteness_validation  s    c          C   sT   t  j d d  }  t d t  } d } t j t d |  | j |   Wd  QXd  S(   Nič  i
   t   with_centerings   Cannot center sparse matricest   match(   R   t   randR$   RJ   Rö   t   raisesRŚ   Rd   (   Rs   R   t   err_msg(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_robust_scaler_error_sparse  s
    R  t   with_scalingRY   t   densityg      ą?c         C   s½   | r% t  j |   r% t j d  n  t d | d |  } | j |   | rk t | j t j	  s t
  n | j d  k s t
  | r¤ t | j t j	  s¹ t
  n | j d  k s¹ t
  d  S(   Ns(   RobustScaler cannot center sparse matrixR  R  (   R   Rõ   Rö   R÷   R$   Rd   R6   t   center_R8   t   ndarrayRp   R¾   R   (   RY   R  R  R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_robust_scaler_attributes£  s    	c          C   sÄ   t  j j d d  }  d |  d  d   d f <t j |   }  t d t  } | j |   | j d t	 j
 d  k sx t  | j |   } t |  d  d   d f j   | d  d   d f j    d  S(   Ni
   i   i    R  i   (   R8   Rj   R   R   Rm   R$   RL   Rd   R   Rö   t   approxRp   R}   R   R3   (   RY   R   RŪ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt"   test_robust_scaler_col_zero_sparseŗ  s    "c          C   s   t  j j d  }  |  j d d  } d | d  d   d f <t   } | j |  j |  } t t  j | d d d d g  t | j	 d d  d d  d  S(   Ni    i   i   g        Ry   (
   R8   Rj   Rk   R   R$   Rd   R}   R   t   medianR   (   Rr   RY   R   R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_robust_scaler_2d_arraysÉ  s    	#g©?g¹?t   strictly_signedt   positivet   negativeR   c         C   sņ   t  j d d d |  j   } | d k rB t j | j  | _ nU | d k rg t j | j  | _ n0 | d k r t j | j j d t j | _ n  | j	   } t
 d t  } t
 d t  } | j |  | j |  t | j | j  d  S(	   Nič  i   R  R&  R'  R   Ri   R  (   R   R  Ré   R8   t   absRĘ   R   R:   R   R3   R$   RL   Rd   R   R   (   R  R%  Rs   R’   t   scaler_sparset   scaler_dense(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt+   test_robust_scaler_equivalence_dense_sparseÖ  s    $c          C   sĮ   t  j j d  }  |  j d d  } t  j d d d d d g g  } t d	 t  } | j |  } | j t	 j
 |   } | | j } t | j   |  | j |  } t | | j    d  S(
   Ni    i   i   g¹?g      š?g       @g        g      šæR  (   R8   Rj   Rk   R   R9   R$   RL   Rd   R}   R   Rm   R   R   R3   R   (   Rr   RY   t
   single_rowR   t	   row_transt   row_expectedt   row_scaled_back(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt(   test_robust_scaler_transform_one_row_csrķ  s    !c          C   s   t  j }  t   } | j |   } t t j | d d d  | j |  } t |  |  t j | d d d d } | d | d } t | d  d  S(   NRy   i    t   qi   iK   i   (   i   iK   (	   R×   RĘ   R$   RK   R   R8   R#  R   t
   percentile(   RY   R   RŪ   RÜ   R1  t   iqr(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_robust_scaler_irisū  s    		c          C   s   t  j }  t d d  } | j |   } t t j | d d d  | j |  } t |  |  t j | d d	 d d } | d | d } t | d  d  S(
   Nt   quantile_rangei
   iZ   Ry   i    R1  i   (   i
   iZ   (   i
   iZ   (	   R×   RĘ   R$   RK   R   R8   R#  R   R2  (   RY   R   RŪ   RÜ   R1  t   q_range(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt!   test_robust_scaler_iris_quantiles  s    	c          C   sĒ   t  j }  t d d  } | j |   } | j |  } t |  |  t d d d d  } | j |   } | j |  } t |  |  t j |   } | j |  } | j |  } t | j | j  d  S(   Nt   n_quantilesi   t   output_distributiont   normal(	   R×   RĘ   R    RK   R   R   R   Ro   Rq   (   RY   Rų   RŪ   RÜ   Rs   t   X_sparse_trant   X_sparse_tran_inv(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_quantile_transform_iris  s    		c          C   sĆ  t  j d d d d d d d d d d g
 d d d d d d	 d d
 d d g
 d d d d d d d d d d g
 g  }  t j |   }  t  j d d d d d d d d d d g
 d d d d d d	 d d
 d d g
 d d d d d d d d d d g
 g  } t j |  } t t d t d d  j |   t t d t d d  j |   t t d t d d
  j |   t d d
  } t t d | j |  | j |   t t d | j |  t  j d d d d d d d d d d g
 d d d d d d d d d d g
 g  } t t d | j |  t t d | j	 |  t d d
 d d  } t t d | j |   d | _
 | j |   | j |   } d | _
 t t d | j |   t t d | j	 |  t t d | j d
  d  S(   Ni    i   i2   iK   id   i   i   i   i   i
   gĶĢĢĢĢĢ@gffffff@gffffff@g      #@g¹?iž’’’s#   Invalid value for 'n_quantiles': 0.R8  s!   Invalid value for 'subsample': 0.t	   subsamplesm   The number of quantiles cannot be greater than the number of samples used. Got 1000 quantiles and 10 samples.s>   QuantileTransformer only accepts non-negative sparse matrices.s^   X does not have the same number of features as the previously fitted data. Got 2 instead of 3.R9  t   rndsP   'output_distribution' has to be either 'normal' or 'uniform'. Got 'rnd' instead.R½   s+   Expected 2D array, got scalar array instead(   R8   t	   transposeR   Ro   R   RŚ   R    Rd   R}   R   R9  R   (   RY   t   X_negRų   t
   X_bad_featt   X_tran(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt#   test_quantile_transform_check_error(  sR    '!*'!*					'*								c          C   s  t  j d d g d d g d d g d d g d d g g  }  t j |   } t d t d d  } t t d | j |   t  j d d g d d g d d g d d g d d g g  } | j	 |  } t
 | | j  t  j 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 g  } t  j d d d d d d	 d d d
 d d g  } t j | | | f f  } | j	 |  } t  j 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	  } t
 | | j  t d t d d  } t  j d d d d d d d d d g	  } t  j d d d d d d d d d g	  } t  j d d d d d d	 d d d
 g	  } t j | | | f f  } | j	 |  } t  j d d g d d g d d g d d g d d g d d g d d g g  } t
 | | j  t
 | j | j |  j  t d t d d d d d d  } | j	 |  } t
 | | j  t
 | j | j |  j  d  S(   Ni    i   i   t   ignore_implicit_zerosR8  i   s[   'ignore_implicit_zeros' takes effect only with sparse matrix. This parameter has no effect.i   i   i   i   i   g        g      ą?g      š?i’’’’g      Ų?R>  t   random_state(   R8   R9   R   Ro   R    RJ   R   R   Rd   RK   R   Rq   R   (   RY   Rs   Rų   t
   X_expectedRŪ   t   X_datat   X_colt   X_row(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt+   test_quantile_transform_sparse_ignore_zerosg  sn    								000								***						c          C   s=  t  j d d d g d d d g d d d	 g d
 d d g d d d g g  }  t d d  } | j |   | j |   } t  j t  j d d d d d  j } t t  j	 | d d |  t  j d d d g d d d g g  } t  j d d d g d d d g g  } t
 | j |  |  | j |  } t
 |  |  d  S(   Ni    i   gĶĢĢĢĢĢ@i   i   gffffff@i2   i   gffffff@iK   i   g      #@id   i
   g¹?R8  i   i   t   numi   Ry   i’’’’ie   i   (   i   i   (   R8   R9   R    Rd   RK   t   tilet   linspacet   TR   t   sortR   R}   R   (   RY   Rų   RŪ   RG  t   X_testRÜ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt!   test_quantile_transform_dense_toy«  s&    'c    	   	   C   sļ  d }  d } t  j t  j j |  d f  d d } d } g  } x t |  D] } t d | d | d	 |  d
  } | j |  t  j d d |  t  j | j	  } t  j
 t  j |   } | d k  sĶ t  | j |  qL Wt t t  j |   t |   t j |  d d d d d d d } g  } x t |  D] } t d | d | d	 |  d
  } | j |  t  j d d |  t  j | j	  } t  j
 t  j |   } | d k  søt  | j |  q7Wt t t  j |   t |   d  S(   Ni@B ič  i   Ry   i    i   RF  R8  R>  i
   g{®Gįz?R  g®Gįz®ļ?t   formatt   cscg¹?(   R8   RP  Rj   t   samplet   rangeR    Rd   RN  R   t
   quantiles_RŁ   R(  Rp   t   appendR   t   lent   uniqueR   R  (	   R   R8  RY   t   ROUNDt   inf_norm_arrRF  Rų   t   difft   inf_norm(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt#   test_quantile_transform_subsamplingÉ  s:    '"$c          C   sŹ  t  j d d d g d d d g d d d g d d d g d d d g d d	 d g d
 d d g d d d g d d d g d d d g g
  }  t j |   }  t d d  } | j |   | j |   } t t  j | j	   d d d  t t  j
 | j	   d d d  | j |  } t |  j	   | j	    t d d  j |  j	    } | j |   } t t  j | j	   d d d  t t  j
 | j	   d d d  | j |  } t |  j	   | j	    d  S(   Ng        g       @g      9@g      @g      I@gĶĢĢĢĢĢ@gffffff@g      @g       @g     ĄR@gffffff@g      $@g      #@g      Y@g¹?R8  i
   Ry   i    g      š?(   R8   R9   R   Ro   R    Rd   RK   R   RŲ   R3   RŁ   R   R}   (   RY   Rų   RŪ   RÜ   R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt"   test_quantile_transform_sparse_toyö  s2    """"c          C   s   t  j d d d d d g d d d d	 d
 g d d d d d g g  }  t |  j d d d d } t |  d d d d } t | | j  d  S(   Ni    i   i2   iK   id   i   i   i   i   i
   gĶĢĢĢĢĢ@gffffff@gffffff@g      #@g¹?Ry   R8  i   i   (   R8   R9   R!   RO  R   (   RY   t
   X_trans_a0t
   X_trans_a1(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_quantile_transform_axis1  s    c          C   s,  t  j d d g d d g d d g g  }  t j |   } t d d d d  j |   } t | |   t d d d d  j |  } t | j |   t | | j  t  j d d g d d g d d g g  } t  j d d g d d g d d g g  } t d d  j |  } | j	 |  } t | |  t  j
 j
 d  } t   } | j |  t | j	 d	 g g  | j	 t  j |  g g   t | j	 d
 g g  | j	 t  j |  g g   t | j d	 g g  | j t  j | j  g g   t | j d
 g g  | j t  j | j  g g   d  S(   Ni    i   R8  i   RF  g      ą?g¹?ič  iö’’’i
   (   ič  i   (   R8   R9   R   Ro   R    RK   R   Rq   Rd   R}   Rj   R   RŲ   RŁ   R   t   references_(   R’   Rs   RŪ   t
   X_trans_spRY   RP   Rų   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_quantile_transform_bounds#  sB    				c          C   sM   t  j }  t d d d d  } | j |   } | j |  } t |  |  d  S(   NR8  ič  RF  i    (   R×   RĘ   R    RK   R   R   (   RY   Rų   RŪ   RÜ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt#   test_quantile_transform_and_inverseP  s
    	c          C   sŃ   t  j t  j d d d g t  j t  j d d g t  j d d d g g  }  t d d d d  } | j |   t  j | j d  d   d f  j   s t  t  j | j d  d   d d   f  j	   sĶ t  d  S(   Ni    i   g      ą?R8  i
   RF  i*   (
   R8   R9   Rō   R    RK   R„   RW  t   allRp   R¤   (   RY   Rų   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_quantile_transform_nanY  s    .c          C   sL   xE d d d d d g D]. }  t  d	 |   } t t d
 | j t j  q Wd  S(   Ni’’’’iZ   iž’’’iż’’’i
   ie   g      Y@i2   R5  s   Invalid quantile range: \((   i’’’’iZ   (   iž’’’iż’’’(   i
   ie   (   g      Y@ie   (   iZ   i2   (   R$   R   RŚ   Rd   R×   RĘ   (   t   range_R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt    test_robust_scaler_invalid_rangeg  s    	c          C   sÖ  t  j j d  }  |  j d d  } d | d  d   d f <t j |  } t | d t } t t  j	 t  j
 |    t | d t } t t  j	 t  j
 | j    t | j   d t } t | | j    t t t | d t d d t | j d d  d d	 d
 d d g d  t | j d d  d d d d d g  | | k	 sTt  t | d  \ } } t | | j d d   t | | j d d   t | d t d t d t } t | j   | j    d  S(   Ni*   i   i   g        i    R   Ry   i   g{®GįzægģQøė@gffffffÖægö(\Āõčæi   g      š?R   Rx   (   R8   Rj   Rk   R   R   Rm   R   RL   R   R¤   R„   RĘ   Ré   R   R3   R   RŚ   R   R   Rp   R   RJ   (   Rr   RY   RĆ   R   Rė   Rķ   Rī   Rļ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt%   test_scale_function_without_centeringu  s(    (c          C   su   t  j }  t |  d d } t t j | d d d  t j | d d d d } | d | d } t | d  d  S(   NRy   i   i    R1  i   iK   (   i   iK   (   R×   RĘ   R%   R   R8   R#  R2  (   RY   RŪ   R1  R3  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_robust_scale_axis1  s    	c          C   ss   t  j d  d   d f }  t |   } t t j |  d  t j | d d } | d | d } t | d  d  S(   Ni   i    R1  i   iK   (   i   iK   (   R×   RĘ   R%   R   R8   R#  R2  (   RY   RŪ   R1  R3  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_robust_scale_1d_array   s    c          C   s  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 } t | |  | j |  } t |  |  d 
d d g d d d g d 
d d g g } | j |  } d 
d d 
g d d d	 g d 
d d
 
g g } t | | d d d  S(   Ng        g      š?g      ą?g¹ægń?g      šæg       @g      ų?g_Ņ­£ŖźægŃs)®Ŗś?RŽ   i   (   R$   RK   R   R   R}   (   RY   R   RŪ   RG  RÜ   Rß   Rį   t   X_expected_new(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt)   test_robust_scaler_zero_variance_features©  s&    	c          C   s  d d d 
g d d d g d d d 
g d d d 
g g }  t    } | j |   } d d d g d d d g d d d g d d d g g } t | |  | j |  } t |  |  d 
d d g d	 d d g d 
d d g g } | j |  } d 
d d g d	 d d g d 
d d g g } t | | d
 d t |   } t | |  t j |   } t j |   }	 | j |  }
 | j |	  } d d d g d d d g d d d g d d d g g } t |
 j	 |  t | j	 |  | j |
  } | j |  } t |  | j	  t |  | j	  d  S(   Ng        g      š?g      ą?g333333Óæg      ų?g      @gÉæg       @g      šæRŽ   i   gUUUUUUÕ?gUUUUUUÕ?gUUUUUUÕ?(
   R"   RK   R   R   R}   R#   R   Rm   Ro   Rq   (   RY   R   RŪ   RG  RÜ   Rß   Rį   Ro  RĆ   RÄ   R  R  t   X_trans_csr_invt   X_trans_csc_inv(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt)   test_maxabs_scaler_zero_variance_featuresŹ  sJ    	c          C   sÆ   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 g d d d
 d g d d d d g d d d d g g } t | |  d  S(   Ng        g      š?g      ą?g      šæg333333Óæg      ąæg      YĄg       Ąg{®Gįzt?gś~j¼thæg      Šæ(   R"   RK   R   (   RY   R   RŪ   RG  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt'   test_maxabs_scaler_large_negative_valueū  s    	c          C   s¢   t  j d d d g g  }  t   } | j |   } | j |   } t  j d d d g g  } t | j   | j    | j |  } t |  j   | j    d  S(   Ng      ą?g      š?(   R   Rm   R"   Rd   R}   R   R3   R   (   RY   R   RŪ   RG  R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt(   test_maxabs_scaler_transform_one_row_csr  s    	c          C   s   t  j d d d g d d d g g d t  j }  d } t   t t | t |   t t | t   j |   t t | t	   j |   d  S(   Ni   i   i    Ri   s4   Data with input dtype uint8 was converted to float64(
   R8   R9   t   uint8R   R   R*   R   R   Rd   R   (   RY   R   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_warning_scaling_integers  s    c          C   s„  x÷ t  t t t g D]ć }  t d t  } | j |   j |   } t |  t  ra t	 j
 |   }  n  t |   d k r” t t	 j | j d d   t	 j t   n" t t	 j | j d d   d  t | j |  j d  | j |  } t | |   q Wt	 j d  }  t   } | j |   j |   } t t	 j | j d d   d  t | j |  j d  t  j   } t	 j |  j   } t | | t | d t  d  S(   NRx   i   Ry   i    g      š?i   (   i   i   (   Rz   R{   R|   R"   RJ   Rd   R}   R6   R7   R8   R9   R;   R   R(  RŁ   R   R   R   R   R:   R   R   R#   (   RY   R   R   R   Rę   t   max_abs(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_maxabs_scaler_1d$  s(    "	"c          C   sŃ  t  d  d  d  d   f }  |  j d } x”d d d | | d g D]} t   j |   } t   } t   } t   } xn t | |  D]] } | j |  |  } t j |  |  } | j |  } t j |  |  }	 | j |	  } q Wt	 | j
 | j
  t	 | j
 | j
  t	 | j
 | j
  t | j | j  t | j | j  t | j | j  t	 | j | j  t	 | j | j  t	 | j | j  t	 | j |   | j |    t d |  }
 t   j |  |
  } t   j |  |
  } t	 | j
 | j
  t | j | j  t	 | j | j  t	 | j |   | j |    t   j |   } t   } xg t t | |   D]P \ } } | j |  |  } t | d | j d | j d	 | d
 | d | j quWqC Wd  S(   Nid   i    i   i   i2   i*   R=   R>   R?   R@   RA   (   RŖ   R:   R"   Rd   R   R«   R   Rm   Ro   R   t   max_abs_R   R   R   R}   R°   R±   RB   R²   R³   (   RY   R?   R@   R“   Rµ   t   scaler_incr_csrt   scaler_incr_cscR¶   RĆ   RÄ   R·   R<   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_maxabs_scaler_partial_fitF  sX     				
	
	
	
	"c          C   sX  t  j j d  }  |  j d d  } t j |  } d | d d  d   f <| j d } | j d } d | j | | +t j |  } x| | | f D]õ } t d d d t	  } | j
 |  } | | k	 sĪ t  t |  }	 t d d d t  } | j
 |  } | | k st  t |  }
 xh |	 |
 f D]Z } t  j |  j d	 d
  } x% t d  D] } t | | d  qWWt | d d  q)Wq WxĘ t j t j t j f D]¬ } | |  } t d d d t  j
 |  } } | | k	 sźt  t | t j  st  t |  } x% t d  D] } t | | d  qWt t j | d  d  q¤Wd  S(   Ni    i   i   g        i   t   normt   l1Rx   Ry   i   g      š?t   l2(   R8   Rj   Rk   R   R   Rm   t   indptrRĘ   R   RJ   R}   Rp   R3   RL   R(  t   sumRV  R   t
   coo_matrixRo   t
   lil_matrixR6   t   laR~  (   Rr   R’   t   X_sparse_unprunedt   indptr_3t   indptr_4t   X_sparse_prunedRY   t
   normalizert   X_normt   X_norm1t   X_norm2t   row_sumsR<   t   init(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_normalizer_l1  s>    "c          C   sX  t  j j d  }  |  j d d  } t j |  } d | d d  d   f <| j d } | j d } d | j | | +t j |  } xż | | | f D]ģ } t d d d t	  } | j
 |  } | | k	 sĪ t  t |  } t d d d t  } | j
 |  }	 |	 | k st  t |	  }	 x_ | |	 f D]Q }
 x. t d  D]  } t t j |
 |  d	  q<Wt t j |
 d  d  q)Wq WxĻ t j t j t j f D]µ } | |  } t d d d t  j
 |  }
 } |
 | k	 sįt  t |
 t j  słt  t |
  }
 x. t d  D]  } t t j |
 |  d	  qWt t j |
 d  d  qWd  S(
   Ni    i   i   g        i   R~  R  Rx   g      š?(   R8   Rj   Rk   R   R   Rm   R  RĘ   R   RJ   R}   Rp   R3   RL   RV  R   R  R~  R  Ro   R  R6   (   Rr   R’   R  R  R  R  RY   R  R  R  R  R<   R  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_normalizer_l2±  s<    ""c          C   sO  t  j j d  }  |  j d d  } t j |  } d | d d  d   f <| j d } | j d } d | j | | +t j |  } xż | | | f D]ģ } t d d d t	  } | j
 |  } | | k	 sĪ t  t |  } t d d d t  } | j
 |  }	 |	 | k st  t |	  }	 x_ | |	 f D]Q }
 |
 j d	 d
  } x% t d  D] } t | | d  qNWt | d d  q)Wq WxĘ t j t j t j f D]¬ } | |  } t d d d t  j
 |  }
 } |
 | k	 sįt  t |
 t j  słt  t |
  }
 x% t d  D] } t | | d  qWt t j |
 d  d  qWd  S(   Ni    i   i   g        i   R~  RŁ   Rx   Ry   i   g      š?R  (   R8   Rj   Rk   R   R   Rm   R  RĘ   R   RJ   R}   Rp   R3   RL   RŁ   RV  R   R  Ro   R  R6   R  R~  (   Rr   R’   R  R  R  R  RY   R  R  R  R  t   row_maxsR<   R  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_normalizer_maxį  s>    "c       	   C   sų  t  j j d  j d d  }  t t |  d t t |  j d d d t j  t t	 t d g g d d t t	 t d g g d d t  j j d  } | j d	 d
  } t
 j |  } t  j d	  } xŅ | | f D]Ä }  x» t  j t  j f D]§ } x d D] } |  j |  }  t |  d | } t | j |  t |  } | d k rit  j |  j d d  } n | d }	 |	 j d d  } t | |  qü Wqļ WqÖ Wt  j d d d g d d d g d d d g g  } x§ d D] } t | d | d t \ }
 } | d k r*t | t  j d d d g   qŲ| d k rXt | t  j d d d g   qŲt | t  j d d d g   qŲWt
 j |  } x* d D]" } t t t | d | d t qWt | d d d t \ }
 } t | t  j d d d g   d  S(   Ni%   i   i   Rx   Ry   i    R~  t   l3i
   i   R  R  i   g      @g      @g      š?g        g       @RŁ   t   return_normg      @g      @g1„C+Ų@(   R  R  (   R  R  RŁ   (   R  R  (   R8   Rj   Rk   R   R	   R   RL   RO  R   RŚ   R   Rm   R   R   R   Rn   R   Ri   R3   R(  R  R   R9   RJ   t   NotImplementedError(   RY   t   rsR’   Rs   R   Ri   R~  R  R  t   X_norm_squaredt   _t   norms(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_normalize  sF    
3""#c          C   s  t  j d d d g d d d g g  }  x¢t  j t t j t j f D]} | |  j    } t d d d	 t  } t	 | j
 |   } t t  j | d k  d
  t t  j | d k  d  | j
 |  } t t j |  t j |   t d	 t  j |  } t	 | j
 |   } | | k	 s*t  t t  j | d k  d  t t  j | d k  d
  t d	 t  } | j
 |  } | | k	 st  t	 |  } t t  j | d k  d  t t  j | d k  d
  t d	 t  } | j
 |  } | t k	 r| | k st  n  t d	 t  } t  j d d d g d d d g g d t  j } | j
 |  } | t k	 r| | k st  n  t	 |  } t t  j | d k  d  t t  j | d k  d
  qC Wt d d d	 t  } x t  j t f D]t } | |  j    } t	 | j
 |   } t t  j | d k  d  t t  j | d k  d  | j
 |  } qńWt t | j
 t j |   d  S(   Ni   i    i   i   i   i’’’’t	   thresholdg       @Rx   i   Ri   g      ąæ(   R8   R9   R7   R   Rm   Ro   Rx   R   RJ   R3   R}   R   R  Rõ   Rd   Rp   RL   R   R   RŚ   (   t   X_R  RY   t	   binarizert   X_bint   X_float(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_binarizerB  sP    '"0 c          C   s  t  j j d  }  |  j d  } t d t  } | j |  | j |  } t  j | | j	  } t
   } t  j | | j	  } | j |  } t | |  |  j d  } t  j | | j	  }	 | j |  }
 t  j |
 | j	  } | j |	  } t | |  d  S(   Ni    i   i   R   i   (   i   i   (   i   i   (   R8   Rj   Rk   t   random_sampleR   RL   Rd   R}   t   dotRO  R   RK   R   (   Rr   t   X_fitR   t   X_fit_centeredt   K_fitt   centerert   K_fit_centeredt   K_fit_centered2t   X_predt   K_predt   X_pred_centeredt   K_pred_centeredt   K_pred_centered2(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_center_kernely  s     	c          C   sČ   t  j d d d g d d d g d d d g d d d g g  }  t  j d  } |  j |  j  } t   } t d | f d t d d  f g  } | j s t	  t
 | | | d	 d
 } t | |  d  S(   Ni   i    i   i   t   kernel_centerert   svrt   gammaR   t   cvi   (   i   (   R8   R9   R   R£  RO  R   R-   R/   t	   _pairwiseRp   R.   R   (   RY   t   y_truet   Kt   kcentt   pipelinet   y_pred(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_cv_pipeline_precomputed  s    ?	c          C   s|   t  j j d  }  |  j d  } xT t   t   t   f D]: } | j |  j |  } | j	 |  } t
 | |  q: Wd  S(   Ni    i   i   (   i   i   (   R8   Rj   Rk   R¢  R   R   R   Rd   R}   RK   R	   (   Rr   RY   t   objt   X_transformedt   X_transformed2(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_fit_transform§  s    c          C   sb   d d g d d g d d g g }  t  |   }  t |  d d d g d d d g d d d g g  d  S(   Ni   i    (   R&   R	   (   RY   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_add_dummy_feature°  s    !c          C   s   t  j d d g d d g d d g g  }  t |   }  t  j |   sQ t |    t |  j   d d d g d d d g d d d g g  d  S(   Ni   i    (   R   R  R&   t   isspmatrix_cooRp   R	   R3   (   RY   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_add_dummy_feature_coo¶  s    *c          C   s   t  j d d g d d g d d g g  }  t |   }  t  j |   sQ t |    t |  j   d d d g d d d g d d d g g  d  S(   Ni   i    (   R   Ro   R&   t   isspmatrix_cscRp   R	   R3   (   RY   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_add_dummy_feature_csc½  s    *c          C   s   t  j d d g d d g d d g g  }  t |   }  t  j |   sQ t |    t |  j   d d d g d d d g d d d g g  d  S(   Ni   i    (   R   Rm   R&   t   isspmatrix_csrRp   R	   R3   (   RY   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_add_dummy_feature_csrÄ  s    *c          C   sx   t  j }  |  d  d   d  d  f } t d t d t  t   t   g } x( | D]  } | j |   | j |  qP Wd  S(   Ni   R   R   (   R×   RĘ   R   RL   R   R"   RK   (   RY   RŖ   t   scalersR   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_fit_cold_startĖ  s    	c          C   se   t  j d d d d d g d d d d	 d
 g d d d d d g g  }  t t d t |  j d d d  S(   Ni    i   i2   iK   id   i   i   i   i   i
   gĶĢĢĢĢĢ@gffffff@gffffff@g      #@g¹?s1   axis should be either equal to 0 or 1. Got axis=2Ry   (   R8   R9   R   RŚ   R!   RO  (   RY   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt"   test_quantile_transform_valid_axisŪ  s
    	t   methods   box-coxs   yeo-johnsonc         C   sH   t  d |   } t j t  } t t | j |  t t | j |  d  S(   NRÉ  (   R(   R8   R(  R{   R   R+   R}   R   (   RÉ  t   ptRY   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt    test_power_transformer_notfittedä  s    t   standardizec         C   s_   |  d k r t  j |  n | } t d |  d |  } | j |  } t | | j |   d  S(   Ns   box-coxRÉ  RĢ  (   R8   R(  R(   RK   R   R   (   RÉ  RĢ  RY   RŹ  RŪ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_power_transformer_inverseģ  s    !c          C   s/  t  j t  }  xt t g D]} t d d d |  } | j |   } t |  d d d | } t j	 |  j
    \ } } | r t |  } n  t | j d d  |  t | j d d  |  t |  | j |   t | | j d  t | j  |  j d k st  t | j t  j  s t  q Wd  S(   NRÉ  s   box-coxRĢ  i’’’’i   i    (   R8   R(  R{   RJ   RL   R(   RK   R)   R   t   boxcoxt   flattenR   R   RI   R   t   lambdas_RY  R:   Rp   R6   R  (   RY   RĢ  RŹ  RŪ   t   X_trans_funcRG  t   lambda_expected(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_power_transformer_1dų  s     	"c    
      C   se  t  j t  }  xOt t g D]A} t d d d |  } | j |   } t |  d d d | } xæ | | g D]± } x t | j	 d  D]w } t
 j |  d  d   | f j    \ } } | rĖ t |  } n  t | d  d   | f |  t | | j |  q W| j |  }	 t |	 |   qk Wt | j  |  j	 d k sBt  t | j t  j  s t  q Wd  S(   NRÉ  s   box-coxRĢ  i   (   R8   R(  RŖ   RJ   RL   R(   RK   R)   RV  R:   R   RĪ  RĻ  R   R   RŠ  R   R   RY  Rp   R6   R  (
   RY   RĢ  RŹ  t   X_trans_classRŃ  RŪ   t   jRG  t   lmbdat   X_inv(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_power_transformer_2d  s$    	+"c          C   sŻ   t  d d  }  |  j t j t   t } d } t t | |  j |  t t | |  j |  t t | t | d  t t | |  j t j	 t j
   t t | |  j t j	 t j
   t t | t t j	 t j
  d  d  S(   NRÉ  s   box-coxs   strictly positive(   R(   Rd   R8   R(  RŖ   R   RŚ   R}   R)   R   R:   (   RŹ  t   X_with_negativest   not_positive_message(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt9   test_power_transformer_boxcox_strictly_positive_exception1  s     						c         C   s   t  |  d d d  S(   NRÉ  s   yeo-johnson(   R)   (   RY   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt+   test_power_transformer_yeojohnson_any_inputM  s    c         C   s   t  d |   } t j t  } | j |  d } t t | | j | d  d   d d  f  t t | | j | d  d   d d  f  d  S(   NRÉ  s-   Input data has a different number of featuresi    i   (	   R(   R8   R(  RŖ   Rd   R   RŚ   R}   R   (   RÉ  RŹ  RY   t   wrong_shape_message(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt&   test_power_transformer_shape_exceptionT  s    	#	c          C   s>   t  d d  }  t j t  } d } t t | |  j |  d  S(   NRÉ  s   monty-pythons   'method' must be one of(   R(   R8   R(  RŖ   R   RŚ   Rd   (   RŹ  RY   t   bad_method_message(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt'   test_power_transformer_method_exceptione  s
    	c          C   sx   t  d d d t  }  t j t  d  d   d d  f } t j d g  |  _ |  j |  } t |  j	 |  |  d  S(   NRÉ  s   box-coxRĢ  i    i   (
   R(   RL   R8   R(  RŖ   R9   RŠ  R}   R   R   (   RŹ  RY   RŪ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt"   test_power_transformer_lambda_zeroo  s
    %c          C   so   t  d d d t  }  t j t  d  d   d d  f } t j d g  |  _ |  j |  } t | |  d  S(   NRÉ  s   yeo-johnsonRĢ  i    i   (	   R(   RL   R8   R(  RŖ   R9   RŠ  R}   R   (   RŹ  RY   RŪ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt!   test_power_transformer_lambda_oney  s
    %s   method, lmbdag      š?c         C   sķ   t  j j d  } d } | j d d d d d | d f  } t d |  d t  } | g | _ | j |  } t d |  d t  } | j |  } t	 d t  j
 j | |  | d	 d
 t	 d | j   d	 d t	 d | j   d	 d d  S(   Ni    i N  t   locR   i   R2   RÉ  RĢ  RŽ   i   (   R8   Rj   Rk   R:  R(   RL   RŠ  R   RK   R   t   linalgR~  R   R   (   RÉ  RÖ  Rr   R   RY   RŹ  R×  t   X_inv_trans(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt#   test_optimization_power_transformer  s    $ c          C   s   d d d d d d d d d	 d
 d d d d d g }  t  j |   j d d  }  t d d  j |   j } t  j | d d d s t  d  S(   Ngffffff@gĶĢĢĢĢĢ Ąg      š?g       @gffffffę?g333333@g      @gffffff@gĶĢĢĢĢĢü?gĶĢĢĢĢĢ@g      @g      @g"@g      @g      Ąi’’’’i   RÉ  s   yeo-johnsongįz®Gįō?t   atolgü©ńŅMbP?(   R8   R9   RI   R(   Rd   RŠ  t   allcloseRp   (   RY   RÖ  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_yeo_johnson_darwin_example”  s
    'c         C   sĶ   t  j t  } t d |   } | j |  | j d } t  j | t  j | t  j  g  } t	 | d d } | j |  | j d } t
 | | d d | j |  } t t  j |  t  j |   d  S(   NRÉ  i    RF  RŽ   i   (   R8   R(  R{   R(   Rd   RŠ  t   concatenatet	   full_likeRō   R0   R   R}   R	   R„   (   RÉ  RY   RŹ  t   lmbda_no_nanst
   lmbda_nansRŪ   (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   test_power_transformer_nans«  s    $c         C   s_   t  } |  d k r$ t j |  } n  t |  |  } t | j |  j |  | j |   d  S(   Ns   box-cox(   R{   R8   R(  R(   R   Rd   R}   RK   (   RÉ  RĢ  RY   RŹ  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt$   test_power_transformer_fit_transformĀ  s
    c         C   sņ   t  } |  d k r$ t j |  } n  | j   } | | k	 sB t  t | |  t |  | d t } | j |  t | |  | j	 |  } | | k	 s t  | j
 |  } t | |  | | k	 sĶ t  | j |  } | | k	 sī t  d  S(   Ns   box-coxRx   (   R{   R8   R(  Rx   Rp   R   R(   RJ   Rd   R}   RK   R   (   RÉ  RĢ  RY   t
   X_originalRŹ  RŪ   Rå  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt    test_power_transformer_copy_TrueĪ  s     c         C   s  t  } |  d k r$ t j |  } n  | j   } | | k	 sB t  t | |  t |  | d t } | j |  t | |  | j	 |  } | | k s t  |  d k r½ t j |  } n  | j
 |  } | | k sŽ t  | j |  } | | k s’ t  d  S(   Ns   box-coxRx   (   R{   R8   R(  Rx   Rp   R   R(   RL   Rd   R}   RK   R   (   RÉ  RĢ  RY   Rš  RŹ  RŪ   Rå  (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt!   test_power_transformer_copy_Falseź  s"    c          C   sw   t  j t  }  d } t t | t |   t j    t j d  t |   } Wd  QXt |  d d } t	 | |  d  S(   Ns8   The default value of 'method' will change from 'box-cox't   ignoreRÉ  s   box-cox(
   R8   R(  RŖ   R   t   FutureWarningR)   R
  R  t   simplefilterR	   (   RY   t   future_warning_messaget   X_trans_defaultt   X_trans_boxcox(    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt#   test_power_transform_default_method	  s    	
(   s   box-coxg¹?(   s   box-coxg      ą?(   s   yeo-johnsong¹?(   s   yeo-johnsong      ą?(   s   yeo-johnsong      š?(Ā   t
   __future__R    R
  t   reRż   t   numpyR8   t   numpy.linalgRä  R  t   scipyR   R   t   distutils.versionR   Rö   t   sklearn.utilsR   t   sklearn.utils.testingR   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   t   sklearn.utils.sparsefuncsR   t   sklearn.preprocessing.dataR   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   t   sklearn.exceptionsR*   R+   t   sklearn.baseR,   t   sklearn.pipelineR-   t   sklearn.model_selectionR.   t   sklearn.svmR/   R0   t   sklearnR1   t	   load_irisR×   Rj   Rk   Rr   R   R   R½   Ræ   RĄ   R   RŖ   RI   Rz   R{   t   tolistR|   t   X_list_1colR3   R;   RB   R^   Rh   t   markt   parametrizeRJ   RL   t   intR   R   Rw   R   R   R   R£   R¦   R©   Rø   R»   RÅ   RŹ   RÕ   RŻ   Rä   Rå   Rč   Rņ   t   asarrayRo   Rm   Rł   Rü   R  R  R  R  R  R  R  R   R"  R$  R¾   R+  R0  R4  R7  R=  RD  RK  RR  R_  R`  Rc  Rf  Rg  Ri  Rk  Rl  Rm  Rn  Rp  Rs  Rt  Ru  Rw  Ry  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ł  (    (    (    sD   lib/python2.7/site-packages/sklearn/preprocessing/tests/test_data.pyt   <module>   sb  ""					!	$	)		(	4			2	.	.				)		(	@*		2	I				-		!!					?	D		-	#	
	-					"					!	1				"	:	1	0	1	0	7											$*
			(!$	
	
	
	
$'''