ó
‡ˆ\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 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 Z d d d g Z e j ƒ  Z e j ƒ  Z d „  Z d „  Z d „  Z d „  Z e j j d ƒ e d „  ƒ ƒ Z e j j d ƒ e d „  ƒ ƒ Z  e j j d ƒ e d „  ƒ ƒ Z! d S(   s,   
Testing for the partial dependence module.
iÿÿÿÿN(   t   assert_array_equal(   t   assert_raises(   t   if_matplotlib(   t   partial_dependence(   t   plot_partial_dependence(   t   GradientBoostingClassifier(   t   GradientBoostingRegressor(   t   datasetsiþÿÿÿi   i   i   c          C   sê   t  d d d d ƒ }  |  j t t ƒ t |  d g d t d d ƒ\ } } | j d k s^ t ‚ | d j d d	 k s{ t ‚ t j t ƒ } t j	 | d  d  … d f ƒ } t |  d g d
 | ƒ\ } } | d  k sÙ t ‚ t | | ƒ d  S(   Nt   n_estimatorsi
   t   random_statei   i    t   Xt   grid_resolutioni   i   t   grid(   i   i   (   R   t   fitR
   t   yR   t   shapet   AssertionErrort   npt   asarrayt   uniquet   NoneR    (   t   clft   pdpt   axest   X_R   t   pdp_2(    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pyt"   test_partial_dependence_classifier   s    $c          C   sµ   t  d d d d ƒ }  |  j t j t j ƒ d } |  j } t |  d g d t j d | ƒ\ } } | j | | f k s| t ‚ t	 | ƒ d k s” t ‚ | d j d | k s± t ‚ d  S(	   NR   i
   R	   i   i   i    R
   R   (
   R   R   t   irist   datat   targett
   n_classes_R   R   R   t   len(   R   R   t	   n_classesR   R   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pyt"   test_partial_dependence_multiclass3   s    	$c          C   s”   t  d d d d ƒ }  |  j t j t j ƒ d } t |  d g d t j d | ƒ\ } } | j d | f k ss t ‚ | d j d | k s t ‚ d  S(	   NR   i
   R	   i   i   i    R
   R   (   R   R   t   bostonR   R   R   R   R   (   R   R   R   R   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pyt!   test_partial_dependence_regressorB   s    $c       	   C   s  t  d d d d ƒ }  |  j t t ƒ t t t |  d g d d  d d  ƒt t t |  d g d d d g d t ƒt t t i  d g d t ƒt t t t  ƒ  d g d t ƒt t t |  d g d t ƒt t t |  d	 g d t ƒt j	 j
 d d
 d ƒ } t t t |  d g d | ƒd  S(   NR   i
   R	   i   i    R   R
   iÿÿÿÿid   i   (   R   R   R
   R   R   t
   ValueErrorR   R   R   t   randomt   rand(   R   R   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pyt   test_partial_dependecy_inputO   s    				s(   ignore: Using or importing the ABCs fromc          C   sv  t  d d d d ƒ }  |  j t j t j ƒ d } t |  t j d d d g d | d t j ƒ\ } } t | ƒ d	 k s| t ‚ t	 d
 „  | Dƒ ƒ s˜ t ‚ t |  t j d d d g d | d t j ƒ\ } } t | ƒ d	 k sã t ‚ t	 d „  | Dƒ ƒ sÿ t ‚ t j j
 ƒ  } t |  t j d d d g d | d | ƒ\ } } t | ƒ d	 k sVt ‚ t	 d „  | Dƒ ƒ srt ‚ d  S(   NR   i
   R	   i   i   i    R   t   feature_namesi   c         s   s   |  ] } | j  Vq d  S(   N(   t   has_data(   t   .0t   ax(    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pys	   <genexpr>x   s    t   CRIMt   ZNc         s   s   |  ] } | j  Vq d  S(   N(   R)   (   R*   R+   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pys	   <genexpr>   s    c         s   s   |  ] } | j  Vq d  S(   N(   R)   (   R*   R+   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pys	   <genexpr>Š   s    (   i    i   (   R,   R-   (   R,   R-   (   R   R   R"   R   R   R   R(   R   R   t   allt   tolist(   R   R   t   figt   axsR(   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pyt   test_plot_partial_dependencek   s*    		c          C   sþ   t  d d d d ƒ }  t t t |  t d g ƒ |  j t t ƒ t t t |  t j t ƒ d  d  … d  d … f d g ƒ t t t i  t d g ƒ t t t |  t d g ƒ t t t |  t d g ƒ t t t |  t d g ƒ t t t |  t i d	 d
 6g ƒ d  S(   NR   i
   R	   i   i    iÿÿÿÿid   t   foobart   bart   foo(	   R   R   R$   R   R
   R   R   R   t   array(   R   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pyt"   test_plot_partial_dependence_input   s     		/					c       
   C   s…  t  d d d d ƒ }  |  j t j t j ƒ d } t |  t j d d g d d d | ƒ\ } } t | ƒ d	 k sv t ‚ t d
 „  | Dƒ ƒ s’ t ‚ t j	 t j } t  d d d d ƒ }  |  j t j | ƒ d } t |  t j d d g d d d | ƒ\ } } t | ƒ d	 k st ‚ t d „  | Dƒ ƒ s1t ‚ t
 t t |  t j d d g d d d | ƒt
 t t |  t j d d g d | ƒd  S(   NR   i
   R	   i   i   i    t   labelR   i   c         s   s   |  ] } | j  Vq d  S(   N(   R)   (   R*   R+   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pys	   <genexpr>¿   s    t   setosac         s   s   |  ] } | j  Vq d  S(   N(   R)   (   R*   R+   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pys	   <genexpr>Ë   s    R3   (   R   R   R   R   R   R   R   R   R.   t   target_namesR   R$   (   R   R   R0   R1   R   (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pyt'   test_plot_partial_dependence_multiclass²   s.    		("   t   __doc__t   pytestt   numpyR   t   numpy.testingR    t   sklearn.utils.testingR   R   t#   sklearn.ensemble.partial_dependenceR   R   t   sklearn.ensembleR   R   t   sklearnR   R
   R   t   Tt   true_resultt   load_bostonR"   t	   load_irisR   R   R!   R#   R'   t   markt   filterwarningsR2   R7   R;   (    (    (    sM   lib/python2.7/site-packages/sklearn/ensemble/tests/test_partial_dependence.pyt   <module>   s4   <!				 #