ó
‡ˆ\c           @   sq  d  d l  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 m Z d  d l m Z d  d l m Z e j d d ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  e j! j" d e e d e j# e d e d d d f ƒ j$ f g ƒ d „  ƒ Z% e j! j" d e e d e j# e d e d d d f ƒ j$ f g ƒ d „  ƒ Z& d „  Z' d „  Z( d e e f d  „  ƒ  YZ) d! e f d" „  ƒ  YZ* d# „  Z+ d$ e e f d% „  ƒ  YZ, e j! j" d& e- e. g ƒ d' „  ƒ Z/ d S((   iÿÿÿÿN(   t   clone(   t   BaseEstimator(   t   TransformerMixin(   t   DummyRegressor(   t   assert_raises(   t   assert_raises_regex(   t   assert_allclose(   t   assert_warns_message(   t   assert_no_warnings(   t   FunctionTransformer(   t   StandardScaler(   t   LinearRegressiont   Lasso(   t   datasets(   t   TransformedTargetRegressort   random_statei    c       	   C   sÔ   t  \ }  } t d t ƒ  d t ƒ  d t j d t j ƒ } t t d | j	 |  | ƒ t j
 | j d f ƒ } t d t ƒ  d t ƒ  ƒ } t t d | j	 |  | d | ƒt d t j ƒ } t t d	 | j	 |  | ƒ d  S(
   Nt	   regressort   transformert   funct   inverse_funcsE   'transformer' and functions 'func'/'inverse_func' cannot both be set.i    s:   fit\(\) got an unexpected keyword argument 'sample_weight't   sample_weights=   When 'func' is provided, 'inverse_func' must also be provided(   t   friedmanR   R   R
   t   npt   expt   logR   t
   ValueErrort   fitt   onest   shapeR   t	   TypeError(   t   Xt   yt   regrR   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt%   test_transform_target_regressor_error   s    				c       	   C   sš   t  \ }  } t d t ƒ  d t j d t j d t ƒ } t t d | j	 |  | ƒ t d t ƒ  d t j d t j ƒ } | j
 d t ƒ t | j	 |  | ƒ d  S(   NR   R   R   t   check_inversesM   The provided functions or transformer are not strictly inverse of each other.(   R   R   R   R   t   sqrtR   t   TrueR   t   UserWarningR   t
   set_paramst   FalseR   (   R   R   R    (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt*   test_transform_target_regressor_invertible2   s    		c         C   sC   t  j |  d d ƒ} t  j |  d d ƒ} t |  | | | ƒ d  S(   Nt   axisi    (   R   t   meant   stdR   (   R   t   y_predt   y_meant   y_std(    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt   _check_standard_scaled@   s    c         C   s   t  |  d | ƒ d  S(   Ni   (   R   (   R   R,   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt   _check_shifted_by_oneF   s    c          C   s.  t  \ }  } t d t ƒ  d t j d t j ƒ } | j |  | ƒ j |  ƒ } | j j	 | j
 d d ƒ ƒ j ƒ  } t t j | ƒ | ƒ t | | j j | j
 d d ƒ ƒ j ƒ  ƒ | j | j k sÈ t ‚ t | | j | j j |  ƒ ƒ ƒ t ƒ  j |  | j | ƒ ƒ } t | j j j ƒ  | j j ƒ  ƒ d  S(   NR   R   R   iÿÿÿÿi   (   R   R   R   R   R   R   R   t   predictt   transformer_t	   transformt   reshapet   squeezeR   t   inverse_transformR   t   AssertionErrorR   t
   regressor_R   t   coef_t   ravel(   R   R   R    R,   t   y_trant   lr(    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt)   test_transform_target_regressor_functionsJ   s    $"c          C   s0  t  d }  t j t  d t  d d d f ƒ j } t d t ƒ  d t j d t j ƒ } | j |  | ƒ j	 |  ƒ } | j
 j | ƒ } t t j | ƒ | ƒ t | | j
 j | ƒ ƒ | j | j k sÊ t ‚ t | | j | j j	 |  ƒ ƒ ƒ t ƒ  j |  | j | ƒ ƒ } t | j j j ƒ  | j j ƒ  ƒ d  S(   Ni    i   i   R   R   R   (   R   R   t   vstackt   TR   R   R   R   R   R1   R2   R3   R   R6   R   R7   R   R8   R   R9   R:   (   R   R   R    R,   R;   R<   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt5   test_transform_target_regressor_functions_multioutput[   s    
("s   X,yi   i   c   	      C   s/  t  d d „  d d „  d t ƒ } t d t ƒ  d | ƒ } | j |  | ƒ j |  ƒ } | j | j k sl t ‚ | j j	 | ƒ } t
 | | ƒ | j | j k s£ t ‚ t | | j j | ƒ j ƒ  ƒ t ƒ  } t | ƒ } | j |  | j | ƒ ƒ | j |  ƒ } t | | j | ƒ ƒ t | j j | j ƒ d  S(   NR   c         S   s   |  d S(   Ni   (    (   t   x(    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt   <lambda>u   s    R   c         S   s   |  d S(   Ni   (    (   RA   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyRB   v   s    t   validateR   R   (   R	   R'   R   R   R   R1   R   R7   R2   R3   R0   R   R6   R5   R    t   fit_transformR8   R9   (	   R   R   R   R    R,   R;   R<   t   transformer2t	   y_lr_pred(    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt.   test_transform_target_regressor_1d_transformerl   s$    					c   	      C   sŠ  t  ƒ  } t d t ƒ  d | ƒ } | j |  | ƒ j |  ƒ } | j | j k sT t ‚ | j d k rŠ | j j	 | j
 d d ƒ ƒ j ƒ  } n | j j	 | ƒ } t | | ƒ | j | j k sÁ t ‚ t | | j j | ƒ j ƒ  ƒ t ƒ  } t | ƒ } | j d k r2| j |  | j | j
 d d ƒ ƒ j ƒ  ƒ n | j |  | j | ƒ ƒ | j |  ƒ } t | | j | ƒ ƒ t | j j | j ƒ d  S(   NR   R   i   iÿÿÿÿ(   R
   R   R   R   R1   R   R7   t   ndimR2   R3   R4   R5   R/   R   R6   R    RD   R8   R9   (	   R   R   R   R    R,   R;   R<   RE   RF   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt.   test_transform_target_regressor_2d_transformerŒ   s(    		'	.c    	      C   sI  t  d }  t j t  d t  d d d f ƒ j } t ƒ  } t d t ƒ  d | ƒ } | j |  | ƒ j |  ƒ } | j	 | j	 k s† t
 ‚ | j j | ƒ } t | | ƒ | j	 | j	 k s½ t
 ‚ t | | j j | ƒ j ƒ  ƒ t ƒ  } t | ƒ } | j |  | j | ƒ ƒ | j |  ƒ } t | | j | ƒ ƒ t | j j | j ƒ d  S(   Ni    i   i   R   R   (   R   R   R>   R?   R
   R   R   R   R1   R   R7   R2   R3   R/   R   R6   R5   R    RD   R8   R9   (	   R   R   R   R    R,   R;   R<   RE   RF   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt:   test_transform_target_regressor_2d_transformer_multioutput®   s$    
(			c          C   sù   t  d }  t j t  d t  d d d g ƒ } d „  } d „  } t d | d | d t ƒ } | j |  | ƒ | j |  ƒ } | j d k s t ‚ d
 „  } t d | d | d t ƒ } | j |  | ƒ | j |  ƒ } | j d k sè t ‚ t	 | | ƒ d  S(   Ni    i   i   c         S   sR   t  j |  d  d  … d f d |  d  d  … d f d ƒ } | d  d  … t  j f S(   Ni    i   i   (   R   R#   t   newaxis(   R   t   out(    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR   Ì   s    ;c         S   s   |  S(   N(    (   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR   Ð   s    R   R   R"   id   c         S   s9   t  j |  d  d  … d f d |  d  d  … d f d ƒ S(   Ni    i   i   (   R   R#   (   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR   Ú   s    (   id   i   (   id   i   (
   R   R   t	   transposeR   R'   R   R1   R   R7   R   (   R   R   R   R   t   ttt   y_pred_2d_funct   y_pred_1d_func(    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt/   test_transform_target_regressor_multi_to_singleÈ   s     
%					t   DummyCheckerArrayTransformerc           B   s&   e  Z d d  „ Z d „  Z d „  Z RS(   c         C   s   t  | t j ƒ s t ‚ |  S(   N(   t
   isinstanceR   t   ndarrayR7   (   t   selfR   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR   è   s    c         C   s   t  | t j ƒ s t ‚ | S(   N(   RS   R   RT   R7   (   RU   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR3   ì   s    c         C   s   t  | t j ƒ s t ‚ | S(   N(   RS   R   RT   R7   (   RU   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR6   ð   s    N(   t   __name__t
   __module__t   NoneR   R3   R6   (    (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyRR   æ   s   	t   DummyCheckerListRegressorc           B   s   e  Z d d  „ Z d „  Z RS(   c         C   s1   t  | t ƒ s t ‚ t t |  ƒ j | | | ƒ S(   N(   RS   t   listR7   t   superRY   R   (   RU   R   R   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR   ÷   s    c         C   s+   t  | t ƒ s t ‚ t t |  ƒ j | ƒ S(   N(   RS   RZ   R7   R[   RY   R1   (   RU   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR1   û   s    N(   RV   RW   RX   R   R1   (    (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyRY   õ   s   c          C   s   t  \ }  } t d t ƒ  d t ƒ  d t ƒ } | j |  j ƒ  | j ƒ  ƒ | j |  j ƒ  ƒ t t	 | j |  | j ƒ  ƒ t t	 | j |  ƒ d  S(   NR   R   R"   (
   R   R   RR   RY   R'   R   t   tolistR1   R   R7   (   R   R   RN   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt.   test_transform_target_regressor_ensure_y_array   s    		t   DummyTransformerc           B   s8   e  Z d  Z d d „ Z d d „ Z d „  Z d „  Z RS(   s;   Dummy transformer which count how many time fit was called.i    c         C   s   | |  _  d  S(   N(   t   fit_counter(   RU   R_   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt   __init__  s    c         C   s   |  j  d 7_  |  S(   Ni   (   R_   (   RU   R   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR     s    c         C   s   | S(   N(    (   RU   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR3     s    c         C   s   | S(   N(    (   RU   R   (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR6     s    N(   RV   RW   t   __doc__R`   RX   R   R3   R6   (    (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyR^     s
   	R"   c         C   sP   t  \ } } t d t ƒ  d |  ƒ } | j | | ƒ | j j d k sL t ‚ d  S(   NR   R"   i   (   R   R   R^   R   R2   R_   R7   (   R"   R   R   t   ttr(    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt)   test_transform_target_regressor_count_fit  s
    (0   t   numpyR   t   pytestt   sklearn.baseR    R   R   t   sklearn.dummyR   t   sklearn.utils.testingR   R   R   R   R   t   sklearn.preprocessingR	   R
   t   sklearn.linear_modelR   R   t   sklearnR   t   sklearn.composeR   t   make_friedman1R   R!   R(   R/   R0   R=   R@   t   markt   parametrizeR>   R?   RG   RI   RJ   RQ   RR   RY   R]   R^   R'   R$   Rc   (    (    (    s@   lib/python2.7/site-packages/sklearn/compose/tests/test_target.pyt   <module>   sJ   						--			