示例#1
0
def modeler_l2_errors(modeler, sample, sample_divisions=2):
    sample_list = divide_sample(sample, sample_divisions)

    l2_errors = []
    sens_dict = defaultdict(list)
    for i in range(len(sample_list)):
        training_sample = sample_list[i]
        training_in, training_out = sample_to_io(training_sample)
        model = modeler(training_in, training_out)

        sens_dict_i = model.sensitivity_dict(training_out)
        sorted_sens = sorted(sens_dict_i.iteritems(), key=lambda x: x[1]['t'])

        total = 0
        for syms, d in sorted_sens:
            sens_dict[syms].append(d['s'])

        # print "Component functions"
        # for s, p in model.component_functions(coeff_gate=1.0e-08).items():
        #     print "    ", s, p

        for j in range(len(sample_list)):
            if i != j:
                testing_sample = sample_list[j]
                test_in, test_out = sample_to_io(testing_sample)
                test_approx = array_map(model, test_in)
                l2_errors.append(relative_l2_error(test_out, test_approx))

    keys, vals = zip(
        *sorted(sens_dict.items(), key=lambda t: sum(t[1]), reverse=True))
    bp.plot_boxplots(vals[:15], [str(list(k)) for k in keys][:15])
    plt.show()

    return l2_errors
示例#2
0
文件: linalg.py 项目: jsgphd/cs_hdmr
    def __init__(self, p, space):
        self.syms = space.syms
        self.p = p

        def f(x):
            return float(self.p.eval(tuple(x)))

        self.sample_values = array_map(f, space.sample)
        self.sq_norm = sum(self.sample_values**2)
示例#3
0
    def __init__(self, p, space):
        self.syms = space.syms
        self.p = p

        def f(x):
            return float(self.p.eval(tuple(x)))
        
        self.sample_values = array_map(f, space.sample)
        self.sq_norm = sum(self.sample_values**2)
示例#4
0
def run_training_test(sample, expander, training_proportion=0.5):
    training_data, test_data = divide_sample(sample, training_proportion)

    training_in, training_out = sample_to_io(training_data)
    test_in, test_out = sample_to_io(test_data)

    trained_expansion = expander(training_in, training_out)

    test_approx = array_map(trained_expansion, test_in)
    training_approx = array_map(trained_expansion, training_in)
    
    print "Training L2 error:", \
        relative_l2_error(training_out, training_approx)
    print "Training L1 error:", \
        average_relative_l1_error(training_out, training_approx)
    print "Test L1 error:", \
        average_relative_l1_error(test_out, test_approx)
    
    return relative_l2_error(test_out, test_approx)
示例#5
0
文件: rs_hdmr.py 项目: jsgphd/cs_hdmr
def run_training_test(sample, expander, training_proportion=0.5):
    training_data, test_data = divide_sample(sample, training_proportion)

    training_in, training_out = sample_to_io(training_data)
    test_in, test_out = sample_to_io(test_data)

    trained_expansion = expander(training_in, training_out)

    test_approx = array_map(trained_expansion, test_in)
    training_approx = array_map(trained_expansion, training_in)

    print "Training L2 error:", \
        relative_l2_error(training_out, training_approx)
    print "Training L1 error:", \
        average_relative_l1_error(training_out, training_approx)
    print "Test L1 error:", \
        average_relative_l1_error(test_out, test_approx)

    return relative_l2_error(test_out, test_approx)
示例#6
0
def modeler_l2_errors(modeler, sample, sample_divisions=2):
    sample_list = divide_sample(sample, sample_divisions)
    
    l2_errors = []
    sens_dict = defaultdict(list)
    for i in range(len(sample_list)):
        training_sample = sample_list[i]
        training_in, training_out = sample_to_io(training_sample)
        model = modeler(training_in, training_out)

        sens_dict_i = model.sensitivity_dict(training_out)
        sorted_sens = sorted(
            sens_dict_i.iteritems(),
            key=lambda x: x[1]['t']
        )

        total = 0
        for syms, d in sorted_sens:
            sens_dict[syms].append(d['s'])
        
        # print "Component functions"
        # for s, p in model.component_functions(coeff_gate=1.0e-08).items():
        #     print "    ", s, p

        for j in range(len(sample_list)):
            if i != j:
                testing_sample = sample_list[j]
                test_in, test_out = sample_to_io(testing_sample)
                test_approx = array_map(model, test_in)
                l2_errors.append(
                    relative_l2_error(test_out, test_approx)
                )

    keys, vals = zip(*sorted(sens_dict.items(), key=lambda t: sum(t[1]), reverse=True))
    bp.plot_boxplots(vals[:15], [str(list(k)) for k in keys][:15])
    plt.show()
                                
    return l2_errors