コード例 #1
0
ファイル: test_utils.py プロジェクト: nightfox0909/touvlo
    def test_SGD4(self, err):
        def grad(X, y, theta, schleem, plumbus, wubba, lubba):
            m = len(y)
            grad = (schleem / (m * wubba))
            grad = grad * (X.T).dot(X.dot(theta) - y)
            grad = grad + plumbus / (2 * lubba)
            return grad

        X = array([[0, 1, 2], [-1, 5, 3], [2, 0, 1]])
        initial_theta = array([[0.3], [2.7], [1.6]])
        y = array([[0.3], [1.2], [0.5]])
        num_iters = 8
        plumbus = 1.2
        schleem = 0.9
        wubba = 2.4
        lubba = 3
        alpha = 0.005

        assert_allclose(array([[0.42789], [1.63920], [0.84140]]),
                        SGD(X,
                            y,
                            grad,
                            initial_theta,
                            alpha,
                            num_iters,
                            lubba=lubba,
                            schleem=schleem,
                            wubba=wubba,
                            plumbus=plumbus),
                        rtol=0,
                        atol=0.001,
                        equal_nan=False)
コード例 #2
0
    def test_SGD3(self, err):
        def grad(X, y, theta):
            m = len(y)
            grad = (1 / m) * (X.T).dot(X.dot(theta) - y)
            return grad

        X = array([[0, 1, 2], [-1, 5, 3], [2, 0, 1]])
        initial_theta = array([[0.3], [2.7], [1.6]])
        y = array([[0.3], [1.2], [0.5]])
        num_iters = 5
        alpha = 0.001

        assert_allclose(array([[0.36143], [2.28673], [1.30772]]),
                        SGD(X, y, grad, initial_theta,
                            alpha, num_iters),
                        rtol=0, atol=0.001, equal_nan=False)
コード例 #3
0
    def test_SGD2(self, err):
        def grad(X, y, theta):
            m = len(y)
            grad = (1 / m) * (X.T).dot(X.dot(theta) - y)
            return grad

        X = array([[0, 1, 2], [-1, 5, 3], [2, 0, 1]])
        initial_theta = array([[0], [0], [0]])
        y = array([[0.3], [1.2], [0.5]])
        num_iters = 10
        alpha = 0.01

        assert_allclose(array([[0.042237], [0.162748], [0.133705]]),
                        SGD(X, y, grad, initial_theta,
                            alpha, num_iters),
                        rtol=0, atol=0.001, equal_nan=False)