コード例 #1
0
def test_kriging_f_order(n, m):
    g = lk.RandomGenerator(123)
    X = np.asarray(g.uniform(n, m), dtype=np.float64, order='F')
    y = f(X)

    rl = lk.WrappedPyKriging(y, X, "gauss")

    y_pred, _stderr, _cov = rl.predict(X, True, True)
コード例 #2
0
def test_kriging_c_order(n, m):
    g = lk.RandomGenerator(123)
    # X = np.asarray(g.uniform(n, m), dtype=np.float64, order='C')
    X = g.uniform(n, m)  # this is the default
    y = f(X)

    rl = lk.PyKriging(y, X, "gauss")

    y_pred, _stderr, _cov = rl.predict(X, True, True)
コード例 #3
0
def test_random():
    g = lk.RandomGenerator(123)
    expected_result = np.array([[0.71295532, 0.78002776],
                                [0.42847093, 0.41092437],
                                [0.69088485, 0.5796943],
                                [0.71915031, 0.13995076],
                                [0.49111893, 0.40101755]])
    generated_result = g.uniform(5, 2)
    # print(generated_result)
    assert np.isclose(generated_result, expected_result).all()
コード例 #4
0
def test_linear_regression_exact(n, m):
    g = lk.RandomGenerator(123)
    sol = np.asarray(g.uniform(m, 1), dtype=np.float64, order='F')
    X = np.asarray(g.uniform(n, m), dtype=np.float64, order='F')
    X[:, 0] = 1
    y = X.dot(sol)  # or X @ sol

    rl = lk.LinearRegression()
    rl.fit(y, X)

    y2, _stderr = rl.predict(X)

    eps = 1e-5
    assert np.linalg.norm(y - y2, ord=np.inf) <= eps
コード例 #5
0
def test_basic():
    """Test of manual binding"""
    n = 40
    m = 3

    g = lk.RandomGenerator(123)
    sol = np.asarray(g.uniform(m, 1), dtype=np.float64, order='F')
    X = np.asarray(g.uniform(n, m), dtype=np.float64, order='F')
    X[:, 0] = 1
    y = X.dot(sol)  # or X @ sol

    rl = lk.PyLinearRegression()
    rl.fit(y, X)

    y2, _stderr = rl.predict(X)

    eps = 1e-5
    assert np.linalg.norm(y - y2, ord=2) <= eps
コード例 #6
0
def test_linear_regression_noisy(n, m):
    g = lk.RandomGenerator(123)
    sol = np.asarray(g.uniform(m, 1), dtype=np.float64, order='F')
    X = np.asarray(g.uniform(n, m), dtype=np.float64, order='F')
    X[:, 0] = 1
    y = X.dot(sol)  # or X @ sol

    e = 1e-8
    noiser = lambda x: x * np.random.normal(1, e)
    y = np.vectorize(noiser)(y)
    # y = np.array([noiser(v) for v in y])
    # y = np.array(list(map(noiser, y)))

    rl = lk.LinearRegression()
    rl.fit(y, X)

    y2, _stderr = rl.predict(X)

    eps = 1e-5
    assert np.linalg.norm(y - y2, ord=np.inf) <= eps