Skip to content
Snippets Groups Projects
Select Git revision
  • b2c4b277bc75736561c73f8adef76b82c4d2d0b4
  • master default protected
  • parallelistation_of_subdomain_loop
  • parallelistation_test
  • nonzero_gli_term_for_nonwetting_in_TPR
  • testing_updating_pwi_as_pwiminus1_into_calculation_of_pnwi
  • v2.2
  • v2.1
  • v2.0
  • v1.0
10 results

domainSubstructuring.py

Blame
  • section_4.2_compute.py 3.25 KiB
    # DATA-DRIVEN KERNEL DESIGNS FOR OPTIMIZED GREEDY SCHEMES: A MACHINE LEARNING PERSPECTIVE by
    # TIZIAN WENZEL, FRANCESCO MARCHETTI, EMMA PERRACCHIONE
    # Code related to the numerical experiment within Section 4.2. "Machine learning data
    # sets", especially to produce the results for the Figures 3-5.
    
    
    from utils.main_function import run_everything, run_cross_validation
    from utils.hyperparameters import dic_hyperparams
    
    from scipy import io
    import os
    
    
    list_datasets = ['fried', 'sarcos', 'protein', 'ct', 'diamonds',
                     'stock', 'kegg_undir_uci', 'online_video',
                     'wecs', 'mlr_knn_rng', 'query_agg_count',
                     'sgemm', 'road_network', 'methane', 'poker'] #, 'susy', 'higgs']
    
    
    ## Loop over reruns and datasets
    for idx_indices in [0, 1, 2, 3, 4]:
        for idx_dataset, name_dataset in enumerate(list_datasets):
    
            ## Load the hyperparameters
            hyperparameter = dic_hyperparams[name_dataset]
    
    
            ## Run everything
            A_start, A_optimized, model, model_vkoga1, model_vkoga2, data, \
                array_concatenate, array_test_rmse_deep, dic_timings_2L = run_everything(
                name_dataset,
                hyperparameter.maxIter_vkoga, hyperparameter.N_points,
                hyperparameter.noise_level, hyperparameter.reg_para_optim, hyperparameter.reg_para_vkoga,
                hyperparameter.learning_rate, hyperparameter.n_epochs,
                hyperparameter.batch_size, hyperparameter.n_folds,
                flag_initialize_diagonal=hyperparameter.flag_initialize_diagonal,
                flag_symmetric_A=hyperparameter.flag_symmetric,
                flag_gaussian=hyperparameter.flag_gaussian,
                flag_optim_verbose=False,
                flag_std_vkoga=False,
                idx_rerun=idx_indices)
    
    
            ## Run cross-validation
            array_eps, array_cv_f, array_cv_f_val, array_test_rmse_cv, list_timings_1L = \
                run_cross_validation(
                    name_dataset, # required only for hyperparameters
                    data, hyperparameter.maxIter_vkoga,
                    flag_gaussian=hyperparameter.flag_gaussian,
                    n_cross_val=hyperparameter.n_cross_val)
    
    
            ## Store in matlab for beautiful tikzfigure plots
            path_for_results = os.path.abspath(os.path.join(os.path.dirname(__file__), 'results_5reruns/'))
    
            os.makedirs(path_for_results, exist_ok=True)
            io.savemat(path_for_results + name_dataset + '_{}'.format(idx_indices) + '.mat',
                       dict(array_concatenate=array_concatenate,
                            list_objectives=model.list_obj,
                            train_hist_deep_f=model_vkoga1.train_hist['f'],
                            train_hist_deep_f_val=model_vkoga1.train_hist['f val'],
                            train_hist_std_f=model_vkoga2.train_hist['f'],
                            train_hist_std_f_val=model_vkoga2.train_hist['f val'],
                            array_eps=array_eps,
                            array_cv_f=array_cv_f,
                            array_cv_f_val=array_cv_f_val,
                            array_test_rmse_deep=array_test_rmse_deep,
                            array_test_rmse_cv=array_test_rmse_cv,
                            dic_timings_2L=dic_timings_2L,
                            list_timings_1L=list_timings_1L))
    
            # in Matlab:
            # results = load('gong.mat')