Пример #1
0
def test_orthonormal_update():

    forwardPasser = ForwardPasser(X,
                                  missing,
                                  y[:, numpy.newaxis],
                                  numpy.ones(X.shape[0]),
                                  numpy.ones(1),
                                  max_terms=1000,
                                  penalty=1)

    numpy.set_printoptions(precision=4)
    m, n = X.shape
    B_orth = forwardPasser.get_B_orth()
    v = numpy.random.normal(size=m)
    for i in range(1, 10):
        v_ = numpy.random.normal(size=m)
        B_orth[:, i] = 10 * v_ + v
        v = v_
        forwardPasser.orthonormal_update(i)

        B_orth_dot_B_orth_T = numpy.dot(B_orth[:, 0:i + 1].transpose(),
                                        B_orth[:, 0:i + 1])
        assert_true(
            numpy.max(numpy.abs(B_orth_dot_B_orth_T -
                                numpy.eye(i + 1))) < .0000001)
Пример #2
0
def test_run():

    forwardPasser = ForwardPasser(
        X, y[:, numpy.newaxis], numpy.ones(X.shape[0]), numpy.ones(1), max_terms=1000, penalty=1
    )

    forwardPasser.run()
    res = str(forwardPasser.get_basis()) + "\n" + str(forwardPasser.trace())
    filename = os.path.join(os.path.dirname(__file__), "forward_regress.txt")
    with open(filename, "r") as fl:
        prev = fl.read()
    assert_equal(res, prev)
Пример #3
0
def test_run():

    forwardPasser = ForwardPasser(X, y, numpy.ones(y.shape),
                                  max_terms=1000, penalty=1)

    forwardPasser.run()
    res = str(forwardPasser.get_basis()) + \
        '\n' + str(forwardPasser.trace())
    filename = os.path.join(os.path.dirname(__file__),
                            'forward_regress.txt')
    with open(filename, 'r') as fl:
        prev = fl.read()
    assert_equal(res, prev)
Пример #4
0
def test_run():

    forwardPasser = ForwardPasser(X, missing, y[:, numpy.newaxis],
                                  sample_weight,
                                  max_terms=1000, penalty=1)

    forwardPasser.run()
    res = str(forwardPasser.get_basis()) + \
        '\n' + str(forwardPasser.trace())
    filename = os.path.join(os.path.dirname(__file__),
                            'forward_regress.txt')
#     with open(filename, 'w') as fl:
#         fl.write(res)
    with open(filename, 'r') as fl:
        prev = fl.read()
    assert_equal(res, prev)
Пример #5
0
def test_orthonormal_update():

    forwardPasser = ForwardPasser(
        X, y[:, numpy.newaxis], numpy.ones(X.shape[0]), numpy.ones(1), max_terms=1000, penalty=1
    )

    numpy.set_printoptions(precision=4)
    m, n = X.shape
    B_orth = forwardPasser.get_B_orth()
    v = numpy.random.normal(size=m)
    for i in range(1, 10):
        v_ = numpy.random.normal(size=m)
        B_orth[:, i] = 10 * v_ + v
        v = v_
        forwardPasser.orthonormal_update(i)

        B_orth_dot_B_orth_T = numpy.dot(B_orth[:, 0 : i + 1].transpose(), B_orth[:, 0 : i + 1])
        assert_true(numpy.max(numpy.abs(B_orth_dot_B_orth_T - numpy.eye(i + 1))) < 0.0000001)
