def append_suffix_to_files(dict, suffix, legend_suffix): d = OrderedDict() for key,value in dict.iteritems(): f = helper_functions.remove_suffix(key, '.pkl') f += suffix + '.pkl' d[f] = value + legend_suffix return d
def _run_experiment_args(self, results_file, data_and_splits, method_results, i_labels, split): num_labels = self.configs.num_labels[i_labels] s = str(num_labels) + '-' + str(split) curr_results = _load_temp_split_file(results_file, num_labels, split) if curr_results: return curr_results if mpi_utility.is_master(): timer.tic() #print 'num_labels-split: ' + s temp_file_name = _temp_split_file_name(results_file, num_labels, split) temp_dir_root = helper_functions.remove_suffix(temp_file_name, '.pkl') temp_dir = temp_dir_root + '/CV-temp/' curr_data = data_and_splits.get_split(split, num_labels) learner = self.configs.learner curr_learner = copy.deepcopy(learner) curr_learner.split_idx_str = s curr_learner.temp_dir = temp_dir curr_results = curr_learner.train_and_test(curr_data) if mpi_utility.is_group_master(): helper_functions.save_object(_temp_split_file_name(results_file,num_labels,split),curr_results) helper_functions.delete_dir_if_exists(temp_dir_root) instance_subset = learner.configs.instance_subset results_features = learner.configs.results_features test_error_to_print = 'is_train' if mpi_utility.is_group_master(): if hasattr(curr_learner, 'best_params'): print s + '-' + str(curr_learner.best_params) + ' Error: ' + \ str(curr_results.compute_error(self.configs.loss_function, results_features, test_error_to_print)) else: print s + ' Done' if mpi_utility.is_master(): timer.toc() return curr_results
def _run_experiment_args(self, results_file, data_and_splits, method_results, i_labels, split): num_labels = self.configs.num_labels[i_labels] s = str(num_labels) + '-' + str(split) curr_results = _load_temp_split_file(results_file, num_labels, split) if curr_results: return curr_results #print 'num_labels-split: ' + s temp_file_name = _temp_split_file_name(results_file, num_labels, split) temp_dir_root = helper_functions.remove_suffix(temp_file_name, '.pkl') temp_dir = temp_dir_root + '/CV-temp/' curr_data = data_and_splits.get_split(split, num_labels) learner = self.configs.learner curr_learner = copy.deepcopy(learner) curr_learner.split_idx_str = s curr_learner.temp_dir = temp_dir curr_results = curr_learner.train_and_test(curr_data) if mpi_utility.is_group_master(): helper_functions.save_object(_temp_split_file_name(results_file,num_labels,split),curr_results) helper_functions.delete_dir_if_exists(temp_dir_root) if mpi_utility.is_group_master(): if hasattr(curr_learner, 'best_params'): print s + '-' + str(curr_learner.best_params) + ' Error: ' + str(curr_results.compute_error(self.configs.loss_function)) else: print s + ' Done' return curr_results
def append_suffix_to_files(dict, suffix, legend_suffix): d = OrderedDict() for key, value in dict.iteritems(): f = helper_functions.remove_suffix(key, '.pkl') f += suffix + '.pkl' d[f] = value + legend_suffix return d
def append_suffix_to_files(dict, suffix, legend_suffix, keys_to_skip=None): d = OrderedDict() for key, value in dict.iteritems(): if keys_to_skip is not None and key in keys_to_skip: f = key else: f = helper_functions.remove_suffix(key, '.pkl') f += suffix + '.pkl' d[f] = value + legend_suffix return d
def get_sized_results(file_name): file_name_no_suffix = os.path.basename(helper_functions.remove_suffix(file_name, '.pkl')) dir_name = os.path.dirname(file_name) all_files = os.listdir(dir_name) sized_file_name = file_name_no_suffix + '-num_labels=' files = [] results = [] for s in all_files: if sized_file_name in s: files.append(dir_name + '/' + s) results.append(helper_functions.load_object(dir_name + '/' + s)) return results
def __init__(self, data_set=None, **kwargs): super(VisualizationConfigs, self).__init__() pc = ProjectConfigs(data_set, **kwargs) self.copy_fields(pc, pc_fields_to_copy) self.max_rows = 2 self.vis_table = vis_table self.size_to_vis = size_to_vis self.sizes_to_use = sizes_to_use if pc.data_set in data_set_sizes_to_use: self.sizes_to_use = data_set_sizes_to_use[pc.data_set] for key, value in kwargs.iteritems(): setattr(self, key, value) self.fontsize = fontsize ''' self.files = [ 'TargetTransfer+NW.pkl', 'HypothesisTransfer.pkl', 'LocalTransferDelta_C3=0_radius.pkl', 'LocalTransferDelta_C3=0.pkl', 'LocalTransferDelta_radius.pkl', 'LocalTransferDelta.pkl', 'LocalTransferDeltaSMS.pkl', ] ''' self.files = { 'TargetTransfer+NW.pkl': 'Target Only', 'LocalTransferDelta_C3=0.pkl': 'Our Method, alpha=0', 'LocalTransferDelta.pkl': 'Our Method', 'LocalTransferDelta_C3=0_cons.pkl': None, 'LocalTransferDelta_cons.pkl': None, 'LocalTransferDelta_C3=0_radius.pkl': 'Our Method, ball graph, alpha=0', 'LocalTransferDelta_radius.pkl': 'Our Method, ball graph' } self.files = OrderedDict() if plot_idx == PLOT_PARAMETRIC: self.files = OrderedDict() self.files['TargetTransfer+NW.pkl'] = 'Target Only' #self.files['StackTransfer+SKL-RidgeReg.pkl'] = 'Stacking' #self.files['SLL-NW.pkl'] = 'LLGC' #self.files['CovShift.pkl'] = 'Reweighting' #self.files['LocalTransferDeltaSMS_scale'] = 'SMS' # #self.files['OffsetTransfer-jointCV.pkl'] = 'Offset Transfer' self.files['LocalTransferNew-grad-bounds.pkl'] = 'Ours' self.files[ 'LocalTransferNew-grad-bounds-opt_ft.pkl'] = 'Our Method: Optimize Target' #self.files['LocalTransferNew-grad-bounds-loo.pkl'] = 'Local Transfer New: LOO' self.files[ 'LocalTransferNew-grad-bounds-scaleB.pkl'] = 'Our Method: Scale' #self.files['LocalTransferNew-grad-bounds-loo-noTransform.pkl'] = 'Local Transfer New: LOO, no Transform' #self.files['LocalTransferNew-grad.pkl'] = 'Local Transfer New: No Bounds' self.files[ 'LocalTransferNew-bounds-linearB.pkl'] = 'Our Method: Linear' elif plot_idx == PLOT_VALIDATION: self.files = OrderedDict() self.files['TargetTransfer+NW.pkl'] = 'Target Only' self.files['SLL-NW.pkl'] = 'LLGC' self.files[ 'LocalTransferDelta_radius_l2_linear-b_clip-b_use-val.pkl'] = 'Ours: Linear, validation' self.files[ 'LocalTransferDelta_radius_l2_use-val_lap-reg.pkl'] = 'Ours: Nonparametric, validation' elif plot_idx == PLOT_CONSTRAINED: self.files = OrderedDict() self.files['TargetTransfer+NW.pkl'] = 'Target Only' self.files['LocalTransferNew-grad-bounds.pkl'] = 'Our Method' #self.files['LocalTransferNew-grad-bounds-boundB'] = 'Ours Method: Bounds' #self.files['LocalTransferNew-grad-bounds-boundPerc=80'] = 'Our Method: Bounds 80%' #self.files['LocalTransferNew-grad-bounds-boundUpper=80'] = 'Our Method: Bound Upper 80%' self.files[ 'LocalTransferNew-grad-bounds-boundPerc=[10, 90].pkl'] = 'Our Method: Bound Constraints' #self.files['LocalTransferNew-grad-bounds-boundPerc=[0, 100].pkl'] = 'Our Method: Bound Constraints [0, 100]' elif plot_idx == PLOT_SMS: self.files = OrderedDict() self.files['TargetTransfer+NW.pkl'] = 'Target Only' self.files['SLL-NW.pkl'] = 'LLGC' self.files['LocalTransferDeltaSMS_scale.pkl'] = 'SMS scale' self.files['LocalTransferDeltaSMS.pkl'] = 'SMS no scale' #self.files['LocalTransferDelta_C3=0_radius_l2_constant-b.pkl'] = 'Constant b, alpha=0' elif plot_idx == PLOT_COMPETING_METHODS: self.files = OrderedDict() self.files['LocalTransferNew-grad-bounds-opt_ft.pkl'] = 'Ours' #self.files['TargetTransfer+NW.pkl'] = 'Target Only' self.files['StackTransfer+SKL-RidgeReg-jointCV.pkl'] = 'Stacking' #self.files['SLL-NW.pkl'] = 'LLGC' #self.files['CovShift.pkl'] = 'Reweighting' self.files['OffsetTransfer-jointCV.pkl'] = 'Offset' #self.files['LocalTransferDeltaSMS_scale'] = 'SMS' elif plot_idx == PLOT_TABLE_COMPETING_METHODS: self.baseline_idx = 1 self.data_names_for_table = names_for_table self.method_names_for_table = [ 'Ours', 'Target Only', 'Stacking', 'LLGC', 'Reweighting', 'Offset', 'SMS' ] self.files = OrderedDict() #self.files['LocalTransferNew-grad-bounds.pkl'] = 'Local Transfer New' self.files[ 'LocalTransferNew-grad-bounds-opt_ft.pkl'] = 'Local Transfer New: Opt f_t' #self.files['LocalTransferNew-grad-bounds-scaleB.pkl'] = 'Local Transfer New: Scale' #self.files['LocalTransferNew-bounds-linearB.pkl'] = 'Local Transfer New: Linear B' self.files['TargetTransfer+NW.pkl'] = 'Target Only' self.files['StackTransfer+SKL-RidgeReg-jointCV.pkl'] = 'Stacking' self.files['SLL-NW.pkl'] = 'LLGC' self.files['CovShift.pkl'] = 'Reweighting' self.files['OffsetTransfer-jointCV.pkl'] = 'Offset Transfer' self.files['LocalTransferDeltaSMS_scale'] = 'SMS' elif plot_idx == PLOT_TABLE_OUR_METHODS: self.baseline_idx = 0 self.data_names_for_table = names_for_table self.method_names_for_table = [ 'Ours', 'Ours: Fixed $f_T$', 'Ours: Fixed $f_T$+Scaling', 'Ours: Fixed $f_T$+linear $b$', 'Ours: Bound Constraints' ] self.files = OrderedDict() self.files[ 'LocalTransferNew-grad-bounds-opt_ft.pkl'] = 'Local Transfer New: Opt f_t' self.files[ 'LocalTransferNew-grad-bounds.pkl'] = 'Local Transfer New' self.files[ 'LocalTransferNew-grad-bounds-scaleB.pkl'] = 'Local Transfer New: Scale' self.files[ 'LocalTransferNew-bounds-linearB.pkl'] = 'Local Transfer New: Linear B' self.files[ 'LocalTransferNew-grad-bounds-boundPerc=[10, 90].pkl'] = 'Our Method: Bound Constraints' elif plot_idx == PLOT_TABLE_VAL: self.files = OrderedDict() self.files[ 'LocalTransferDelta_radius_l2_linear-b_clip-b_use-val-stacking.pkl'] = 'Ours: Linear, Stacking, VAL' self.files[ 'LocalTransferDelta_radius_l2_linear-b_clip-b_use-val-stacking-sourceLOO.pkl'] = 'Ours: Linear, Stacking, LOO, VAL' self.files['StackTransfer+SKL-RidgeReg-VAL.pkl'] = 'Stacking, VAL' elif plot_idx == PLOT_ALPHA: self.files = OrderedDict() self.files[ 'LocalTransferDelta_radius_l2_linear-b_clip-b.pkl'] = 'Ours: Linear' self.files[ 'LocalTransferDelta_C3=0_radius_l2_linear-b.pkl'] = 'Ours: Linear, alpha=0' elif plot_idx == PLOT_TABLE_CONSTRAINED: self.baseline_idx = 1 self.data_names_for_table = names_for_table self.method_names_for_table = [ 'Ours: Fixed $f_T$', 'Ours: Fixed $F_T$, Constraints' ] self.files = OrderedDict() self.files['LocalTransferNew-grad-bounds.pkl'] = 'Our Method' self.files[ 'LocalTransferNew-grad-bounds-boundPerc=[10, 90].pkl'] = 'Our Method: Bound Constraints' if use_validation: test_files = OrderedDict() for f, leg in self.files.iteritems(): f = helper_functions.remove_suffix(f, '.pkl') if f == 'OffsetTransfer-jointCV' or f.find( 'LocalTransferNew') == 0: f += '-VAL.pkl' elif f == 'LocalTransferDelta_l2_lap-reg': f = 'LocalTransferDelta_l2_use-val_lap-reg.pkl' elif f == 'TargetTransfer+NW': f += '.pkl' elif f == 'StackTransfer+SKL-RidgeReg': f += '-VAL.pkl' else: #f += '_use-val.pkl' f += '-VAL.pkl' #leg = 'VALIDATION: ' + leg test_files[f] = leg self.files = test_files if use_sms_plot_data_sets: if max_rows == 3: self.figsize = (4, 10) self.borders = (.15, .9, .95, .05) else: self.figsize = (6, 6) self.borders = (.1, .95, .95, .1) if data_set == bc.DATA_SYNTHETIC_STEP_LINEAR_TRANSFER: self.ylims = (0, 10) elif data_set == bc.DATA_SYNTHETIC_DELTA_LINEAR: self.ylims = (0, 200) elif data_set == bc.DATA_SYNTHETIC_CROSS: self.ylims = (0, 20) elif use_1d_data: self.borders = (.05, .95, .95, .05) if plot_idx in {PLOT_CONSTRAINED, PLOT_VALIDATION}: self.borders = (.1, .95, .95, .05) if max_rows == 3: self.figsize = (12, 10) else: self.figsize = (14, 6) self.borders = (.05, .95, .95, .1) else: if max_rows == 3: self.figsize = (4, 4) self.borders = (.15, .9, .95, .05) else: self.figsize = (14, 6) self.borders = (.05, .95, .95, .08) self.data_set_to_use = pc.data_set self.title = bc.data_name_dict.get(self.data_set_to_use, 'Unknown Data Set') self.show_legend_on_all = show_legend_on_all self.show_legend_on_missing_files = False self.crash_on_missing_files = crash_on_missing_files if self.use_1d_data and self.data_set_to_use < bc.DATA_SYNTHETIC_START: self.title += ' 1D' self.x_axis_string = 'Number of labeled target instances'
def generate_file_names(self, pc): self.files = OrderedDict() base_file_name = 'RelReg-cvx-constraints-%s=%s' use_test = other_method_configs['use_test_error_for_model_selection'] use_val = other_method_configs['use_validation'] #self.files['Mixed-feats_QuadFeatsFew_method=HardConstraints_signs=20.pkl'] = 'Mixed: Hard Constraints, Quad Feats Few, 20 signs' #self.files['SKL-RidgeReg-QuadFeatsFew.pkl'] = 'SKL Ridge Regression, Quad Feats Few' #self.files['SLL-NW.pkl'] = 'LLGC' #self.files['NW.pkl'] = 'NW' if other_method_configs['use_nonneg']: self.files['Mixed-feats_method=Ridge_nonneg.pkl'] = 'Mixed: Ridge, nonneg' self.files['Mixed-feats_method=Rel_pairs=10_corr_nonneg.pkl'] = 'Mixed: Relative, corr, 10 pairs, nonneg' self.files['Mixed-feats_method=Rel_pairs=1000_corr_nonneg.pkl'] = 'Mixed: Relative, corr, 1000 pairs, nonneg' self.files['Mixed-feats_method=Ridge_nonneg_stacked.pkl'] = 'Mixed: Ridge, nonneg, stacked' self.files['Mixed-feats_method=Rel_pairs=10_corr_nonneg_stacked.pkl'] = 'Mixed: Relative, corr, nonneg, stacked, 10 pairs' else: ''' self.files['SKL-RidgeReg.pkl'] = 'SKL Ridge Regression' self.files['Mixed-feats_method=Ridge.pkl'] = 'Mixed: Ridge' self.files['Mixed-feats_method=Rel_signs=10_corr_CVXOPT.pkl'] = 'Mixed: Relative, corr, 10 signs' self.files['Mixed-feats_method=Rel_pairs=10_corr_CVXOPT.pkl'] = 'Mixed: Relative, corr, 10 pairs' self.files['Mixed-feats_method=Rel_signs=1000_corr_CVXOPT.pkl'] = 'Mixed: Relative, corr, 1000 signs' ''' self.files['Mixed-feats_method=Ridge_CVXOPT.pkl'] = 'Mixed: Ridge' self.files['Mixed-feats_method=Rel_signs=10_corr_CVXOPT.pkl'] = 'Mixed: Relative, corr, 10 signs' self.files['Mixed-feats_method=Rel_signs=50_corr_CVXOPT.pkl'] = 'Mixed: Relative, corr, 50 signs' #self.files['Mixed-feats_method=Ridge_stacked.pkl'] = 'Mixed: Ridge, stacked' self.files['Mixed-feats_method=Rel_pairs=10_corr_CVXOPT.pkl'] = 'Mixed: Relative, corr, 10 pairs' #self.files['Mixed-feats_method=Rel_pairs=10_corr_CVXOPT_l1.pkl'] = 'Mixed: Relative, corr, 10 pairs, l1' #self.files['Mixed-feats_method=Rel_signs=10_corr_CVXOPT_l1.pkl'] = 'Mixed: Relative, corr, 10 signs, l1' #self.files['Mixed-feats_method=Rel_signs=10_corr_stacked.pkl'] = 'Mixed: Relative, corr, stacked, 10 signs' ''' self.files['Mixed-feats_method=Ridge.pkl'] = 'Mixed: Ridge' self.files['Mixed-feats_method=HardConstraints_pairs=5.pkl'] = 'Mixed: Hard Constraints, 5 pairs' self.files['Mixed-feats_method=HardConstraints_pairs=10.pkl'] = 'Mixed: Hard Constraints, 10 pairs' self.files['Mixed-feats_method=HardConstraints_pairs=20.pkl'] = 'Mixed: Hard Constraints, 20 pairs' self.files['Mixed-feats_method=HardConstraints_signs=5.pkl'] = 'Mixed: Hard Constraints, 5 signs' self.files['Mixed-feats_method=HardConstraints_signs=10.pkl'] = 'Mixed: Hard Constraints, 10 signs' self.files['Mixed-feats_method=HardConstraints_signs=25.pkl'] = 'Mixed: Hard Constraints, 25 signs' ''' #self.files['SKL-DumReg.pkl'] = 'Predict Mean' sizes = [] suffixes = OrderedDict() #suffixes['mixedCV'] = [None,''] if not use_test: suffixes['nCV'] = [None, '10'] #suffixes['numFeats'] = [str(num_feat)] ordered_keys = [ 'nCV', ] if use_test or use_val: test_files = {} for f, leg in self.files.iteritems(): f = helper_functions.remove_suffix(f, '.pkl') if data_set_to_use == bc.DATA_DROSOPHILIA: f += '_50' if use_test: f += '-TEST.pkl' leg = 'TEST: ' + leg else: f += '-VAL.pkl' leg = 'VALIDATION: ' + leg test_files[f] = leg self.files = test_files methods = [] #methods.append(('numRandPairs','RelReg, %s pairs', 'Our Method: %s relative')) self.title = 'Test' all_params = list(grid_search.ParameterGrid(suffixes)) for file_suffix, legend_name, legend_name_paper in methods: for size in sizes: for params in all_params: file_name = base_file_name file_name = file_name % (file_suffix, str(size)) legend = legend_name if viz_for_paper: legend = legend_name_paper legend %= str(size) for key in ordered_keys: if not params.has_key(key): continue value = params[key] if value is None: continue if value == '': file_name += '-' + key if not viz_for_paper: legend += ', ' + key else: file_name += '-' + key + '=' + str(value) if not viz_for_paper: legend += ', ' + str(value) + ' ' + key if use_test: file_name += '-TEST' legend = 'TEST: ' + legend file_name += '.pkl' self.files[file_name] = legend self.files['SKL-DumReg.pkl'] = 'Predict Mean'
def _delete_temp_folder(file): folder = helper_functions.remove_suffix(file, '.pkl') helper_functions.delete_dir_if_empty(folder)
def _temp_experiment_file_name(final_file_name, num_labels): directory = helper_functions.remove_suffix(final_file_name, '.pkl') return directory + '/num_labels=' + str(num_labels) + '.pkl'
def _temp_split_file_name(final_file_name, num_labels, split): directory = helper_functions.remove_suffix(final_file_name, '.pkl') return directory + '/num_labels=' + str(num_labels) + '_split=' + str(split) + '.pkl'
def generate_file_names(self, pc): self.files = OrderedDict() base_file_name = 'RelReg-cvx-constraints-%s=%s' use_test = other_method_configs['use_test_error_for_model_selection'] use_val = other_method_configs['use_validation'] #self.files['Mixed-feats_QuadFeatsFew_method=HardConstraints_signs=20.pkl'] = 'Mixed: Hard Constraints, Quad Feats Few, 20 signs' #self.files['SKL-RidgeReg-QuadFeatsFew.pkl'] = 'SKL Ridge Regression, Quad Feats Few' #self.files['SLL-NW.pkl'] = 'LLGC' #self.files['NW.pkl'] = 'NW' if viz_type == VIZ_SAME_SIGN: self.files['Mixed-feats_method=Ridge.pkl'] = 'Ridge' self.files[ 'Mixed-feats_method=Rel_meanB-pairsSameSignPrimalHinge=1-use_sign_corr_l1.pkl'] = 'Our Method: 100% pairwise signs' elif viz_type == VIZ_DUAL: self.files['Mixed-feats_method=Ridge.pkl'] = 'Ridge' #self.files['Mixed-feats_method=Rel_meanB_signs=1-use_sign_corr_l1.pkl'] = 'Primal: Signs, meanB' ##self.files['Mixed-feats_method=Rel_dual_meanB_signs=1-use_sign_corr_l1.pkl'] = 'Dual: Signs, meanB' self.files[ 'Mixed-feats_method=Rel_dual_signs=1-use_sign_corr_l1.pkl'] = 'Dual: Signs' #self.files['Mixed-feats_method=Rel_meanB_pairsSameSignPrimal=0.25-use_sign_corr_l1.pkl'] = 'Same Sign Primal: meanB, 25% pairs' #self.files['Mixed-feats_method=Rel_meanB_pairsSameSignPrimal=0.5-use_sign_corr_l1.pkl'] = 'Same Sign Primal: meanB, 50% pairs' #self.files['Mixed-feats_method=Rel_meanB_pairsSameSignPrimal=1-use_sign_corr_l1.pkl'] = 'Same Sign Primal: meanB, 100% pairs' #self.files['Mixed-feats_method=Rel_meanB_pairsSameSignPrimal=2-use_sign_corr_l1.pkl'] = 'Same Sign Primal: meanB, 200% pairs' #self.files['Mixed-feats_method=Rel_meanB-pairsSameSignQCQP=1-use_sign_corr_l1.pkl'] = 'Same sign QCQP' self.files[ 'Mixed-feats_method=Rel_meanB-pairsSameSignPrimalHinge=1-use_sign_corr_l1.pkl'] = 'Same Sign Hinge' self.files[ 'Mixed-feats_method=Rel_meanB-pairsSameSignPrimalHinge=1-use_sign_corr_l1_fixC3'] = 'Same Sign Hinge: Fix C2' elif viz_type == VIZ_EXPERIMENT: self.files['Mixed-feats_method=Ridge.pkl'] = 'Mixed: Ridge' self.files['Mixed-feats_method=Lasso.pkl'] = 'Mixed: Lasso' ''' self.files['Mixed-feats_method=Rel_nonneg_l1.pkl'] = 'Mixed: Nonneg' self.files['Mixed-feats_method=Rel_nonneg_not-relaxed_l1.pkl'] = 'Mixed: Nonneg, not relaxed' ''' self.files[ 'Mixed-feats_method=Rel_signs=0.25-use_sign_corr_l1.pkl'] = 'Mixed: 25% signs' self.files[ 'Mixed-feats_method=Rel_signs=0.5-use_sign_corr_l1.pkl'] = 'Mixed: 50% signs' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'Mixed: 100% signs' ''' self.files['Mixed-feats_method=Rel_pairs=0.25-use_sign_corr_l1.pkl'] = 'Mixed: 25% pairs' self.files['Mixed-feats_method=Rel_pairs=0.5-use_sign_corr_l1.pkl'] = 'Mixed: 50% pairs' self.files['Mixed-feats_method=Rel_pairs=1-use_sign_corr_l1.pkl'] = 'Mixed: 100% pairs' ''' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_trainCorr_l1.pkl'] = 'Mixed: 100% signs, train correlation' elif viz_type == VIZ_PAPER_ERROR: self.files[ 'Mixed-feats_method=Rel-use_sign_nonneg_not-relaxed_l1.pkl'] = 'Nonnegative' self.files['Mixed-feats_method=Ridge.pkl'] = 'Ridge' self.files['Mixed-feats_method=Lasso.pkl'] = 'Lasso' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'PSCR: $p$ signs' self.files[ 'Mixed-feats_method=Rel_pairs=1-use_sign_corr_l1.pkl'] = 'PRCR: $p$ pairs' self.files[ 'Mixed-feats_method=Rel_meanB-pairsSameSignPrimalHinge=1-use_sign_corr_l1.pkl'] = 'PPSCR: $p$ sign pairs' elif viz_type == VIZ_PAPER_SIGNS: self.files[ 'Mixed-feats_method=Rel_signs=0.25-use_sign_corr_l1.pkl'] = 'PSCR: $.25p$ signs' self.files[ 'Mixed-feats_method=Rel_signs=0.5-use_sign_corr_l1.pkl'] = 'PSCR: $.5p$ signs' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'PSCR: $p$ signs' elif viz_type == VIZ_PAPER_RELATIVE: self.files[ 'Mixed-feats_method=Rel_pairs=0.25-use_sign_corr_l1.pkl'] = 'PRCR: $.25p$ pairs' self.files[ 'Mixed-feats_method=Rel_pairs=0.5-use_sign_corr_l1.pkl'] = 'PRCR: $.5p$ pairs' self.files[ 'Mixed-feats_method=Rel_pairs=1-use_sign_corr_l1.pkl'] = 'PRCR: $p$ pairs' elif viz_type == VIZ_PAPER_TRAINING_CORR: self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'PSCR: $p$ signs' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_trainCorr_l1.pkl'] = 'PSCR: $p$ signs, Training Guidance' elif viz_type == VIZ_PAPER_TRANSFER: self.files['Mixed-feats_method=Ridge_transfer'] = 'Ridge: Transfer' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'PSCR: $p$ signs' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1_transfer.pkl'] = 'Transfer PSCR: $p$ signs' elif viz_type == VIZ_PAPER_TRAINING_SINGLE: self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'With Outside Guidance' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_trainCorr_l1.pkl'] = 'Without Outside Guidance' elif viz_type == VIZ_PAPER_HARD_CONSTRAINTS: self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'PSCR: $p$ signs' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_not-relaxed_l1.pkl'] = 'Signed Ridge: $p$' elif viz_type == VIZ_PAPER_TABLE: self.vis_table = True self.data_names_for_table = [ 'Synthetic', 'BH', 'Wine', 'Concrete', 'Housing', 'ITS', 'Heart' ] self.method_names_for_table = [ 'Nonnegative', 'Ridge', 'Lasso', 'PSCR: $p$ Signs', 'PRCR: $p$ Pairs', 'PPSCR: $p$ pairs' ] self.files = OrderedDict() self.files[ 'Mixed-feats_method=Rel-use_sign_nonneg_not-relaxed_l1.pkl'] = 'Nonnegative' self.files['Mixed-feats_method=Ridge.pkl'] = 'Ridge' self.files['Mixed-feats_method=Lasso.pkl'] = 'Lasso' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'Our Method: 100% signs' self.files[ 'Mixed-feats_method=Rel_pairs=1-use_sign_corr_l1.pkl'] = 'Our Method: 100% pairs' self.files[ 'Mixed-feats_method=Rel_meanB-pairsSameSignPrimalHinge=1-use_sign_corr_l1.pkl'] = 'Our Method: 100% pairwise signs' elif viz_type == VIZ_PAPER_TABLE_TRANSFER: self.vis_table = True self.data_names_for_table = [ 'Synthetic', 'BH', 'Wine', 'Concrete', 'Housing', 'ITS', 'Heart' ] self.method_names_for_table = [ 'Ridge', 'Lasso', 'Transfer Ridge', 'PSCR: $p$ Signs', 'Transfer PSCR: $p$ Signs' ] self.files['Mixed-feats_method=Ridge.pkl'] = 'Ridge' self.files['Mixed-feats_method=Lasso.pkl'] = 'Lasso' self.files['Mixed-feats_method=Ridge_transfer'] = 'Ridge: Transfer' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'Our Method' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1_transfer.pkl'] = 'Our Method: Transfer' elif viz_type == VIZ_PAPER_TABLE_TRAINING_CORR: self.vis_table = True self.data_names_for_table = [ 'Synthetic', 'BH', 'Wine', 'Concrete', 'Housing', 'ITS', 'Heart' ] self.method_names_for_table = [ 'PSCR: $p$ Signs', 'PSCR: Training Set Guidance, $p$ Signs' ] self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'Our Method' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_trainCorr_l1.pkl'] = 'Our Method: Training Set Signs' elif viz_type == VIZ_PAPER_TABLE_HARD_CONSTRAINTS: self.vis_table = True self.data_names_for_table = [ 'Synthetic', 'BH', 'Wine', 'Concrete', 'Housing', 'ITS', 'Heart' ] self.method_names_for_table = ['PSCR: $p$ Signs', 'Signed Ridge'] self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_l1.pkl'] = 'Our Method: 100% signs' self.files[ 'Mixed-feats_method=Rel_signs=1-use_sign_corr_not-relaxed_l1.pkl'] = 'Signed Ridge' #self.files['SKL-DumReg.pkl'] = 'Predict Mean' if use_test or use_val: test_files = OrderedDict() for f, leg in self.files.iteritems(): f = helper_functions.remove_suffix(f, '.pkl') if data_set_to_use == bc.DATA_DROSOPHILIA: f += '_50' if use_test: f += '-TEST.pkl' leg = 'TEST: ' + leg else: f += '-VAL.pkl' #leg = 'VALIDATION: ' + leg test_files[f] = leg self.files = test_files self.title = self.results_dir if viz_type > VIZ_EXPERIMENT: self.title = bc.data_name_dict[pc.data_set]