ó
‡ˆ\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 Z d d l	 m
 Z
 d d l m Z d d l m Z m Z d d	 l m Z d d
 l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z 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, e e g Z- d d g d d g d d g d d g d d g d d g g Z. d d d d d d g Z/ d d g d d g d  d g g Z0 d d d g Z1 e j2 j3 d! ƒ Z4 e
 j5 ƒ  Z6 e4 j7 e6 j8 j9 ƒ Z: e6 j; e: e6 _; e6 j8 e: e6 _8 e
 j< ƒ  Z= e4 j7 e= j8 j9 ƒ Z: e= j; e: e= _; e= j8 e: e= _8 d" „  Z> e j? j@ d# d$ eA eB f ƒ e j? j@ d% ds ƒ d( „  ƒ ƒ ZC d) „  ZD d* „  ZE d+ „  ZF d, „  ZG e j? j@ d# d$ eA eB f ƒ e j? j@ d% dt ƒ d- „  ƒ ƒ ZH d. „  ZI e j? j@ d# d$ eA eB f ƒ e j? j@ d% du ƒ e j? j@ d2 dv ƒ d5 „  ƒ ƒ ƒ ZJ d6 „  ZK e j? j@ d# d$ eA eB f ƒ e j? j@ d2 dw ƒ e j? j@ d7 dx ƒ d8 „  ƒ ƒ ƒ ZM d9 „  ZN d: „  ZO d; „  ZP d< „  ZQ d= „  ZR d> „  ZS d? „  ZT d@ „  ZU e j? jV dA „  ƒ ZW dB „  ZX dC „  ZY dD „  ZZ e j? j@ dE e- ƒ dF „  ƒ Z[ dG „  Z\ dH „  Z] dI „  Z^ dJ „  Z_ dK „  Z` dL „  Za dM „  Zb dN „  Zc dO „  Zd dP „  Ze dQ „  Zf dR „  Zg e j? j@ dS e- ƒ dT „  ƒ Zh e j? j@ dS e- ƒ dU „  ƒ Zi e j? j@ dS e- ƒ dV „  ƒ Zj e j? j@ dS e- ƒ dW „  ƒ Zk e j? j@ dS e- ƒ dX „  ƒ Zl e j? j@ dS e- ƒ dY „  ƒ Zm e j? j@ dS e- ƒ dZ „  ƒ Zn e j? j@ dS e- ƒ d[ „  ƒ Zo e j? j@ dS e- ƒ d\ „  ƒ Zp e j? j@ dS e- ƒ d] „  ƒ Zq e j? j@ dS e- ƒ d^ „  ƒ Zr d_ „  Zs e j? j@ dS e- ƒ d` „  ƒ Zt da „  Zu db „  Zv dc „  Zw dd „  Zx e j? j@ de e- ƒ df „  ƒ Zy e j? j@ de e- ƒ dg „  ƒ Zz e j? j@ de e- ƒ dh „  ƒ Z{ di „  Z| dj „  Z} dk „  Z~ dl „  Z dm „  Z€ e) e j? j@ dn e e f ƒ e j? j@ do e e e f ƒ dp „  ƒ ƒ ƒ Z dq „  Z‚ dr „  Zƒ d S(y   sP   
