def test_numeric_grad_2(self, err): def J(x): return sum(1 / x) theta = array([[5], [8], [20]]) assert_allclose(array([[-0.04], [-0.015625], [-0.0025]]), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)
def test_numeric_grad_1(self, err): def J(x): return sum(3 * (x ** 2)) theta = array([[0], [4], [10]]) assert_allclose(array([[0], [24], [60]]), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)
def test_numeric_grad_5(self, err): def J(x): return sum(7 * x) theta = array([[-10], [-1], [0], [1], [10]]) assert_allclose(array([[7], [7], [7], [7], [7]]), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)
def test_numeric_grad_4(self, err): def J(x): return sum(exp(x)) theta = array([[-10], [-1], [0], [1], [10]]) assert_allclose(array([[exp(-10)], [exp(-1)], [exp(0)], [exp(1)], [exp(10)]]), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)
def test_numeric_grad_3(self, err): def J(x): return sum(cos(x)) theta = array([[radians(30)], [radians(45)], [radians(60)], [radians(90)]]) assert_allclose(array([[-sin(radians(30))], [-sin(radians(45))], [-sin(radians(60))], [-sin(radians(90))]]), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)
def test_grad_data1_6(self, data1, err): y = data1[:, -1:] X = data1[:, :-1] m, n = X.shape intercept = ones((m, 1), dtype=float64) X = append(intercept, X, axis=1) theta = array([[3.46], [-2.76]]) def J(theta): return cost_func(X, y, theta) assert_allclose(grad(X, y, theta), numerical_grad(J, theta, err), rtol=0, atol=0.001)
def test_reg_grad_data1_6(self, data1, err): y = data1[:, -1:] X = data1[:, :-1] m, n = X.shape intercept = ones((m, 1), dtype=float64) X = append(intercept, X, axis=1) theta = array([[-12.4], [23.56]]) _lambda = 943 def J(theta): return reg_cost_func(X, y, theta, _lambda) assert_allclose(reg_grad(X, y, theta, _lambda), numerical_grad(J, theta, err), rtol=0, atol=0.001)
def test_reg_grad_data1_4(self, data1, err): y = data1[:, -1:] X = data1[:, :-1] m, n = X.shape intercept = ones((m, 1), dtype=float64) X = append(intercept, X, axis=1) theta = -8.4 * ones((n + 1, 1), dtype=float64) _lambda = 0.762 def J(theta): return reg_cost_func(X, y, theta, _lambda) assert_allclose(reg_grad(X, y, theta, _lambda), numerical_grad(J, theta, err), rtol=0, atol=0.001)
def test_grad_data4_6(self, data4, err): Y = data4[:, -1:] X = data4[:, :-1] m, n = X.shape intercept = ones((m, 1), dtype=float64) X = append(intercept, X, axis=1) theta = -0.145 * ones((n + 1, 1), dtype=float64) def J(theta): return cost_func(X, Y, theta) assert_allclose(grad(X, Y, theta), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)
def test_grad_data3_6(self, data3, err): Y = data3[:, -1:] X = data3[:, :-1] m, n = X.shape intercept = ones((m, 1), dtype=float64) X = append(intercept, X, axis=1) theta = array([[-20], [0.164], [-0.23]]) def J(theta): return cost_func(X, Y, theta) assert_allclose(grad(X, Y, theta), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)
def test_grad_data4_5(self, data4, err): Y = data4[:, -1:] X = data4[:, :-1] m, _ = X.shape intercept = ones((m, 1), dtype=float64) X = append(intercept, X, axis=1) theta = array([[-0.198], [0.25], [-0.234], [-0.793], [0.123], [-0.378], [0.423], [-0.678], [-0.3]]) def J(theta): return cost_func(X, Y, theta) assert_allclose(grad(X, Y, theta), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)
def test_reg_grad_data4_6(self, data4, err): y = data4[:, -1:] X = data4[:, :-1] m, n = X.shape intercept = ones((m, 1), dtype=float64) X = append(intercept, X, axis=1) theta = -0.238 * ones((n + 1, 1), dtype=float64) _lambda = 975032 def J(theta): return reg_cost_func(X, y, theta, _lambda) assert_allclose(reg_grad(X, y, theta, _lambda), numerical_grad(J, theta, err), rtol=0, atol=0.001, equal_nan=False)