ó
‡ˆ\c           @   s™  d  Z  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 m Z d d l 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" d d l# m$ Z$ m% Z% d d l& m' Z' d d l( m) Z) d d l* m+ Z+ d d l m, Z, d d l- m. Z. m/ Z/ m0 Z0 d d l1 m2 Z2 d d l1 m3 Z3 d d l4 m5 Z5 d d l6 m7 Z7 m8 Z8 e2 d ƒ Z9 e/ ƒ  Z: e9 j; e: j< j= ƒ Z> e: j? e> e: _? e: j< e> e: _< e. ƒ  Z@ e9 j; e@ j< j= ƒ Z> e@ j? e> e@ _? e@ j< e> e@ _< d „  ZA d  „  ZB d! „  ZC d" „  ZD d# e f d$ „  ƒ  YZE d% „  ZF d& „  ZG e jH jI d' ƒ e jH jI d( ƒ d) „  ƒ ƒ ZJ d* „  ZK d+ „  ZL d, „  ZM d- „  ZN d. „  ZO d/ „  ZP e jH jI d0 ƒ e jH jI d1 ƒ d2 „  ƒ ƒ ZQ d3 „  ZR d4 „  ZS d5 e f d6 „  ƒ  YZT d7 „  ZU d8 d9 „ ZV d: „  ZW d; „  ZX d< „  ZY d= „  ZZ d> „  Z[ d? „  Z\ e jH jI d' ƒ e jH jI d( ƒ d@ „  ƒ ƒ Z] e jH jI d' ƒ e jH jI d( ƒ dA „  ƒ ƒ Z^ dB „  Z_ dC „  Z` dD „  Za dE „  Zb dF „  Zc e jH jI d' ƒ e jH jI d( ƒ dG „  ƒ ƒ Zd d S(H   sE   
Testing for the bagging ensemble module (sklearn.ensemble.bagging).
iÿÿÿÿN(   t   BaseEstimator(   t   assert_array_equal(   t   assert_array_almost_equal(   t   assert_equal(   t   assert_raises(   t   assert_greater(   t   assert_less(   t   assert_false(   t   assert_warns(   t   assert_warns_message(   t   assert_raise_message(   t   DummyClassifiert   DummyRegressor(   t   GridSearchCVt   ParameterGrid(   t   BaggingClassifiert   BaggingRegressor(   t
   Perceptront   LogisticRegression(   t   KNeighborsClassifiert   KNeighborsRegressor(   t   DecisionTreeClassifiert   DecisionTreeRegressor(   t   SVCt   SVR(   t   SparseRandomProjection(   t   make_pipeline(   t   SelectKBest(   t   train_test_split(   t   load_bostont	   load_irist   make_hastie_10_2(   t   check_random_state(   t   _joblib(   t   FunctionTransformer(   t
   csc_matrixt
   csr_matrixi    c          C   sô   t  d ƒ }  t t j t j d |  ƒ\ } } } } t i d d g d 6d d d g d	 6t t g d
 6t t g d 6ƒ } xw d  t	 ƒ  t
 d d ƒ t ƒ  t ƒ  t d d ƒ g D]B } x9 | D]1 } t d | d |  |  j | | ƒ j | ƒ q· Wqª Wd  S(   Ni    t   random_stateg      à?g      ð?t   max_samplesi   i   i   t   max_featurest	   bootstrapt   bootstrap_featurest   tolgü©ñÒMbP?t   gammat   scalet   base_estimator(   R    R   t   irist   datat   targetR   t   Truet   Falset   NoneR   R   R   R   R   R   t   fitt   predict(   t   rngt   X_traint   X_testt   y_traint   y_testt   gridR-   t   params(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_classification;   s$    		c       
      s  d t  f ‡  f d †  ƒ  Y‰  t d ƒ }  t t j t j d |  ƒ\ } } } } i d d 6d d 6t d	 6t d
 6i d d 6d d 6t d	 6t d
 6i d d 6t d	 6t d
 6i d d 6t d	 6t d
 6g } xMt t	 g D]?} | | ƒ } | | ƒ } x| D]}	 x· d d d d g D]£ }
 t
 d ˆ  d d d d ƒ d d |	  j | | ƒ } t | |
 ƒ | ƒ } t
 d ˆ  d d d d ƒ d d |	  j | | ƒ } t | |
 ƒ | ƒ } t | | ƒ qWt | ƒ } g  | j D] } | j ^ qË} t g  | D] } | | k ^ qêƒ sõ t ‚ qõ WqÐ Wd  S(   Nt	   CustomSVCc              s   e  Z d  Z ‡  f d †  Z RS(   s7   SVC variant that records the nature of the training setc            s,   t  ˆ  |  ƒ j | | ƒ t | ƒ |  _ |  S(   N(   t   superR4   t   typet
   data_type_(   t   selft   Xt   y(   R>   (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyR4   X   s    (   t   __name__t
   __module__t   __doc__R4   (    (   R>   (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyR>   U   s   i    R%   g      à?R&   i   R'   R(   R)   g      ð?i   R5   t   predict_probat   predict_log_probat   decision_functionR-   R+   R,   t   decision_function_shapet   ovri   (   R   R    R   R.   R/   R0   R1   R2   R#   R$   R   R4   t   getattrR   R@   t   estimators_RA   t   allt   AssertionError(   R6   R7   R8   R9   R:   t   parameter_setst   sparse_formatt   X_train_sparset   X_test_sparseR<   t   ft   sparse_classifiert   sparse_resultst   dense_classifiert   dense_resultst   sparse_typet   it   typest   t(    (   R>   sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_sparse_classificationR   sT    		



				c          C   sí   t  d ƒ }  t t j d  t j d  d |  ƒ\ } } } } t i d d g d 6d d g d 6t t g d 6t t g d	 6ƒ } xk d  t	 ƒ  t
 ƒ  t ƒ  t d
 d ƒ g D]B } x9 | D]1 } t d | d |  |  j | | ƒ j | ƒ q° Wq£ Wd  S(   Ni    i2   R%   g      à?g      ð?R&   R'   R(   R)   R+   R,   R-   (   R    R   t   bostonR/   R0   R   R1   R2   R3   R   R   R   R   R   R4   R5   (   R6   R7   R8   R9   R:   R;   R-   R<   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_regression   s"    c             sñ  t  d ƒ }  t t j d  t j d  d |  ƒ\ } } } } d t f ‡  f d †  ƒ  Y‰  i d d 6d d	 6t d
 6t d 6i d d 6d d	 6t d
 6t d 6i d d	 6t d
 6t d 6i d d 6t d
 6t d 6g } xt t	 g D]} | | ƒ } | | ƒ } xð | D]è }	 t
 d ˆ  d d ƒ d d |	  j | | ƒ }
 |
 j | ƒ } t
 d ˆ  d d ƒ d d |	  j | | ƒ j | ƒ } t | ƒ } g  |
 j D] } | j ^ q‹} t | | ƒ t g  | D] } | | k ^ q·ƒ sØt ‚ t | | ƒ qý WqØ Wd  S(   Ni    i2   R%   t	   CustomSVRc              s   e  Z d  Z ‡  f d †  Z RS(   s7   SVC variant that records the nature of the training setc            s,   t  ˆ  |  ƒ j | | ƒ t | ƒ |  _ |  S(   N(   R?   R4   R@   RA   (   RB   RC   RD   (   Ra   (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyR4   °   s    (   RE   RF   RG   R4   (    (   Ra   (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyRa   ­   s   g      à?R&   i   R'   R(   R)   g      ð?i   R-   R+   R,   i   (   R    R   R_   R/   R0   R   R1   R2   R#   R$   R   R4   R5   R@   RN   RA   R   RO   RP   (   R6   R7   R8   R9   R:   RQ   RR   RS   RT   R<   RV   RW   RY   RZ   R[   R\   R]   (    (   Ra   sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_sparse_regression¦   sN    	



		+t   DummySizeEstimatorc           B   s   e  Z d  „  Z RS(   c         C   s&   | j  d |  _ t j | ƒ |  _ d  S(   Ni    (   t   shapet   training_size_R!   t   hasht   training_hash_(   RB   RC   RD   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyR4   ä   s    (   RE   RF   R4   (    (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyRc   â   s   c    	   	   C   s„  t  d ƒ }  t t j t j d |  ƒ\ } } } } t ƒ  j | | ƒ } t d t ƒ  d d d t d |  ƒ j | | ƒ } t	 | j
 | | ƒ | j
 | | ƒ ƒ t d t ƒ  d d d t d |  ƒ j | | ƒ } t | j
 | | ƒ | j
 | | ƒ ƒ t d t ƒ  d t ƒ j | | ƒ } g  } x= | j D]2 } | j | j d k sHt ‚ | j | j ƒ q&Wt t | ƒ ƒ t | ƒ k s€t ‚ d  S(   Ni    R%   R-   R&   g      ð?R(   (   R    R   R_   R/   R0   R   R4   R   R2   R   t   scoreR1   R   Rc   RN   Re   Rd   RP   t   appendRg   t   lent   set(	   R6   R7   R8   R9   R:   R-   t   ensemblet   training_hasht	   estimator(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_bootstrap_samplesé   s0    		c       	   C   s  t  d ƒ }  t t j t j d |  ƒ\ } } } } t d t ƒ  d d d t d |  ƒ j | | ƒ } x8 | j	 D]- } t
 t j j d t j | ƒ j d ƒ qm Wt d t ƒ  d d d t d |  ƒ j | | ƒ } x8 | j	 D]- } t t j j d t j | ƒ j d ƒ qØ Wd  S(   Ni    R%   R-   R'   g      ð?R)   i   (   R    R   R_   R/   R0   R   R   R2   R4   t   estimators_features_R   Rd   t   npt   uniqueR1   R   (   R6   R7   R8   R9   R:   Rl   t   features(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_bootstrap_features  s     		+s&   ignore: Default solver will be changeds    ignore: Default multi_class willc          C   s\  t  d ƒ }  t t j t j d |  ƒ\ } } } } t j d d d d ƒ t d t ƒ  d |  ƒ j	 | | ƒ } t
 t j | j | ƒ d d ƒt j t | ƒ ƒ ƒ t
 | j | ƒ t j | j | ƒ ƒ ƒ t d t ƒ  d |  d	 d
 ƒ j	 | | ƒ } t
 t j | j | ƒ d d ƒt j t | ƒ ƒ ƒ t
 | j | ƒ t j | j | ƒ ƒ ƒ Wd  QXd  S(   Ni    R%   t   dividet   ignoret   invalidR-   t   axisi   R&   i   (   R    R   R.   R/   R0   Rq   t   errstateR   R   R4   R   t   sumRH   t   onesRj   t   expRI   R   (   R6   R7   R8   R9   R:   Rl   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_probability(  s(    		c          C   sð   t  d ƒ }  t t j t j d |  ƒ\ } } } } x¶ t ƒ  t d d ƒ g D]œ } t d | d d d t d	 t d |  ƒ j	 | | ƒ } | j
 | | ƒ } t t | | j ƒ d
 ƒ t t t d | d d d t d	 t d |  ƒ j	 | | ƒ qL Wd  S(   Ni    R%   R+   R,   R-   t   n_estimatorsid   R(   t	   oob_scoregš™™™™™¹?i   (   R    R   R.   R/   R0   R   R   R   R1   R4   Rh   R   t   abst
   oob_score_R   t   UserWarning(   R6   R7   R8   R9   R:   R-   t   clft
   test_score(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_oob_score_classificationJ  s(    			c          C   sÓ   t  d ƒ }  t t j t j d |  ƒ\ } } } } t d t ƒ  d d d t d t d |  ƒ j | | ƒ } | j	 | | ƒ } t
 t | | j ƒ d ƒ t t t d t ƒ  d d	 d t d t d |  ƒ j | | ƒ d  S(
   Ni    R%   R-   R~   i2   R(   R   gš™™™™™¹?i   (   R    R   R_   R/   R0   R   R   R1   R4   Rh   R   R€   R   R   R‚   (   R6   R7   R8   R9   R:   Rƒ   R„   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_oob_score_regressionh  s&    			c          C   s¡   t  d ƒ }  t t j t j d |  ƒ\ } } } } t d t ƒ  d d d t d t d |  ƒ j | | ƒ } t ƒ  j | | ƒ } t	 | j
 | ƒ | j
 | ƒ ƒ d  S(   Ni    R%   R-   R~   i   R(   R)   (   R    R   R_   R/   R0   R   R   R2   R4   R   R5   (   R6   R7   R8   R9   R:   t   clf1t   clf2(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_single_estimator…  s    		c          C   s™  t  j t  j }  } t ƒ  } t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t t | d d ƒj |  | ƒ t t	 t | ƒ j |  | ƒ d	 ƒ ƒ d  S(
   NR&   iÿÿÿÿg        g       @iè  t   foobarR'   i   RJ   (
   R.   R/   R0   R   R   t
   ValueErrorR   R4   R   t   hasattr(   RC   RD   t   base(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt
   test_error—  s.    	c          C   s  t  d ƒ }  t t j t j d |  ƒ\ } } } } t t ƒ  d d d d ƒj | | ƒ } | j d d ƒ | j	 | ƒ } | j d d ƒ | j	 | ƒ } t
 | | ƒ t t ƒ  d d d d ƒj | | ƒ } | j	 | ƒ } t
 | | ƒ t t d d d	 d
 ƒ d d d d ƒj | | ƒ } | j d d ƒ | j | ƒ }	 | j d d ƒ | j | ƒ }
 t
 |	 |
 ƒ t j | t j | j d d f ƒ f ƒ } t t d j | j d | j d ƒ | j | ƒ t t d d d	 d
 ƒ d d d d ƒj | | ƒ } | j | ƒ } t
 |	 | ƒ d  S(   Ni    R%   t   n_jobsi   i   i   R+   R,   RK   RL   sj   Number of features of the model must match the input. Model n_features is {0} and input n_features is {1} (   R    R   R.   R/   R0   R   R   R4   t
   set_paramsRH   R   R   RJ   Rq   t   hstackt   zerosRd   R
   R‹   t   format(   R6   R7   R8   R9   R:   Rl   t   y1t   y2t   y3t
   decisions1t
   decisions2t   X_errt
   decisions3(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_parallel_classification¸  sH    			+	c    	      C   sì   t  d ƒ }  t t j t j d |  ƒ\ } } } } t t ƒ  d d d d ƒj | | ƒ } | j d d ƒ | j	 | ƒ } | j d d ƒ | j	 | ƒ } t
 | | ƒ t t ƒ  d d d d ƒj | | ƒ } | j	 | ƒ } t
 | | ƒ d  S(   Ni    R%   R   i   i   i   (   R    R   R_   R/   R0   R   R   R4   R   R5   R   (	   R6   R7   R8   R9   R:   Rl   R”   R•   R–   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_parallel_regressionï  s"    		s    ignore: The default of the `iid`s"   ignore: You should specify a valuec          C   si   t  j t  j }  } d | | d k <i d	 d 6d
 d 6} t t t d d ƒ ƒ | d d ƒj |  | ƒ d  S(   Ni   i   R~   t   base_estimator__CR+   R,   t   scoringt   roc_auc(   i   i   (   i   i   (   R.   R/   R0   R   R   R   R4   (   RC   RD   t
   parameters(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_gridsearch	  s    

c          C   sÞ  t  d ƒ }  t t j t j d |  ƒ\ } } } } t d  d d d d ƒj | | ƒ } t | j	 t
 ƒ so t ‚ t t
 ƒ  d d d d ƒj | | ƒ } t | j	 t
 ƒ s® t ‚ t t d d ƒ d d d d ƒj | | ƒ } t | j	 t ƒ só t ‚ t t j t j d |  ƒ\ } } } } t d  d d d d ƒj | | ƒ } t | j	 t ƒ sVt ‚ t t ƒ  d d d d ƒj | | ƒ } t | j	 t ƒ s•t ‚ t t d d ƒ d d d d ƒj | | ƒ } t | j	 t ƒ sÚt ‚ d  S(	   Ni    R%   R   i   R*   gü©ñÒMbP?R+   R,   (   R    R   R.   R/   R0   R   R3   R4   t
   isinstancet   base_estimator_R   RP   R   R_   R   R   R   (   R6   R7   R8   R9   R:   Rl   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_base_estimator  s>    						c          C   sh   t  t t d d ƒ t ƒ  ƒ d d ƒ}  |  j t j t j ƒ t |  d j	 d d j
 t ƒ sd t ‚ d  S(   Nt   ki   R'   i   i    iÿÿÿÿ(   R   R   R   R   R4   R.   R/   R0   R¢   t   stepsR%   t   intRP   (   Rn   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_bagging_with_pipelineL  s
    	t   DummyZeroEstimatorc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   t  j | ƒ |  _ |  S(   N(   Rq   Rr   t   classes_(   RB   RC   RD   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyR4   V  s    c         C   s!   |  j  t j | j d d t ƒS(   Ni    t   dtype(   Rª   Rq   R’   Rd   R§   (   RB   RC   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyR5   Z  s    (   RE   RF   R4   R5   (    (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyR©   T  s   	c          C   s|   t  t ƒ  ƒ }  t d ƒ } |  j t j t j ƒ j t j ƒ t t	 |  j t j t j d | j
 d d t j j d ƒƒd  S(   Ni    t   sample_weighti
   t   size(   R   R©   R    R4   R.   R/   R0   R5   R   R‹   t   randintRd   (   Rn   R6   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt1   test_bagging_sample_weight_unsupported_but_passed^  s
    "i*   c         C   s	  t  d d d d ƒ \ } } d  } xq d d g D]c } | d  k r^ t d | d |  d t ƒ } n | j d | ƒ | j | | ƒ t t | ƒ | ƒ q. Wt d d d |  d t ƒ } | j | | ƒ t t	 g  | D] } | j
 ^ qÍ ƒ t	 g  | D] } | j
 ^ qì ƒ ƒ d  S(	   Nt	   n_samplesi   R%   i   i   i
   R~   t
   warm_start(   R   R3   R   R1   R   R4   R   Rj   R2   Rk   R%   (   R%   RC   RD   t   clf_wsR~   t	   clf_no_wst   tree(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_warm_startg  s    	"c          C   sj   t  d d d d ƒ \ }  } t d d d t ƒ } | j |  | ƒ | j d d ƒ t t | j |  | ƒ d  S(	   NR°   i   R%   i   R~   i   R±   i   (   R   R   R1   R4   R   R   R‹   (   RC   RD   Rƒ   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt$   test_warm_start_smaller_n_estimators  s
    c          C   s³   t  d d d d ƒ \ }  } t |  | d d ƒ\ } } } } t d d d t d d	 ƒ } | j | | ƒ | j | ƒ } | d
 7} t t d | j | | ƒ t | | j | ƒ ƒ d  S(   NR°   i   R%   i   i+   R~   i   R±   iS   g      ð?s;   Warm-start fitting without increasing n_estimators does not(	   R   R   R   R1   R4   R5   R	   R‚   R   (   RC   RD   R7   R8   R9   R:   Rƒ   t   y_pred(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt"   test_warm_start_equal_n_estimatorsˆ  s    !
c    
      C   sá   t  d d d d ƒ \ }  } t |  | d d ƒ\ } } } } t d d d t d d	 ƒ } | j | | ƒ | j d d
 ƒ | j | | ƒ | j | ƒ } t d d
 d t d d	 ƒ } | j | | ƒ | j | ƒ }	 t | |	 ƒ d  S(   NR°   i   R%   i   i+   R~   i   R±   iE  i
   (	   R   R   R   R1   R4   R   R5   R2   R   (
   RC   RD   R7   R8   R9   R:   R²   R”   Rƒ   R•   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_warm_start_equivalenceš  s    !		c          C   sP   t  d d d d ƒ \ }  } t d d d t d t ƒ } t t | j |  | ƒ d  S(	   NR°   i   R%   i   R~   i   R±   R   (   R   R   R1   R   R‹   R4   (   RC   RD   Rƒ   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt$   test_warm_start_with_oob_score_fails¯  s    c          C   sƒ   t  d d d d ƒ \ }  } t d d d t ƒ } | j |  | ƒ | j d t d t d d	 ƒ | j |  | ƒ t t t | d
 ƒ d  S(   NR°   iÐ  R%   i   R~   i2   R   R±   id   R   (	   R   R   R1   R4   R   R2   R   t   AttributeErrorRM   (   RC   RD   Rƒ   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt$   test_oob_score_removed_on_warm_start¶  s    c       
   C   sq   t  d d d d ƒ \ }  } t t ƒ  d d d d d t d d ƒ} t | j |  | ƒ j | j |  | ƒ j ƒ d  S(	   NR°   iÈ   R%   i   R&   g      à?R'   R   (   R   R   R   R1   R   R4   R   (   RC   RD   t   bagging(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_oob_score_consistencyÂ  s
    	c       
   C   s9  t  d d d d ƒ \ }  } t t ƒ  d d d d d d d t ƒ} | j |  | ƒ | j } | j } | j } t t	 | ƒ t	 | ƒ ƒ t t	 | d	 ƒ t	 |  ƒ d
 ƒ t | d	 j
 j d ƒ d	 } | | } | | } | | }	 |  | d  d  … | f }
 | | } |	 j } |	 j |
 | ƒ |	 j } t | | ƒ d  S(   NR°   iÈ   R%   i   R&   g      à?R'   R(   i    i   R[   (   R   R   R   R2   R4   t   estimators_samples_Rp   RN   R   Rj   R«   t   kindt   coef_R   (   RC   RD   R½   t   estimators_samplest   estimators_featurest
   estimatorst   estimator_indext   estimator_samplest   estimator_featuresRn   R7   R9   t
   orig_coefst	   new_coefs(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_estimators_samplesÌ  s*    				!



		c          C   sý   t  ƒ  }  |  j |  j } } t t d d ƒ t ƒ  ƒ } t d | d d d d ƒ } | j | | ƒ | j d j	 d d	 j
 j ƒ  } | j d } | j d } | j d } | | d  d  … | f }	 | | }
 | j |	 |
 ƒ t | j	 d d	 j
 | ƒ d  S(
   Nt   n_componentsi   R-   R&   g      à?R%   i    iÿÿÿÿi   (   R   R/   R0   R   R   R   R   R4   RN   R¦   RÁ   t   copyR¿   Rp   R   (   R.   RC   RD   t   base_pipelineRƒ   t   pipeline_estimator_coefRn   t   estimator_samplet   estimator_featureR7   R9   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt%   test_estimators_samples_deterministicò  s     		!
c          C   sj   d }  t  d d |  d d ƒ \ } } t t ƒ  d |  d d d d ƒ} | j | | ƒ t | j |  ƒ d  S(	   Nid   R°   i   R%   i   R&   R'   g      à?(   R   R   R   R4   R   t   _max_samples(   R&   RC   RD   R½   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_max_samples_consistency  s    c          C   sä   d }  d g d g d g g d } d d d g d } d d d g d } d d d g d } t  d	 t d
 |  ƒ j | | ƒ j } t  d	 t d
 |  ƒ j | | ƒ j } t  d	 t d
 |  ƒ j | | ƒ j } t | | g | | g ƒ d  S(   Ni   iÿÿÿÿi    i   t   At   Bt   Ci   R   R%   (   R   R1   R4   R   R   (   R%   RC   t   Y1t   Y2t   Y3t   x1t   x2t   x3(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt!   test_set_oob_score_label_encoding  s    c         C   s-   |  j  ƒ  j d ƒ }  d |  t j |  ƒ <|  S(   Nt   floati    (   RÌ   t   astypeRq   t   isfinite(   RC   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   replace-  s    c       	   C   s–  t  j d d d g d d  d g d t  j d g d t  j d g d t  j d g g ƒ }  t  j d d d d d g ƒ t  j d d d g d d d g d d d g d d d g d d d g g ƒ g } xÒ | D]Ê } t ƒ  } t t t	 d t
 ƒ| ƒ } | j |  | ƒ j |  ƒ t | ƒ } | j |  | ƒ j |  ƒ } t | j | j ƒ t ƒ  } t | ƒ } t t | j |  | ƒ t | ƒ } t t | j |  | ƒ qÄ Wd  S(	   Ni   i   i   i   i   i	   i   t   validate(   Rq   t   arrayR3   t   nant   inft   NINFR   R   R"   Rá   R2   R4   R5   R   R   Rd   R   R‹   (   RC   t   y_valuesRD   t	   regressort   pipelinet   bagging_regressort   y_hat(    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt*   test_bagging_regressor_with_missing_inputs3  s6    			c          C   sX  t  j d d d g d d  d g d t  j d g d t  j d g d t  j d g g ƒ }  t  j d d d d d g ƒ } t ƒ  } t t t	 d t
 ƒ| ƒ } | j |  | ƒ j |  ƒ t | ƒ } | j |  | ƒ | j |  ƒ } t | j | j ƒ | j |  ƒ | j |  ƒ t ƒ  } t | ƒ } t t | j |  | ƒ t | ƒ } t t | j |  | ƒ d  S(   Ni   i   i   i   i   Râ   (   Rq   Rã   R3   Rä   Rå   Ræ   R   R   R"   Rá   R2   R4   R5   R   R   Rd   RI   RH   R   R‹   (   RC   RD   t
   classifierRé   t   bagging_classifierRë   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt+   test_bagging_classifier_with_missing_inputsY  s.    			c          C   se   t  j d d g d d g g ƒ }  t  j d d g ƒ } t t ƒ  d d d d ƒ} | j |  | ƒ d  S(	   Ni   i   i   i   i    R'   g333333Ó?R%   (   Rq   Rã   R   R   R4   (   RC   RD   R½   (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   test_bagging_small_max_featuresx  s
    !(e   RG   t   pytestt   numpyRq   t   sklearn.baseR    t   sklearn.utils.testingR   R   R   R   R   R   R   R   R	   R
   t   sklearn.dummyR   R   t   sklearn.model_selectionR   R   t   sklearn.ensembleR   R   t   sklearn.linear_modelR   R   t   sklearn.neighborsR   R   t   sklearn.treeR   R   t   sklearn.svmR   R   t   sklearn.random_projectionR   t   sklearn.pipelineR   t   sklearn.feature_selectionR   R   t   sklearn.datasetsR   R   R   t   sklearn.utilsR    R!   t   sklearn.preprocessingR"   t   scipy.sparseR#   R$   R6   R.   t   permutationR0   R­   t   permR/   R_   R=   R^   R`   Rb   Rc   Ro   Rt   t   markt   filterwarningsR}   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ð   (    (    (    sB   lib/python2.7/site-packages/sklearn/ensemble/tests/test_bagging.pyt   <module>   sš   				>		<	'	!				!	7		2	
									
%				&	