view pylearn/preprocessing/tests/test_pca.py @ 1421:3dee72c3055d

added some old test_pca file I never committed
author James Bergstra <bergstrj@iro.umontreal.ca>
date Fri, 04 Feb 2011 16:06:36 -0500
parents
children
line wrap: on
line source

import numpy
from pylearn.preprocessing.pca import *

def test_max_energy_fraction():
    rng = numpy.random.RandomState(234)
    a = rng.randn(10,5)
    a[:,0] *=2
    a+= 5
    (eigvals, eigvecs), centered_a = pca_from_examples(a)
    assert len(eigvals)==5
    vartot = eigvals.sum()

    def f(frac, n):
        (evals, evecs), c_a = pca_from_examples(a, max_energy_fraction=frac)
        assert len(evals)==n
        assert evals.sum() <= (frac * vartot + 1e-8)

    f(.87,1)
    f(.88,2)
    f(.99999999, 4)
    f(1.0, 5)
    f(.5, 0)