ó
‡ˆ\c           @   s   d  d l  m Z d  d l Z d  d l m Z 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 d g Z d d d g Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   productN(   t   assert_almost_equalt   assert_array_almost_equalt   assert_equal(   t   datasets(   t   manifold(   t	   neighbors(   t   pipeline(   t   preprocessing(   t   assert_less(   t   randt   autot   denset   arpackt   FWt   Dc    	      C   sä   d }  |  d } | d } t  j t t t |  ƒ d d ƒƒ ƒ } t j | | d d ƒj ƒ  } x~ t D]v } xm t	 D]e } t
 j d | d d d	 | d
 | ƒ } | j | ƒ t j | j | d d ƒj ƒ  } t | | ƒ qs Wqf Wd  S(   Ni   i   i   t   repeatt   modet   distancet   n_neighborst   n_componentst   eigen_solvert   path_method(   t   npt   arrayt   listR    t   rangeR   t   kneighbors_grapht   toarrayt   eigen_solverst   path_methodsR   t   Isomapt   fitt
   embedding_R   (	   t
   N_per_sidet   NptsR   t   Xt   GR   R   t   clft   G_iso(    (    sA   lib/python2.7/site-packages/sklearn/manifold/tests/test_isomap.pyt   test_isomap_simple_grid   s     

'	c          C   s~  d }  |  d } | d } t  j t t t |  ƒ d d ƒƒ ƒ } t  j j d ƒ } d | j | d ƒ } t  j | | f d ƒ } t	 j
 | | d d ƒj ƒ  } t j ƒ  } | j d	 | d ƒ } xµ t D]­ }	 x¤ t D]œ }
 t j d
 | d d d |	 d |
 ƒ } | j | ƒ t	 j
 | j | d d ƒj ƒ  } | j d	 | d ƒ } t  j j | | ƒ | } t | | j ƒ  ƒ qÖ WqÉ Wd  S(   Ni   i   i   R   i    gš™™™™™¹?R   R   g      à¿R   R   R   R   (   R   R   R   R    R   t   randomt   RandomStatet   randnt   concatenateR   R   R   R   t   KernelCenterert   fit_transformR   R   R   R   R    R!   t   linalgt   normR   t   reconstruction_error(   R"   R#   R   R$   t   rngt   noiseR%   t   centerert   KR   R   R&   R'   t   K_isoR1   (    (    sA   lib/python2.7/site-packages/sklearn/manifold/tests/test_isomap.pyt    test_isomap_reconstruction_error-   s0    

'	c    
      C   s»   d }  d } d } t  j j |  d d ƒ\ } } t j | d ƒ } | j | ƒ } t j j d ƒ } | | j	 | j
 Œ  } | j | | ƒ }	 t t j t j | |	 d ƒ ƒ d | ƒ d  S(   NiÈ   i
   g{®Gáz„?t   random_statei    i   (   R   t   samples_generatort   make_s_curveR   R   R.   R   R)   R*   R+   t   shapet	   transformR	   t   sqrtt   mean(
   t	   n_samplesR   t   noise_scaleR$   t   yt   isot   X_isoR2   R3   t   X_iso2(    (    sA   lib/python2.7/site-packages/sklearn/manifold/tests/test_isomap.pyt   test_transformV   s    c          C   sr   t  j d d ƒ \ }  } t j d t j ƒ  f d t j ƒ  f g ƒ } | j |  | ƒ t	 d | j
 |  | ƒ ƒ d  S(   NR8   i    t   isomapR&   gÍÌÌÌÌÌì?(   R   t
   make_blobsR   t   PipelineR   R   R   t   KNeighborsClassifierR    R	   t   score(   R$   RA   R&   (    (    sA   lib/python2.7/site-packages/sklearn/manifold/tests/test_isomap.pyt   test_pipelinek   s    c          C   si   t  j ƒ  }  xV d d d g D]E } |  j d | ƒ |  j t j j d d ƒ ƒ t |  j j	 | ƒ q Wd  S(   Ni
   i   i   R   i2   i   (
   R   R   t
   set_paramsR    R   R)   R
   R   t   nbrs_R   (   t   modelR   (    (    sA   lib/python2.7/site-packages/sklearn/manifold/tests/test_isomap.pyt   test_isomap_clone_bugw   s    c       	   C   sl   t  d d d d d d ƒ}  xJ t D]B } x9 t D]1 } t j d d d	 | d
 | ƒ } | j |  ƒ q/ Wq" Wd  S(   Nid   i   t   densitygš™™™™™¹?t   formatt   csrR   i   R   R   (   t   sparse_randR   R   R   R   R    (   R$   R   R   R&   (    (    sA   lib/python2.7/site-packages/sklearn/manifold/tests/test_isomap.pyt   test_sparse_input   s    	(   t	   itertoolsR    t   numpyR   t   numpy.testingR   R   R   t   sklearnR   R   R   R   R   t   sklearn.utils.testingR	   t   scipy.sparseR
   RS   R   R   R(   R7   RE   RK   RO   RT   (    (    (    sA   lib/python2.7/site-packages/sklearn/manifold/tests/test_isomap.pyt   <module>   s"   		)			
