Exemplo n.º 1
0
    def test_lin_poly_8(self):
        """
        Linear polynomial in 8 variables.
        """
        m = functools.partial(self.modeler, ord_cap=3, deg_cap=3)

        print model_validation.modeler_function_l2_errors(
            m, 80,
            model_validation.uniform_sampler(8, [-1.0, 1.0]),
            test_functions.lin_poly_8
        )
Exemplo n.º 2
0
    def test_corr_poly_1(self):
        """
        Source: "General formulation of HDMR component functions with
        independent and correlated variables", Rabitz/Li, J Math Chem 2011.

        Two identical copies of the polynomial taken and added together (on
        distinct sets of variables) to increase dimensionality to make this
        a more interesting example.
        """
        mu = np.array([1.0, 2.0, 3.0, 1.0, 2.0, 3.0])
        cov = np.array([
                [1.0, 1.0, 0.0, 0.0, 0.0, 0.0],
                [0.5, 1.0, 0.0, 0.0, 0.0, 0.0],
                [0.0, 0.0, 1.0, 0.0, 0.0, 0.0],
                [0.0, 0.0, 0.0, 1.0, 1.0, 0.0],
                [0.0, 0.0, 0.0, 0.5, 1.0, 0.0],
                [0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
        ])
        sample_fn = model_validation.multi_gaussian_sampler(mu, cov)

        test_fn = test_functions.gen_corr_poly_1(mu)

        m = functools.partial(self.modeler, ord_cap=3, deg_cap=4)
        print "Cross-validation relative L2 errors", model_validation.modeler_function_l2_errors(
            m, 200, sample_fn, test_fn
        )
Exemplo n.º 3
0
def main():
    with open(out_file, 'w') as f:
        writer = csv.writer(f)
        modeler = functools.partial(cs_hdmr.cs_hdmr_modeler,
                                    ord_cap=2,
                                    deg_cap=5)

        errors = [
            model_validation.modeler_function_l2_errors(
                modeler,
                n * sample_divisions,
                sample_fn,
                test_poly,
                sample_divisions=sample_divisions) for n in n_list
        ]

        for n, error_list in zip(n_list, errors):
            writer.writerow([n] + error_list)
Exemplo n.º 4
0
def main():
    with open(out_file, 'w') as f:
        writer = csv.writer(f)
        modeler = functools.partial(
            cs_hdmr.cs_hdmr_modeler,
            ord_cap=2,
            deg_cap=5
        )

        errors = [
            model_validation.modeler_function_l2_errors(
                modeler, n*sample_divisions, sample_fn,
                test_poly, sample_divisions=sample_divisions
            )
            for n in n_list
        ]

        for n, error_list in zip(n_list, errors):
            writer.writerow([n] + error_list)
Exemplo n.º 5
0
def main():
    with open(out_file, 'w') as f:
        writer = csv.writer(f)
        modeler = functools.partial(cs_hdmr.cs_hdmr_modeler,
                                    ord_cap=3,
                                    deg_cap=6)

        errors = [
            model_validation.modeler_function_l2_errors(
                modeler,
                N * sample_divisions,
                model_validation.uniform_sampler(6, [-1.0, 1.0]),
                test_poly,
                sample_divisions=sample_divisions,
                noise=model_validation.make_gaussian_noise_fn(0, noise))
            for noise in noise_list
        ]

        for noise, error_list in zip(noise_list, errors):
            writer.writerow([noise] + error_list)
Exemplo n.º 6
0
def main():
    with open(out_file, 'w') as f:
        writer = csv.writer(f)
        modeler = functools.partial(
            cs_hdmr.cs_hdmr_modeler,
            ord_cap=3,
            deg_cap=6,
            independent=True
        )

        errors = [
            model_validation.modeler_function_l2_errors(
                modeler, n*sample_divisions,
                model_validation.uniform_sampler(6, [-1.0, 1.0]),
                test_poly, sample_divisions=sample_divisions
            )
            for n in n_list
        ]

        for n, error_list in zip(n_list, errors):
            writer.writerow([n] + error_list)
Exemplo n.º 7
0
def main():
    with open(out_file, 'w') as f:
        writer = csv.writer(f)
        modeler = functools.partial(
            cs_hdmr.cs_hdmr_modeler,
            ord_cap=3,
            deg_cap=6
        )

        errors = [
            model_validation.modeler_function_l2_errors(
                modeler, N*sample_divisions,
                model_validation.uniform_sampler(6, [-1.0, 1.0]),
                test_poly, sample_divisions=sample_divisions,
                noise=model_validation.make_gaussian_noise_fn(0, noise)
            )
            for noise in noise_list
        ]

        for noise, error_list in zip(noise_list, errors):
            writer.writerow([noise] + error_list)