Testing for the gradient boosting module (sklearn.ensemble.gradient_boosting).
iÿÿÿÿN(   t
   csr_matrix(   t
   csc_matrix(   t
   coo_matrix(   t   datasets(   t   clone(   t   make_classificationt   fetch_california_housing(   t   GradientBoostingClassifier(   t   GradientBoostingRegressor(   t   ZeroEstimator(   t   predict_stages(   t   mean_squared_error(   t   train_test_split(   t   check_random_statet
   tosequence(   t   assert_almost_equal(   t   assert_array_almost_equal(   t   assert_array_equal(   t   assert_equal(   t   assert_greater(   t   assert_less(   t   assert_raises(   t   assert_raise_message(   t   assert_warns(   t   assert_warns_message(   t   skip_if_32bit(   t   DataConversionWarning(   t   NotFittedErroriþÿÿÿi   i   i   i    c      	   C   sÆ   t  d | d d d d d |  ƒ } t t | j t ƒ | j t t ƒ t | j t ƒ t	 ƒ t
 d t | j ƒ ƒ | j d  | j d } t j | d k ƒ s£ t ‚ | j t ƒ } t
 | j d
 ƒ d  S(   Nt   losst   n_estimatorsi
   t   random_statei   t   presortiÿÿÿÿg        i   (   i   i
   i   (   R   R   t
   ValueErrort   predictt   Tt   fitt   Xt   yR   t   true_resultR   t   lent   estimators_t   train_score_t   npt   anyt   AssertionErrort   applyt   shape(   R   R   t   clft   deviance_decreaset   leaves(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   check_classification_toy>   s    R   t   autoR   t   deviancet   exponentialc         C   s   t  |  | ƒ d  S(   N(   R2   (   R   R   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_classification_toyP   s    c          C   sž  t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d	 d ƒ j t t ƒ t  t t d	 d ƒ j t t ƒ t  t t d	 d
 ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d
 ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d i  ƒ j t t ƒ t  t d „  ƒ t  t d „  t d d d d g ƒ d t t f }  t t d j	 |  ƒ t d d ƒ j t t ƒ d  S(   NR   i    iÿÿÿÿt   learning_rateg        g      ð¿R   t   foobart   min_samples_splitgš™™™™™ñ?t   min_samples_leaft   min_weight_fraction_leafg333333ã?t	   subsamplegš™™™™™¹¿t	   max_deptht   initc           S   s
   t  ƒ  j S(   N(   R   t   feature_importances_(    (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   <lambda>‰   s    c         S   s   t  d d ƒ j |  | ƒ S(   NR   R4   (   R   R#   (   R$   R%   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyR@      s   R3   s1   'presort' should be in {}. Got 'invalid' instead.R   t   invalid(
   R   R    R   R#   R$   R%   t   Truet   FalseR   t   format(   t   allowed_presort(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt    test_classifier_parameter_checksV   sb    


c          C   sÒ   t  t d t d d d d ƒ j t t ƒ t  t d t d d d d ƒ j t t ƒ t  t d t d d	 ƒ j t t ƒ t  t d
 t d d	 ƒ j t t ƒ d t t f }  t  t d j |  ƒ t d d	 ƒ j t t ƒ d  S(   Ns'   alpha must be in (0.0, 1.0) but was 1.2R   t   hubert   alphag333333ó?t   quantiles^   Invalid value for max_features: 'invalid'. Allowed string values are 'auto', 'sqrt' or 'log2'.t   max_featuresRA   sJ   n_iter_no_change should either be None or an integer. 'invalid' was passedt   n_iter_no_changeR3   s1   'presort' should be in {}. Got 'invalid' instead.R   (	   R   R    R   R#   R$   R%   RB   RC   RD   (   RE   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_regressor_parameter_checks™   s$    	
	
	
	
c           C   s¾   t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ t  t t d d ƒ j t t ƒ d  S(   NR   t   lst   ladRI   RG   R4   R5   (   R   R    R   R#   R$   R%   R   (    (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_loss_function²   s    c   
      C   s  t  j d d d d ƒ \ } } | d  | d } } | d  | d } } t d d d d	 d
 d d | d d d d ƒ } | j | | ƒ d | j | | ƒ }	 t |	 d ƒ t d d d d	 d
 d d | d d d d d d d |  ƒ } | j | | ƒ d | j | | ƒ }	 t |	 d ƒ d  S(   Nt	   n_samplesià.  R   i   iÐ  R   id   R9   i   R=   R   R7   g      ð?i    g
×£p=
·?iÈ   R<   g      à?R   g{®Gáz´?(   R   t   make_hastie_10_2R   R#   t   scoreR   (
   R   R   R$   R%   t   X_traint   X_testt   y_traint   y_testt   gbrtt
   error_rate(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   check_classification_syntheticÁ   s"    	c         C   s   t  |  | ƒ d  S(   N(   RY   (   R   R   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_classification_syntheticÚ   s    c   
      C   s  t  j t t j ƒ ƒ } d  } xõ d  | d | f D]à } t d d d | d d d | d d d	 d
 d |  ƒ } t t | j	 t j
 ƒ | j t j
 t j d | ƒ| j t j
 ƒ } t | j d ƒ | j	 t j
 ƒ } t t j | ƒ }	 t |	 d ƒ | d  k	 rt | | ƒ n  | } q2 Wd  S(   Ni   R   id   R   R=   i   R<   R9   R   i   R   t   sample_weightiú  g      @(   iú  id   (   R*   t   onesR'   t   bostont   targett   NoneR   R   R    R!   t   dataR#   R-   R   R.   R   R   R   (
   R   R   R<   R\   t   last_y_predR[   R/   R1   t   y_predt   mse(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   check_bostonà   s*    	RM   RN   RG   R<   g      ð?g      à?c         C   s   t  |  | | ƒ d  S(   N(   Rd   (   R   R   R<   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_bostonþ   s    c         C   sŽ   t  d d d d d d d | d |  ƒ } | j t j t j d	 | ƒ| j t j t j ƒ } t | d
 ƒ | j t j ƒ } t | j	 d ƒ d  S(   NR   id   R   R4   R   i   R<   R   R[   gÍÌÌÌÌÌì?i–   i   (   i–   id   i   (
   R   R#   t   irisR`   R^   RR   R   R-   R   R.   (   R   R<   R[   R/   RR   R1   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt
   check_iris  s    	R[   c         C   s;   | d k r' t  j t t j ƒ ƒ } n  t |  | | ƒ d  S(   Ni   (   R*   R\   R'   Rf   R^   Rg   (   R   R<   R[   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt	   test_iris  s    c          C   s6  t  d ƒ }  i d d 6d d 6d d 6d d	 6d
 d 6} t j d d d |  d d ƒ \ } } | d  | d  } } | d | d } } xX t t f D]J } t d | ƒ }	 |	 j | | ƒ t | |	 j | ƒ ƒ }
 t	 |
 d ƒ q Wt j
 d d d |  ƒ \ } } | d  | d  } } | d | d } } x_ t t f D]Q } | | d <t |   }	 |	 j | | ƒ t | |	 j | ƒ ƒ }
 t	 |
 d ƒ q3Wt j d d d |  ƒ \ } } | d  | d  } } | d | d } } x_ t t f D]Q } | | d <t |   }	 |	 j | | ƒ t | |	 j | ƒ ƒ }
 t	 |
 d ƒ qÝWd  S(   Ni   id   R   i   R=   i   R9   gš™™™™™¹?R7   RM   R   RP   i°  R   t   noiseg      ð?iÈ   R   g      @g     š@g¸…ëQ¸Ž?(   R   R   t   make_friedman1RB   RC   R   R#   R   R!   R   t   make_friedman2t   make_friedman3(   R   t   regression_paramsR$   R%   RS   RU   RT   RV   R   R/   Rc   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_regression_synthetic  s@    


c          C   s   t  j t j d t  j ƒ}  t  j t j d t  j ƒ} x` t t f D]R } t d d d d d d d d	 d
 | ƒ } | j	 |  | ƒ t
 | d ƒ sC t ‚ qC Wd  S(   Nt   dtypeR   id   R=   i   R9   i   R   i   R   R?   (   R*   t   arrayR]   R`   t   float32R^   RB   RC   R   R#   t   hasattrR,   (   R$   R%   R   R/   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_feature_importancesK  s    	c          C   sÈ   t  d d d d ƒ }  t t |  j t ƒ |  j t t ƒ t |  j	 t ƒ t
 ƒ |  j t ƒ } t j | d k ƒ sx t ‚ t j | d k ƒ s“ t ‚ |  j j | j d d ƒ d d ƒ} t | t
 ƒ d  S(	   NR   id   R   i   g        g      ð?t   axisi    (   R   R   R    t   predict_probaR"   R#   R$   R%   R   R!   R&   R*   t   allR,   t   classes_t   taket   argmax(   R/   t   y_probaRb   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_probability_logW  s    $c       	   C   sÓ   t  d d d d ƒ }  t t |  j t t d d g ƒ t  d d d d ƒ }  t t |  j t t d d g t t ƒ d d g ƒd d d d d d g } t  d d d d ƒ }  d } t t | |  j t t d | ƒd  S(   NR   id   R   i   i    R[   st   y contains 1 class after sample_weight trimmed classes with zero weights, while a minimum of 2 classes are required.(   R   R   R    R#   R$   R%   R'   R   (   R/   t   weightt   msg(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_check_inputsj  s     c          C   s™  t  d d d d ƒ }  |  j t t ƒ t j d d g ƒ d  d  … t j f } t t |  j	 | ƒ t j g  g ƒ } t t |  j	 | ƒ t j d d d g ƒ d  d  … t j f } t t |  j	 | ƒ t
 d d d d ƒ }  |  j t t j t t ƒ ƒ ƒ t j d d g ƒ d  d  … t j f } t t |  j	 | ƒ t j g  g ƒ } t t |  j	 | ƒ t j d d d g ƒ d  d  … t j f } t t |  j	 | ƒ d  S(   NR   id   R   i   g      ð?g       @g      @(   R   R#   R$   R%   R*   Rp   t   newaxisR   R    R!   R   t   rngt   randR'   (   R/   t   x(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_check_inputs_predictz  s     (+(+c          C   sÄ   t  j d d d d ƒ \ }  } t |  ƒ } t d d d d ƒ } | j |  | ƒ t j | j ƒ j d d ƒ } t	 t
 d t | j | | j | ƒ t j |  ƒ } t	 t
 d t | j | | j | ƒ d  S(	   NRP   id   R   i   R   iÿÿÿÿs3   When X is a sparse matrix, a CSR format is expecteds    X should be C-ordered np.ndarray(   R   RQ   R   R   R#   R*   t   zerosR.   t   reshapeR   R    R
   R(   R7   t   asfortranarray(   R‚   R%   t   x_sparse_cscR/   RR   t	   x_fortran(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt    test_check_inputs_predict_stages•  s    c       	   C   s¥   t  d d d d d d ƒ }  t t |  j t t ƒ t  d d d d d t t d ƒ d ƒ }  t t |  j t t ƒ t  d d d d d d ƒ }  t t |  j t t ƒ d  S(   NR   id   R   i   RJ   i    gš™™™™™¹¿(   R   R   R    R#   R$   R%   R'   (   R/   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_check_max_features¨  s    		c          C   sÀ   t  j d d d d ƒ \ }  } |  d  |  d } } | d  | d } } t d d d d	 d
 d d d d d d d ƒ } | j | | ƒ | j | | j | ƒ ƒ } | d k  s¼ t d | ƒ ‚ d  S(   NRP   ià.  R   i   iÐ  R   id   R9   i   R=   i   R7   gš™™™™™¹?RJ   g      à?s   GB failed with deviance %.4f(   R   RQ   R   R#   t   loss_t   decision_functionR,   (   R$   R%   RS   RT   RU   RV   RW   R4   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_max_feature_regression·  s    c          C   sõ   t  ƒ  }  |  j |  j } } t | | d d ƒ\ } } } } t d d d d d d d	 d
 d d ƒ } | j | | ƒ t j | j ƒ d d d … } g  | D] }	 |  j	 |	 ^ qš }
 |
 d d k sÉ t
 ‚ t |
 d d !ƒ d d d h k sñ t
 ‚ d S(   s  Test that Gini importance is calculated correctly.

    This test follows the example from [1]_ (pg. 373).

    .. [1] Friedman, J., Hastie, T., & Tibshirani, R. (2001). The elements
       of statistical learning. New York: Springer series in statistics.
    R   i    R   RG   R7   gš™™™™™¹?t   max_leaf_nodesi   R   id   Niÿÿÿÿt   MedInci   i   t	   Longitudet   AveOccupt   Latitude(   R   R`   R^   R   R   R#   R*   t   argsortR?   t   feature_namesR,   t   set(   t
   californiaR$   R%   RS   RT   RU   RV   t   regt
   sorted_idxt   st   sorted_features(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt"   test_feature_importance_regressionÆ  s    		!	 c          C   sÅ  t  j d d d d ƒ \ }  } |  j \ } } |  d  } | d  } t d d d d ƒ } | j | | ƒ t | j t t j	 | ƒ ƒ ƒ t
 d d d d ƒ } | j | | ƒ t | j | ƒ t
 d d d d	 ƒ } | j | | ƒ t | j t | d	 ƒ ƒ t
 d d d d
 ƒ } | j | | ƒ t | j t t j	 | ƒ ƒ ƒ t
 d d d d ƒ } | j | | ƒ t | j t t j | ƒ ƒ ƒ t
 d d d d |  j d ƒ } | j | | ƒ t | j d ƒ d  S(   NRP   ià.  R   i   iÐ  R   RJ   R3   g333333Ó?t   sqrtt   log2g{®Gáz„?(   R   RQ   R.   R   R#   R   t   max_features_t   intR*   Rœ   R   R   (   R$   R%   t   _t
   n_featuresRS   RU   RW   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_max_feature_autoã  s.    

c             sÂ   t  j d d d d d d ƒ \ }  } |  d  | d  } } |  d } t ƒ  ‰  t t ‡  f d †  | ƒ ˆ  j | | ƒ ˆ  j | ƒ } x* ˆ  j | ƒ D] } t | j	 | j	 ƒ q” Wt
 | | ƒ d  S(	   NRP   i°  R   i   Ri   g      ð?iÈ   c            s   t  j ˆ  j |  ƒ d t  j ƒS(   NRo   (   R*   t   fromitert   staged_predictt   float64(   R$   (   R/   (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyR@     s   (   R   Rj   R   R   R    R#   R!   R¤   R   R.   R   (   R$   R%   RS   RU   RT   Rb   (    (   R/   sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_staged_predict  s    
	c             s&  t  j d d d d ƒ \ }  } |  d  | d  } } |  d | d } } t d d ƒ ‰  t t ‡  f d †  | ƒ ˆ  j | | ƒ x* ˆ  j | ƒ D] } t | j | j ƒ q Wt	 ˆ  j
 | ƒ | ƒ xF ˆ  j | ƒ D]5 } t | j d	 | j d	 ƒ t d
 | j d ƒ qÓ Wt ˆ  j | ƒ | ƒ d  S(   NRP   i°  R   i   iÈ   R   i   c            s   t  j ˆ  j |  ƒ d t  j ƒS(   NRo   (   R*   R£   t   staged_predict_probaR¥   (   R$   (   R/   (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyR@   $  s   i    i   (   R   RQ   R   R   R   R#   R¤   R   R.   R   R!   R§   R   Ru   (   R$   R%   RS   RU   RT   RV   Rb   t   staged_proba(    (   R/   sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_staged_predict_proba  s    t	   Estimatorc         C   s  t  j j d ƒ } | j d d ƒ } d | d  d  … d f j t  j ƒ d } |  ƒ  } | j | | ƒ x” d d d	 g D]ƒ } t | d
 | d  ƒ } | d  k r¥ qw n  t	 j
 d t ƒ  t | | ƒ ƒ } Wd  QXd | d (t  j | d d k ƒ sw t ‚ qw Wd  S(   Ni    t   sizei
   i   i   i   R!   RŒ   Ru   t   staged_t   record(   i
   i   (   R*   t   randomt   RandomStatet   uniformt   astypeRŸ   R#   t   getattrR_   t   warningst   catch_warningsRB   t   listRv   R,   (   Rª   R€   R$   R%   t	   estimatort   funct   staged_funct   staged_result(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_staged_functions_defensive7  s    *	c          C   sÞ   t  d d d d ƒ }  |  j t t ƒ t |  j t ƒ t ƒ t d t	 |  j
 ƒ ƒ y d d  l } Wn t k
 r€ d d  l } n X| j |  d | j ƒ} d  }  | j | ƒ }  t |  j t ƒ t ƒ t d t	 |  j
 ƒ ƒ d  S(   NR   id   R   i   iÿÿÿÿt   protocol(   R   R#   R$   R%   R   R!   R"   R&   R   R'   R(   t   cPicklet   ImportErrort   picklet   dumpst   HIGHEST_PROTOCOLR_   t   loads(   R/   R¾   t   serialized_clf(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_serializationJ  s    c          C   s¿   t  d d d d ƒ }  t t |  j t t j t t ƒ ƒ ƒ t d d d d ƒ }  |  j t t j t t ƒ ƒ ƒ |  j	 t
 j d ƒ g ƒ t t j d d t j ƒ|  j	 t
 j d ƒ g ƒ ƒ d  S(   NR   id   R   i   i   Ro   (   i   (   R   R   R    R#   R$   R*   R\   R'   R   R!   R€   R   R   R¥   (   R/   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_degenerate_targets^  s    %c          C   s¯   t  d d d d d d d d d	 d
 ƒ }  |  j t j t j ƒ |  j t j ƒ } t  d d d d d d d	 d
 ƒ } | j t j t j ƒ | j t j ƒ } t | | d d ƒd  S(   NR   id   R   RI   R=   i   RH   g      à?R   i   RN   t   decimal(   R   R#   R]   R`   R^   R!   R   (   t   clf_quantilet
   y_quantilet   clf_ladt   y_lad(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_quantile_lossl  s    	c          C   sy   t  d d d d ƒ }  t t t t ƒ ƒ } |  j t | ƒ t |  j t	 ƒ t t t t
 ƒ ƒ ƒ t d t |  j ƒ ƒ d  S(   NR   id   R   i   (   R   R   t   mapt   strR%   R#   R$   R   R!   R"   R&   R   R'   R(   (   R/   t   symbol_y(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_symbol_labels}  s
    %c          C   s   t  d d d d ƒ }  t j t d t j ƒ} |  j t | ƒ t |  j t	 ƒ t j t
 d t j ƒƒ t d t |  j ƒ ƒ d  S(   NR   id   R   i   Ro   (   R   R*   t   asarrayR%   Rq   R#   R$   R   R!   R"   R&   R   R'   R(   (   R/   t   float_y(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_float_class_labelsˆ  s    c          C   sŒ   t  d d d d ƒ }  t j t d t j ƒ} | d  d  … t j f } t t |  j t	 | ƒ t
 |  j t ƒ t ƒ t d t |  j ƒ ƒ d  S(   NR   id   R   i   Ro   (   R   R*   RÏ   R%   t   int32R   R   R   R#   R$   R   R!   R"   R&   R   R'   R(   (   R/   t   y_(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_shape_y”  s    c          C   s´  t  j t ƒ }  t d d d d ƒ } | j |  t ƒ t | j t ƒ t	 ƒ t
 d t | j ƒ ƒ t  j t ƒ }  t d d d d ƒ } | j |  t ƒ t | j t ƒ t	 ƒ t
 d t | j ƒ ƒ t  j t d t  j ƒ} t  j | ƒ } t d d d d ƒ } | j t | ƒ t | j t ƒ t	 ƒ t
 d t | j ƒ ƒ t  j t d t  j ƒ} t  j | ƒ } t d d d d ƒ } | j t | ƒ t | j t ƒ t	 ƒ t
 d t | j ƒ ƒ d  S(   NR   id   R   i   Ro   (   R*   R†   R$   R   R#   R%   R   R!   R"   R&   R   R'   R(   t   ascontiguousarrayRÏ   RÒ   (   t   X_R/   RÓ   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_mem_layout£  s,    c          C   sx   t  d d d d d d ƒ }  |  j t t ƒ t |  j j d d ƒ t |  j d  t j	 d	 d
 d d d g ƒ d d ƒd  S(   NR   id   R   i   R<   g      à?i    i   gR¸…ëQÈ?g333333Ã?g¸…ëQ¸¾?g¸…ëQ¸¾¿g)\Âõ(¼¿RÅ   i   (
   R   R#   R$   R%   R   t   oob_improvement_R.   R   R*   Rp   (   R/   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_oob_improvementÀ  s    	c              sE   t  d d d d d d ƒ ‰  ˆ  j t t ƒ t t ‡  f d †  ƒ d  S(   NR   id   R   i   R<   g      ð?c              s   ˆ  j  S(   N(   RØ   (    (   R/   (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyR@   Ñ  s    (   R   R#   R$   R%   R   t   AttributeError(    (    (   R/   sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_oob_improvement_raiseÌ  s    	c       	   C   sz   t  d d d d d d d d ƒ }  |  j t j t j ƒ |  j t j t j ƒ } t | d	 ƒ t |  j j	 d
 |  j
 ƒ d  S(   NR   id   R   R4   R   i   R<   g      à?gÍÌÌÌÌÌì?i    (   R   R#   Rf   R`   R^   RR   R   R   RØ   R.   R   (   R/   RR   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_oob_multilcass_irisÔ  s    c       	   C   sî   d d l  m }  d d  l } | j } |  ƒ  | _ t d d d d d d d d	 ƒ } | j t t ƒ | j } | | _ | j d
 ƒ | j	 ƒ  j
 ƒ  } d j d g d g d ƒ d } t | | ƒ t d „  | j ƒ  Dƒ ƒ } t d | ƒ d  S(   Niÿÿÿÿ(   t	   cStringIOR   id   R   i   t   verboseR<   gš™™™™™é?i    t    s   %10ss   %16si   t   Iters
   Train Losss   OOB Improves   Remaining Timec         s   s   |  ] } d  Vq d S(   i   N(    (   t   .0t   l(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pys	   <genexpr>÷  s    i
   i	   (   Rà   s
   Train Losss   OOB Improves   Remaining Timei   (   t   sklearn.externals.six.movesRÝ   t   syst   stdoutR   R#   R$   R%   t   seekt   readlinet   rstript   joinR   t   sumt	   readlines(   t   StringIORä   t
   old_stdoutR/   t   verbose_outputt   headert   true_headert   n_lines(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_verbose_outputã  s     			c          C   sè   d d l  m }  d d  l } | j } |  ƒ  | _ t d d d d d d ƒ } | j t t ƒ | j } | | _ | j d	 ƒ | j	 ƒ  j
 ƒ  } d
 j d g d g d ƒ d } t | | ƒ t d „  | j ƒ  Dƒ ƒ } t d | ƒ d  S(   Niÿÿÿÿ(   RÝ   R   id   R   i   RÞ   i   i    Rß   s   %10ss   %16sRà   s
   Train Losss   Remaining Timec         s   s   |  ] } d  Vq d S(   i   N(    (   Rá   Râ   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pys	   <genexpr>  s    (   Rà   s
   Train Losss   Remaining Time(   Rã   RÝ   Rä   Rå   R   R#   R$   R%   Ræ   Rç   Rè   Ré   R   Rê   Rë   (   Rì   Rä   Rí   R/   Rî   Rï   Rð   Rñ   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_more_verbose_outputü  s     				t   Clsc         C   sþ   t  j d d d d ƒ \ } } |  d d d d ƒ } | j | | ƒ |  d d d d d t ƒ } | j | | ƒ | j d d ƒ | j | | ƒ |  t k r¼ t | j | ƒ | j | ƒ ƒ n> t | j | ƒ | j | ƒ ƒ t | j	 | ƒ | j	 | ƒ ƒ d  S(	   NRP   id   R   i   R   iÈ   R=   t
   warm_start(
   R   RQ   R#   RB   t
   set_paramsR   R   R!   R   Ru   (   Rô   R$   R%   t   estt   est_ws(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_warm_start  s    "c         C   s±   t  j d d d d ƒ \ } } |  d d d d ƒ } | j | | ƒ |  d d d d d t ƒ } | j | | ƒ | j d d ƒ | j | | ƒ t | j | ƒ | j | ƒ ƒ d  S(	   NRP   id   R   i   R   i,  R=   Rõ   (   R   RQ   R#   RB   Rö   R   R!   (   Rô   R$   R%   R÷   Rø   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_warm_start_n_estimators+  s    c         C   sÂ   t  j d d d d ƒ \ } } |  d d d d d t ƒ } | j | | ƒ | j d d d d	 ƒ | j | | ƒ t | j d j d ƒ x5 t d d ƒ D]$ } t | j | d
 f j d	 ƒ q– Wd  S(   NRP   id   R   i   R   R=   Rõ   in   i   i    i   (   i    i    (	   R   RQ   RB   R#   Rö   R   R(   R=   t   range(   Rô   R$   R%   R÷   t   i(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_warm_start_max_depth:  s    c         C   s±   t  j d d d d ƒ \ } } |  d d d d ƒ } | j | | ƒ |  d d d d d t ƒ } | j | | ƒ | j d t ƒ | j | | ƒ t | j | ƒ | j | ƒ ƒ d  S(   NRP   id   R   i   R   R=   Rõ   (   R   RQ   R#   RB   Rö   RC   R   R!   (   Rô   R$   R%   R÷   t   est_2(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_warm_start_clearI  s    c         C   ss   t  j d d d d ƒ \ } } |  d d d d d t ƒ } | j | | ƒ | j d d ƒ t t | j | | ƒ d  S(	   NRP   id   R   i   R   R=   Rõ   i    (   R   RQ   RB   R#   Rö   R   R    (   Rô   R$   R%   R÷   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt!   test_warm_start_zero_n_estimatorsX  s
    c         C   ss   t  j d d d d ƒ \ } } |  d d d d d t ƒ } | j | | ƒ | j d d ƒ t t | j | | ƒ d  S(	   NRP   id   R   i   R   R=   Rõ   ic   (   R   RQ   RB   R#   Rö   R   R    (   Rô   R$   R%   R÷   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt$   test_warm_start_smaller_n_estimatorsb  s
    c         C   s›   t  j d d d d ƒ \ } } |  d d d d ƒ } | j | | ƒ t | ƒ } | j d | j d t ƒ | j | | ƒ t | j | ƒ | j | ƒ ƒ d  S(   NRP   id   R   i   R   R=   Rõ   (	   R   RQ   R#   R   Rö   R   RB   R   R!   (   Rô   R$   R%   R÷   t   est2(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt"   test_warm_start_equal_n_estimatorsl  s    c         C   s¼   t  j d d d d ƒ \ } } |  d d d d d t ƒ } | j | | ƒ | j d d d	 d
 ƒ | j | | ƒ t | j d  t j d ƒ ƒ t | j d d k t j d d t j	 ƒƒ d  S(   NRP   id   R   i   R   R=   Rõ   in   R<   g      à?iöÿÿÿg        i
   Ro   (
   R   RQ   RB   R#   Rö   R   RØ   R*   R„   t   bool(   Rô   R$   R%   R÷   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_warm_start_oob_switchz  s    c         C   sÅ   t  j d d d d ƒ \ } } |  d d d d d d	 d d ƒ } | j | | ƒ |  d d d d d d	 d d d
 t ƒ } | j | | ƒ | j d d ƒ | j | | ƒ t | j d  | j d  ƒ d  S(   NRP   id   R   i   R   iÈ   R=   R<   g      à?Rõ   (   R   RQ   R#   RB   Rö   R   RØ   (   Rô   R$   R%   R÷   Rø   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_warm_start_oob‰  s    	c   
      C   s\  t  j d d d d ƒ \ } } t t t g } |  d d d d d d d d d	 t ƒ } | j | | ƒ | j | ƒ | j d d
 ƒ | j | | ƒ | j | ƒ } xµ | D]­ } | | ƒ } |  d d d d d d d d d	 t ƒ } | j | | ƒ | j | ƒ | j d d
 ƒ | j | | ƒ | j | ƒ }	 t	 | j
 d  | j
 d  ƒ t	 | |	 ƒ q§ Wd  S(   NRP   id   R   i   R   R=   R<   g      à?Rõ   iÈ   (   R   RQ   R    R   R   RB   R#   R!   Rö   R   RØ   (
   Rô   R$   R%   t   sparse_matrix_typet	   est_denset   y_pred_denset   sparse_constructort   X_sparset
   est_sparset   y_pred_sparse(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_warm_start_sparse›  s*    c         C   sæ   t  j d d d d ƒ \ } } |  d d d d d t ƒ } |  d d d d d t ƒ } | j | | ƒ | j d d ƒ | j | | ƒ t j | ƒ } | j | | ƒ | j d d ƒ | j | | ƒ t | j | ƒ | j | ƒ ƒ d  S(   NRP   id   R   i   R   Rõ   i   (	   R   RQ   RB   R#   Rö   R*   R†   R   R!   (   Rô   R$   R%   t   est_ct   est_fortrant	   X_fortran(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_warm_start_fortran¸  s    c         C   s   |  d k r t  St Sd S(   s$   Returns True on the 10th iteration. i	   N(   RB   RC   (   Rü   R÷   t   locals(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   early_stopping_monitorÌ  s    c         C   s  t  j d d d d ƒ \ } } |  d d d d d d d d	 ƒ } | j | | d
 t ƒt | j d ƒ t | j j d d ƒ t | j j d d ƒ t | j	 j d d ƒ | j
 d d ƒ | j | | ƒ t | j d ƒ t | j j d d ƒ t | j j d d ƒ |  d d d d d d d d	 d t ƒ } | j | | d
 t ƒt | j d ƒ t | j j d d ƒ t | j j d d ƒ t | j	 j d d ƒ | j
 d d d t ƒ | j | | ƒ t | j d ƒ t | j j d d ƒ t | j j d d ƒ t | j	 j d d ƒ d  S(   NRP   id   R   i   R   i   R=   R<   g      à?t   monitori    i
   i   Rõ   (   R   RQ   R#   R  R   R   R(   R.   R)   RØ   Rö   RB   RC   (   Rô   R$   R%   R÷   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_monitor_early_stoppingÔ  s2    !	c       
   C   sµ   d d l  m }  t j d d d d ƒ \ } } d } t d d	 d
 d  d d d | d ƒ } | j | | ƒ | j d j } t	 | j
 | ƒ t	 | j | j |  k j d | d ƒ d  S(   Niÿÿÿÿ(   t	   TREE_LEAFRP   id   R   i   i   R   i   R=   RŽ   i    (   i    i    (   t   sklearn.tree._treeR  R   RQ   R   R_   R#   R(   t   tree_R   R=   t   children_leftR.   (   R  R$   R%   t   kR÷   t   tree(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_complete_classificationø  s    c       
   C   s   d d l  m }  d } t d d d d  d d d	 | d ƒ } | j t j t j ƒ | j d j	 } t
 | j | j |  k j d
 | d ƒ d  S(   Niÿÿÿÿ(   R  i   R   i   R=   R   i   RŽ   i    (   iÿÿÿÿi    (   R  R  R   R_   R#   R]   R`   R^   R(   R  R   R  R.   (   R  R  R÷   R  (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_complete_regression  s    c       	   C   s   t  d d d d d d d t ƒ  ƒ }  |  j t j t j ƒ |  j t j ƒ } t t j | ƒ } t | d d d	 ƒt  d d d d d d d d
 ƒ }  |  j t j t j ƒ |  j t j ƒ } t t j | ƒ } t | d d d	 ƒt  d d d d d d d d ƒ }  t	 t
 |  j t j t j ƒ d  S(   NR   i   R=   i   R   R>   g     €@@RÅ   i    t   zeroR8   (   R   R	   R#   R]   R`   R^   R!   R   R   R   R    (   R÷   Rb   Rc   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_zero_estimator_reg  s    c       	   C   sX  t  j }  t j t  j ƒ } t d d d d d d d t ƒ  ƒ } | j |  | ƒ t | j	 |  | ƒ d ƒ t d d d d d d d d ƒ } | j |  | ƒ t | j	 |  | ƒ d ƒ | d	 k } d | | <d	 | | <t d d d d d d d d ƒ } | j |  | ƒ t | j	 |  | ƒ d ƒ t d d d d d d d d
 ƒ } t
 t | j |  | ƒ d  S(   NR   i   R=   i   R   R>   g¸…ëQ¸î?R  i    R8   (   Rf   R`   R*   Rp   R^   R   R	   R#   R   RR   R   R    (   R$   R%   R÷   t   mask(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_zero_estimator_clf+  s(    	
t   GBEstimatorc         C   s¤   t  j d d d d ƒ \ } } d } |  d d d | ƒ j | | ƒ } | j d	 j } t | j d ƒ |  d d ƒ j | | ƒ } | j d
 j } t | j d ƒ d  S(   NRP   id   R   i   i   R=   RŽ   i    (   i    i    (   i    i    (   R   RQ   R#   R(   R  R   R=   R   (   R#  R$   R%   R  R÷   R  (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_max_leaf_nodes_max_depthI  s    !c         C   ss   t  j d d d d ƒ \ } } |  d d ƒ } t t d | j | | ƒ } x$ | j j D] } t | j d ƒ qU Wd  S(   NRP   id   R   i   t   min_impurity_splitgš™™™™™¹?t   min_impurity_decrease(	   R   RQ   R   t   DeprecationWarningR#   R(   t   flatR   R%  (   R#  R$   R%   R÷   R  (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_min_impurity_splitY  s    	c         C   sh   t  j d d d d ƒ \ } } |  d d ƒ } | j | | ƒ x$ | j j D] } t | j d ƒ qJ Wd  S(   NRP   id   R   i   R&  gš™™™™™¹?(   R   RQ   R#   R(   R(  R   R&  (   R#  R$   R%   R÷   R  (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_min_impurity_decreasef  s
    c          C   s—   t  d d d t ƒ }  |  j d d g d d g g d d g ƒ t |  j j d d ƒ |  j d d g d d g g d d g ƒ t |  j j d d ƒ d  S(   NR   i
   Rõ   i    i   i   i   (   R   RB   R#   R   R(   R.   (   R/   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt%   test_warm_start_wo_nestimators_changer  s
    ((c          C   s  t  d d d d d d ƒ }  t t |  j t ƒ |  j t t ƒ t |  j	 t ƒ t
 ƒ |  j t ƒ } t j | d k ƒ s~ t ‚ t j | d k ƒ s™ t ‚ |  j t ƒ j ƒ  } t | d  d  … d f d d t j d	 | ƒ ƒ |  j j | j d
 d ƒ d
 d ƒ} t | t
 ƒ d  S(   NR   R5   R   id   R   i   g        g      ð?iþÿÿÿRt   i    (   R   R   R    Ru   R"   R#   R$   R%   R   R!   R&   R*   Rv   R,   RŒ   t   ravelR   t   expRw   Rx   Ry   (   R/   Rz   RR   Rb   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_probability_exponential|  s    $c          C   s·   d d g d d g d d g d d g g }  d d d d g } d d d d g } xb d D]Z } t  d d d	 d
 d | ƒ } | j |  | d | ƒt | j d d g g ƒ d d ƒ qU Wd  S(   Ni   i    RG   RM   RN   RI   R7   g      ð?R   i   R   R[   g      à?(   RG   RM   RN   RI   (   R   R#   R   R!   (   R$   R%   R[   R   t   gb(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt*   test_non_uniform_weights_toy_edge_case_reg“  s    				c          C   s°   d d g d d g d d g d d g g }  d d d d g } d d d d g } x[ d	 D]S } t  d d d | ƒ } | j |  | d | ƒt | j d d g g ƒ d g ƒ qU Wd  S(
   Ni   i    R4   R5   R   i   R   R[   (   R4   R5   (   R   R#   R   R!   (   R$   R%   R[   R   R/  (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt*   test_non_uniform_weights_toy_edge_case_clf¢  s    			c      	   C   sb  |  d d d d d d ƒ j  | | ƒ } |  d d d d d d d t ƒ j  | | ƒ } |  d d d d d d d d ƒ 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 |  t ƒ r^t | j | ƒ | j | ƒ ƒ t | j	 | ƒ | j	 | ƒ ƒ t | j | ƒ | j | ƒ ƒ t | j	 | ƒ | j	 | ƒ ƒ t | j
 | ƒ | j
 | ƒ ƒ t | j
 | ƒ | j
 | ƒ ƒ t t j | j | ƒ ƒ t j | j | ƒ ƒ ƒ n  d  S(	   NR   i
   R   i    R=   i   R   R3   (   R#   RC   R   R-   R!   R?   t
   isinstanceR   Ru   t   predict_log_probaRŒ   R*   Rp   t   staged_decision_function(   t   EstimatorClassR$   R  R%   t   denset   sparseR3   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   check_sparse_input°  s@    	
	
R5  t   sparse_matrixc      	   C   s]   t  j d d d d d d d d ƒ \ } } | d  d  … d f } t |  | | | ƒ | ƒ d  S(	   NR   i    RP   i2   R¡   i   t	   n_classesi   (   R   t   make_multilabel_classificationR8  (   R5  R9  R%   R$   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   test_sparse_inputÚ  s    c          C   s²  t  d d d d ƒ \ }  } t d d d d d d	 d
 d d d ƒ } t d d d d d d	 d
 d d d ƒ } t |  | d d ƒ\ } } } } x• | d	 d f | d	 d f | d d f | d d f f D]] \ } }	 }
 | j d |	 ƒ | j | | ƒ t | j |
 ƒ | j | | ƒ d k sÁ t	 ‚ qÁ Wt d d d d	 d
 d d d ƒ } | j |  | ƒ t d d d d	 d
 d d d ƒ } | j |  | ƒ | j d k s™t	 ‚ | j d k s®t	 ‚ d  S(   NRP   iè  R   i    R   RK   i
   R7   gš™™™™™¹?R=   i   i*   i   i   gü©ñÒMbP?i$   i   t   tolgffffffæ?id   iÈ   (
   R   R   R   R   Rö   R#   R   t   n_estimators_RR   R,   (   R$   R%   t   gbct   gbrRS   RT   RU   RV   R÷   R=  t   early_stop_n_estimators(    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt%   test_gradient_boosting_early_stoppingé  s2    		"c          C   sº  t  d d d d ƒ \ }  } t d d d d d	 d
 d d
 d d d d ƒ } t | ƒ j d	 d ƒ } t | ƒ j d d ƒ } t d d d d d d
 d d d	 d
 d d ƒ } t | ƒ j d	 d ƒ } t | ƒ j d d ƒ } t |  | d d ƒ\ } }	 }
 } | j | |
 ƒ | j | |
 ƒ | j | j k s.t ‚ | j | |
 ƒ | j | |
 ƒ | j | j k sft ‚ | j | |
 ƒ | j | |
 ƒ | j | j k  sžt ‚ | j | j k  s¶t ‚ d  S(   NRP   iè  R   i    R   id   RK   i
   t   validation_fractiongš™™™™™¹?R7   R=   i   i*   g333333Ó?i   (	   R   R   R   Rö   R   R   R#   R>  R,   (   R$   R%   R?  t   gbc2t   gbc3R@  t   gbr2t   gbr3RS   RT   RU   RV   (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt*   test_gradient_boosting_validation_fraction  s2    		!(   R4   R5   (   R4   R5   (   RM   RN   RG   (   g      ð?g      à?(   g      ð?g      à?(   Ni   („   t   __doc__R³   t   numpyR*   t   scipy.sparseR    R   R   t   pytestt   sklearnR   t   sklearn.baseR   t   sklearn.datasetsR   R   t   sklearn.ensembleR   R   t"   sklearn.ensemble.gradient_boostingR	   t#   sklearn.ensemble._gradient_boostingR
   t   sklearn.metricsR   t   sklearn.model_selectionR   t   sklearn.utilsR   R   t   sklearn.utils.testingR   R   R   R   R   R   R   R   R   R   R   t   sklearn.exceptionsR   R   t   GRADIENT_BOOSTING_ESTIMATORSR$   R%   R"   R&   R®   R¯   R€   t   load_bostonR]   t   permutationR^   R«   t   permR`   t	   load_irisRf   R2   t   markt   parametrizeRB   RC   R6   RF   RL   RO   RY   RZ   Rd   Re   Rg   R_   Rh   Rn   Rs   R{   R~   Rƒ   R‰   RŠ   R   t   networkR›   R¢   R¦   R©   Rº   RÃ   RÄ   RÊ   RÎ   RÑ   RÔ   R×   RÙ   RÛ   RÜ   Rò   Ró   Rù   Rú   Rý   Rÿ   R   R  R  R  R  R  R  R  R  R  R  R   R"  R$  R)  R*  R+  R.  R0  R1  R8  R<  RB  RH  (    (    (    sL   lib/python2.7/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyt   <module>   sì   	<!	!	C			!	$	$	.								"														

	$					
				*	-	#