Пример #6
0
class TestForwardPasser(object):

    def __init__(self):
        numpy.random.seed(0)
        self.basis = Basis(10)
        constant = ConstantBasisFunction()
        self.basis.append(constant)
        bf1 = HingeBasisFunction(constant, 0.1, 10, 1, False, 'x1')
        bf2 = HingeBasisFunction(constant, 0.1, 10, 1, True, 'x1')
        bf3 = LinearBasisFunction(bf1, 2, 'x2')
        self.basis.append(bf1)
        self.basis.append(bf2)
        self.basis.append(bf3)
        self.X = numpy.random.normal(size=(100, 10))
        self.B = numpy.empty(shape=(100, 4), dtype=numpy.float64)
        self.basis.transform(self.X, self.B)
        self.beta = numpy.random.normal(size=4)
        self.y = numpy.empty(shape=100, dtype=numpy.float64)
        self.y[:] = numpy.dot(
            self.B, self.beta) + numpy.random.normal(size=100)
        self.forwardPasser = ForwardPasser(
            self.X, self.y, numpy.ones(self.y.shape), max_terms=1000, penalty=1)

    def test_orthonormal_update(self):
        numpy.set_printoptions(precision=4)
        m, n = self.X.shape
        B_orth = self.forwardPasser.get_B_orth()
        v = numpy.random.normal(size=m)
        for i in range(1, 10):
            v_ = numpy.random.normal(size=m)
            B_orth[:, i] = 10 * v_ + v
            v = v_
            self.forwardPasser.orthonormal_update(i)

            B_orth_dot_B_orth_T = numpy.dot(B_orth[:, 0:i + 1].transpose(),
                                            B_orth[:, 0:i + 1])
            assert_true(
                numpy.max(numpy.abs(
                    B_orth_dot_B_orth_T - numpy.eye(i + 1))
                ) < .0000001
            )

    def test_run(self):
        self.forwardPasser.run()
        res = str(self.forwardPasser.get_basis()) + \
            '\n' + str(self.forwardPasser.trace())
        filename = os.path.join(os.path.dirname(__file__),
                                'forward_regress.txt')
        with open(filename, 'r') as fl:
            prev = fl.read()
        assert_equal(res, prev)
Пример #7
0
 def __init__(self):
     numpy.random.seed(0)
     self.basis = Basis(10)
     constant = ConstantBasisFunction()
     self.basis.append(constant)
     bf1 = HingeBasisFunction(constant, 0.1, 10, 1, False, 'x1')
     bf2 = HingeBasisFunction(constant, 0.1, 10, 1, True, 'x1')
     bf3 = LinearBasisFunction(bf1, 2, 'x2')
     self.basis.append(bf1)
     self.basis.append(bf2)
     self.basis.append(bf3)
     self.X = numpy.random.normal(size=(100, 10))
     self.B = numpy.empty(shape=(100, 4), dtype=numpy.float64)
     self.basis.transform(self.X, self.B)
     self.beta = numpy.random.normal(size=4)
     self.y = numpy.empty(shape=100, dtype=numpy.float64)
     self.y[:] = numpy.dot(
         self.B, self.beta) + numpy.random.normal(size=100)
     self.forwardPasser = ForwardPasser(
         self.X, self.y, numpy.ones(self.y.shape), max_terms=1000, penalty=1)
Пример #8
0
def test_run():

    forwardPasser = ForwardPasser(X,
                                  y,
                                  numpy.ones(y.shape),
                                  max_terms=1000,
                                  penalty=1)

    forwardPasser.run()
    res = str(forwardPasser.get_basis()) + \
        '\n' + str(forwardPasser.trace())
    filename = os.path.join(os.path.dirname(__file__), 'forward_regress.txt')
    with open(filename, 'r') as fl:
        prev = fl.read()
    assert_equal(res, prev)
def test_run():

    forwardPasser = ForwardPasser(X,
                                  missing,
                                  y[:, numpy.newaxis],
                                  sample_weight,
                                  max_terms=1000,
                                  penalty=1)

    forwardPasser.run()
    res = str(forwardPasser.get_basis()) + \
        '\n' + str(forwardPasser.trace())
    filename = os.path.join(os.path.dirname(__file__), 'forward_regress.txt')
    #     with open(filename, 'w') as fl:
    #         fl.write(res)
    with open(filename, 'r') as fl:
        prev = fl.read()
    assert_equal(res, prev)