ó
‡ˆ\c           @   s…  d  d l  Z d  d l j Z d  d l Z d  d l m Z m Z m	 Z	 m
 Z
 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 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" e j# j$ d ƒ e j# j$ d ƒ d „  ƒ ƒ Z% e j# j$ d ƒ e j# j$ d ƒ d „  ƒ ƒ Z& e j# j$ d ƒ d „  ƒ Z' d S(   iÿÿÿÿN(   t   assert_array_almost_equalt   assert_lesst   assert_equalt   assert_not_equalt   assert_raisest   ignore_warnings(   t   PCAt	   KernelPCA(   t   make_circles(   t
   Perceptron(   t   Pipeline(   t   GridSearchCV(   t
   rbf_kernelc       
   C   sA  t  j j d ƒ }  |  j d ƒ } |  j d ƒ } d „  } xd D]ù } xð d	 d
 d | f D]Ü } t | ƒ } t d d | d | d | ƒ} | j | ƒ } | j | ƒ j | ƒ }	 t	 t  j
 | ƒ t  j
 |	 ƒ ƒ t | j d ƒ | j | ƒ }
 t |
 j d | j d ƒ | rY | j |
 ƒ } t | j | j ƒ qY qY Wq@ Wd  S(   Ni    i   i   i   c         [   s#   t  | i  ƒ t j |  | ƒ j ƒ  S(   N(   R   t   npt   minimumt   sum(   t   xt   yt   kwargs(    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt	   histogram   s    t   autot   denset   arpackt   lineart   rbft   polyt   kernelt   eigen_solvert   fit_inverse_transformi   (   i   i   (   i   i   (   R   R   R   (   R   t   randomt   RandomStatet   random_samplet   callableR   t   fit_transformt   fitt	   transformR    t   absR   t   sizeR   t   shapet   inverse_transform(   t   rngt   X_fitt   X_predR   R   R   t   invt   kpcat   X_fit_transformedt   X_fit_transformed2t   X_pred_transformedt   X_pred2(    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_kernel_pca   s(    		c           C   s    t  t t d d t d d ƒd  S(   Ni
   R   R   t   precomputed(   R   t
   ValueErrorR   t   True(    (    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt"   test_kernel_pca_invalid_parameters8   s    c          C   s   t  j j d ƒ }  |  j d d ƒ } t d |  ƒ j | ƒ } | j | ƒ } | j ƒ  } d | d  d  … d f <| j | ƒ } t | | ƒ d  S(   Ni    i
   t   random_stateiš  (	   R   R   R   t   randR   R"   R#   t   copyR    (   t   statet   XR,   t   transformed1t   X_copyt   transformed2(    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt$   test_kernel_pca_consistent_transform=   s    c    	   
   C   sö   t  j j d ƒ }  t j |  j d ƒ ƒ } t j |  j d ƒ ƒ } x­ d D]¥ } xœ d D]” } t d d
 | d | d t ƒ} | j | ƒ } | j	 | ƒ j
 | ƒ } t t  j | ƒ t  j | ƒ ƒ | j
 | ƒ } t | j d | j d ƒ qV WqI Wd  S(   Ni    i   i   i   R   R   R   R   R   R   R   R   i   (   i   i   (   i   i   (   R   R   (   R   R   R   (   R   R   R   t   spt
   csr_matrixR   R   t   FalseR!   R"   R#   R    R$   R   R&   (	   R(   R)   R*   R   R   R,   R-   R.   R/   (    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_kernel_pca_sparseJ   s    	c          C   sƒ   t  j j d ƒ }  |  j d ƒ } |  j d ƒ } t t  j t d ƒ j | ƒ j | ƒ ƒ t  j t	 d ƒ j | ƒ j | ƒ ƒ ƒ d  S(   Ni    i   i   i   (   i   i   (   i   i   (
   R   R   R   R   R    R$   R   R"   R#   R   (   R(   R)   R*   (    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_kernel_pca_linear_kernelc   s    $c          C   s¢   t  j j d ƒ }  |  j d
 ƒ } |  j d ƒ } xk d D]c } xZ d d d g D]I } t d | d	 | ƒ } | j | ƒ j | ƒ j } t | d | f ƒ qM Wq7 Wd  S(   Ni    i   i   i   R   R   i   t   n_componentsR   (   i   i   (   i   i   (   R   R   (	   R   R   R   R   R   R"   R#   R&   R   (   R(   R)   R*   R   t   cR,   R&   (    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_kernel_pca_n_componentsq   s    c          C   s¸   t  j d	 d g d d g d d
 g g ƒ }  t ƒ  } | j |  ƒ } t | j d ƒ t d d ƒ } | j |  ƒ } t | j d ƒ t d d d t ƒ } | j |  ƒ } t | j d ƒ d  S(   Ni   g ÂëþKH´9g#B’¡œÇ;i   i    RD   i   t   remove_zero_eigg      ð?g      ð?(   i   i    (   i   i   (   i   i    (   R   t   arrayR   R!   R   R&   R4   (   R:   R,   t   Xt(    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_remove_zero_eig~   s    *	c          C   sg  t  j j d ƒ }  |  j d
 ƒ } |  j d ƒ } x0d D](} t d d | ƒj | ƒ j | ƒ } t d d | d d	 ƒj t  j | | j ƒ ƒ j t  j | | j ƒ ƒ } t d d | d d	 ƒj	 t  j | | j ƒ ƒ } t d d | d d	 ƒj t  j | | j ƒ ƒ j t  j | | j ƒ ƒ } t
 t  j | ƒ t  j | ƒ ƒ t
 t  j | ƒ t  j | ƒ ƒ q7 Wd  S(   Ni    i   i   i   R   R   R   R   R2   (   i   i   (   i   i   (   R   R   (   R   R   R   R   R   R"   R#   t   dott   TR!   R    R$   (   R(   R)   R*   R   t   X_kpcat   X_kpca2t   X_kpca_traint   X_kpca_train2(    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_kernel_pca_precomputed   s&    0!0c          C   sG   t  j j d ƒ }  |  j d ƒ } t d d ƒ } t t | j | ƒ d  S(   Ni    i   i   R   t   tototiti(   i   i   (   R   R   R   R   R   R   R3   R"   (   R(   R)   R,   (    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_kernel_pca_invalid_kernel©   s    s    ignore: The default of the `iid`s,   ignore:max_iter and tol parameters have beenc       	   C   s¾   t  d d d d d d d d ƒ \ }  } t d	 d
 d d ƒ } t d | f d t d d ƒ f g ƒ } t d d t j d d ƒ ƒ } t | d d d | ƒ} | j |  | ƒ t	 | j
 d ƒ d  S(   Nt	   n_samplesi  t   factorg333333Ó?t   noisegš™™™™™©?R6   i    R   R   RD   i   t
   kernel_pcaR	   t   max_iteri   t   kernel_pca__gammag       @iþÿÿÿt   cvi   t
   param_gridi   (   R   R   R
   R	   t   dictR   t   arangeR   R"   R   t   best_score_(   R:   R   R,   t   pipelineR[   t   grid_search(    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_gridsearch_pipeline°   s    c       	   C   sÌ   t  d d d d d d d d ƒ \ }  } t d	 d
 d d ƒ } t d | f d t d d ƒ f g ƒ } t d t j d d ƒ ƒ } t | d d d | ƒ} t |  d d ƒ} | j	 | | ƒ t
 | j d ƒ d  S(   NRT   i  RU   g333333Ó?RV   gš™™™™™©?R6   i    R   R2   RD   i   RW   R	   RX   i   t   Perceptron__max_iteri   RZ   i   R[   t   gammag       @(   R   R   R
   R	   R\   R   R]   R   R   R"   R   R^   (   R:   R   R,   R_   R[   R`   t   X_kernel(    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt$   test_gridsearch_pipeline_precomputedÁ   s    c       	   C   sÃ   t  d d d d d d d d ƒ \ }  } t d	 d
 ƒ j |  | ƒ j |  | ƒ } t | d ƒ t d d d d d t d d ƒ } | j |  ƒ } t d	 d
 ƒ j | | ƒ j | | ƒ } t | d ƒ d  S(   NRT   i  RU   g333333Ó?RV   gš™™™™™©?R6   i    RX   i   gš™™™™™é?R   R   RD   i   R   Rc   g       @g      ð?(	   R   R	   R"   t   scoreR   R   R4   R!   R   (   R:   R   t   train_scoreR,   RM   (    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   test_nested_circlesÔ   s    ''((   t   numpyR   t   scipy.sparset   sparseR?   t   pytestt   sklearn.utils.testingR    R   R   R   R   R   t   sklearn.decompositionR   R   t   sklearn.datasetsR   t   sklearn.linear_modelR	   t   sklearn.pipelineR
   t   sklearn.model_selectionR   t   sklearn.metrics.pairwiseR   R1   R5   R>   RB   RC   RF   RJ   RQ   RS   t   markt   filterwarningsRa   Re   Rh   (    (    (    sJ   lib/python2.7/site-packages/sklearn/decomposition/tests/test_kernel_pca.pyt   <module>   s.   .	'								