Пример #1
0
functions_name = ['BETA', 'NM', 'SMLA', 'SMLB']

if __name__ == '__main__':
    for s in size:
        for i, fun in enumerate(functions):
            for j, tau in enumerate(taus):
                generator = LSW(pdf=fun, sample_size=s, seed=123)
                results = {'selected_param': [], 'oracle_param': [], 'oracle_loss': [], 'loss': [], 'solution': [],
                           'oracle_solution': []}
                for _ in range(replications):
                    try:
                        spectrum = LordWillisSpektor(transformed_measure=True)
                        obs = generator.generate()
                        tsvd = TSVD(kernel=kernel, singular_values=spectrum.singular_values,
                                    left_singular_functions=spectrum.left_functions,
                                    right_singular_functions=spectrum.right_functions,
                                    observations=obs, sample_size=s, transformed_measure=True,
                                    max_size=max_size, njobs=-1, tau=tau)
                        tsvd.estimate()
                        tsvd.oracle(fun)
                        solution = list(tsvd.solution(np.linspace(0, 1, 10000)))
                        results['selected_param'].append(tsvd.regularization_param)
                        results['oracle_param'].append(tsvd.oracle_param)
                        results['oracle_loss'].append(tsvd.oracle_loss)
                        results['loss'].append(tsvd.residual)
                        results['solution'].append(solution)
                        results['oracle_solution'].append(list(tsvd.oracle_solution))
                        tsvd.client.close()
                    except:
                        pass
                pd.DataFrame(results).to_csv('TSVD_{}_{}.csv'.format(functions_name[i], taus_name[j]))
Пример #2
0
                        spectrum = LordWillisSpektor(transformed_measure=True)
                        obs = generator.generate()
                        landweber = TSVD(
                            kernel=kernel_transformed,
                            singular_values=spectrum.singular_values,
                            left_singular_functions=spectrum.left_functions,
                            right_singular_functions=spectrum.right_functions,
                            observations=obs,
                            sample_size=s,
                            max_size=max_size,
                            tau=tau,
                            transformed_measure=True,
                            njobs=-1)
                        landweber.estimate()
                        landweber.oracle(fun, patience=10)
                        solution = list(
                            landweber.solution(np.linspace(0, 1, 10000)))
                        results['selected_param'].append(
                            landweber.regularization_param)
                        results['oracle_param'].append(landweber.oracle_param)
                        results['oracle_loss'].append(landweber.oracle_loss)
                        results['loss'].append(landweber.residual)
                        results['solution'].append(solution)
                        results['oracle_solution'].append(
                            list(landweber.oracle_solution))
                        landweber.client.close()
                    except:
                        pass
                pd.DataFrame(results).to_csv('TSVD_{}_{}_tau_{}.csv'.format(
                    functions_name[i], s, taus_name[j]))