view pylearn/preprocessing/tests/test_pca.py @ 1531:88f361283a19 tip

Fix url/name to pylearn2.
author Frederic Bastien <nouiz@nouiz.org>
date Mon, 09 Sep 2013 10:08:05 -0400
parents 3dee72c3055d
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)