ó
‡ˆ\c           @   s÷   d  d l  m Z d  d l Z d  d l m Z 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 g Z d „  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_equal(   t   linalg(   t	   neighborst   manifold(   t   barycenter_kneighbors_graph(   t   assert_less(   t   ignore_warnings(   t   assert_raise_message(   t   assert_raisest   denset   arpackc          C   sè   t  j d d g d d g d d g g ƒ }  t |  d ƒ } t | j ƒ  d d d g d d d g d d d g g ƒ t |  d ƒ } t t  j | j ƒ  d ƒ t  j d ƒ ƒ t  j | j ƒ  |  ƒ } t t	 j
 | |  ƒ |  j d d ƒ d  S(   Ni    i   g)\Âõ(ð?g      ð?i   g        i   (   t   npt   arrayR   R   t   toarrayt   sumt   onest   dotR   R   t   normt   shape(   t   Xt   At   pred(    (    sI   lib/python2.7/site-packages/sklearn/manifold/tests/test_locally_linear.pyt    test_barycenter_kneighbors_graph   s    *	(c    
      C   sª  t  j j d ƒ }  t  j t t t d ƒ d d ƒƒ ƒ } | d |  j d | j ƒ } d } t	 j
 d d d | d |  ƒ } d	 } t | | j ƒ j ƒ  } t j t  j | | ƒ | d
 ƒ } t | | ƒ x– t D]Ž } | j d | ƒ | j | ƒ | j j d | k st ‚ t j t  j | | j ƒ | j d
 ƒ d } t | | ƒ t | j | d d ƒqÎ W|  j | j Œ  d } | j | | ƒ }	 t t j |	 | j ƒ | ƒ d  S(   Ni   i   t   repeatg»½×Ùß|Û=t   sizet   n_neighborst   n_componentst   random_stategš™™™™™¹?t   frot   eigen_solveri   t   decimalid   (   R   t   randomt   RandomStateR   t   listR    t   ranget   uniformR   R   t   LocallyLinearEmbeddingR   R   R   R   R   R   R   t   eigen_solverst
   set_paramst   fitt
   embedding_t   AssertionErrorR   t   reconstruction_error_t   randnt	   transform(
   t   rngR   R   t   clft   tolt   Nt   reconstruction_errort   solvert   noiset   X_reembedded(    (    sI   lib/python2.7/site-packages/sklearn/manifold/tests/test_locally_linear.pyt   test_lle_simple_grid'   s.    '	"&	c    
   
   C   së  t  j j d ƒ }  t  j t t t  j d ƒ d d ƒƒ ƒ } t  j | | d  d  … d f d d f } | d |  j d | j	 ƒ } d } xZd d d	 d
 g D]F} t
 j d d d | d | d d ƒ } | d k rÙ d n d } t | | j ƒ j ƒ  } t j t  j | | ƒ | ƒ } t | | ƒ x½ t D]µ } | j d | ƒ | j | ƒ | j j	 d | k sit ‚ t j t  j | | j ƒ | j d ƒ d } d | | f }	 t | | d |	 ƒt t  j | j | ƒ | | d |	 ƒq*Wq Wd  S(   Ni    i   R   i   g»½×Ùß|Û=R   t   standardt   hessiant   modifiedt   ltsaR   i   R   t   methodR   g      ø?i   R   i   R   s   solver: %s, method: %st   msg(   R   R!   R"   R   R#   R    t   aranget   c_R%   R   R   R&   R   R   R   R   R   R   R   R'   R(   R)   R*   R+   t   absR,   (
   R/   R   R   R<   R0   R1   R2   R3   R4   t   details(    (    sI   lib/python2.7/site-packages/sklearn/manifold/tests/test_locally_linear.pyt   test_lle_manifoldJ   s0    *+&c          C   su   t  j j d d ƒ }  t j d d ƒ } d } t t | | j |  ƒ t j d d ƒ } d } t t | | j |  ƒ d  S(   Ni   i   R   t   errors!   unrecognized eigen_solver 'error'R<   s   unrecognized method 'error'(   R   R!   t   randR   R&   R	   t
   ValueErrorR)   (   R   R0   R=   (    (    sI   lib/python2.7/site-packages/sklearn/manifold/tests/test_locally_linear.pyt   test_lle_init_parametersi   s    c          C   sŽ   d d l  m }  m } | j d d ƒ \ } } |  j d t j d d ƒ f d t j ƒ  f g ƒ } | j	 | | ƒ t
 d | j | | ƒ ƒ d  S(   Niÿÿÿÿ(   t   pipelinet   datasetsR   i    t   filterR0   gÍÌÌÌÌÌì?(   t   sklearnRG   RH   t
   make_blobst   PipelineR   R&   R   t   KNeighborsClassifierR)   R   t   score(   RG   RH   R   t   yR0   (    (    sI   lib/python2.7/site-packages/sklearn/manifold/tests/test_locally_linear.pyt   test_pipelineu   s    c       
   C   sD   t  j d	 ƒ }  t } t t | t j ƒ |  d d d d d d ƒd  S(
   Ni
   i   i   i   R<   R8   R   R   (   i
   i   (   R   R   R   R
   RE   R   t   locally_linear_embedding(   t   Mt   f(    (    sI   lib/python2.7/site-packages/sklearn/manifold/tests/test_locally_linear.pyt   test_singular_matrixƒ   s    c          C   sp   t  j j d ƒ }  |  j d d d d ƒ} x? d d d d	 g D]+ } t j d
 | d d ƒ } | j | ƒ q= Wd  S(   Ni    id   R   i   i   R8   R9   R:   R;   R<   R   i
   (   i   i   (   R   R!   R"   t   randintR   R&   R)   (   RD   R   R<   R0   (    (    sI   lib/python2.7/site-packages/sklearn/manifold/tests/test_locally_linear.pyt   test_integer_input‹   s
    (   t	   itertoolsR    t   numpyR   t   numpy.testingR   R   t   scipyR   RJ   R   R   t   sklearn.manifold.locally_linearR   t   sklearn.utils.testingR   R   R	   R
   R'   R   R7   RB   RF   RP   RT   RV   (    (    (    sI   lib/python2.7/site-packages/sklearn/manifold/tests/test_locally_linear.pyt   <module>   s"   		#				