Beispiel #1
0
def create_meaned_amp_pred_corrs(prefix='',
        folder='data/models/paper/ours/cnt/deep4/car/',
        params='default',
        perturb_names=('no_dev', 'rand_mad', 'rand_std')):
    """This takes computed cov_vars and transforms them to corrs 
    and saves corrs."""
    if params == 'default':
        params = dict(cnt_preprocessors="$cz_zero_resample_car_demean",
            trial_start=1500, trial_stop=4000)
    res_pool = ResultPool()
    res_pool.load_results(folder,
        params=params)
    result_file_names = res_pool.result_file_names()
    results = res_pool.result_objects()
    
    # sort by dataset filename
    sort_order = np.argsort([r.parameters['dataset_filename'] for r in results])
    
    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]
    
    all_base_names = [name.replace('.result.pkl', '')
        for name in result_file_names]
    if prefix != '':
        prefix = '.' + prefix
    for i_file, base_name in enumerate(all_base_names):
        log.info("Loading {:s}".format(results[i_file].parameters['dataset_filename']))
        create_meaned_amp_pred_corrs_for_file(base_name, prefix, perturb_names)
Beispiel #2
0
def create_meaned_amp_pred_corrs(
    prefix='',
    folder='data/models/paper/ours/cnt/deep4/car/',
    params='default',
    perturb_names=('no_dev', 'rand_mad', 'rand_std')):
    """This takes computed cov_vars and transforms them to corrs 
    and saves corrs."""
    if params == 'default':
        params = dict(cnt_preprocessors="$cz_zero_resample_car_demean",
                      trial_start=1500,
                      trial_stop=4000)
    res_pool = ResultPool()
    res_pool.load_results(folder, params=params)
    result_file_names = res_pool.result_file_names()
    results = res_pool.result_objects()

    # sort by dataset filename
    sort_order = np.argsort(
        [r.parameters['dataset_filename'] for r in results])

    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]

    all_base_names = [
        name.replace('.result.pkl', '') for name in result_file_names
    ]
    if prefix != '':
        prefix = '.' + prefix
    for i_file, base_name in enumerate(all_base_names):
        log.info("Loading {:s}".format(
            results[i_file].parameters['dataset_filename']))
        create_meaned_amp_pred_corrs_for_file(base_name, prefix, perturb_names)
Beispiel #3
0
def load_meaned_amp_pred_corrs(prefix='',
        folder='data/models/paper/ours/cnt/deep4/car/',
        params='default',
        perturb_names=('no_dev','rand_mad', 'rand_std')):
    if params == 'default':
        params = dict(cnt_preprocessors="$cz_zero_resample_car_demean",
            trial_start=1500, trial_stop=4000)
    res_pool = ResultPool()
    res_pool.load_results(folder,
        params=params)
    result_file_names = res_pool.result_file_names()
    results = res_pool.result_objects()
    if prefix != '':
        prefix = '.' + prefix
    
    # sort by dataset filename
    sort_order = np.argsort([r.parameters['dataset_filename'] for r in results])
    
    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]
    
    all_base_names = [name.replace('.result.pkl', '')
        for name in result_file_names]
    clean_mask = []
    all_corrs = dict()
    for i_file, base_name in enumerate(all_base_names):
        # Check that all perturbations exist
        all_perturbations_exist = True
        for perturb_name in perturb_names:
            filename_end =  '{:s}.{:s}.amp_cov_var_corrs.npy'.format(
                prefix, perturb_name)
            filename = base_name + filename_end
            if not os.path.isfile(filename):
                all_perturbations_exist = False
                log.warn("{:s} does not exist".format(
                filename))
        if not all_perturbations_exist:
            log.warn("Skipping {:s} since not all perturbations exist".format(
                base_name))
            continue
                
        # Check that all exist for subject
        if any(s in results[i_file].parameters['dataset_filename'] for s in unclean_sets):
            clean_mask.append(False)
        else:
            clean_mask.append(True)
        for perturb_name in perturb_names:
            filename_end =  '{:s}.{:s}.amp_cov_var_corrs.npy'.format(
                prefix, perturb_name)
            filename = base_name + filename_end
            assert os.path.isfile(filename), ("Expect {:s} to exist".format(
                filename))
            this_arr = all_corrs.pop(perturb_name, [])
            this_corrs = np.load(filename)
            this_arr.append(this_corrs)
            all_corrs[perturb_name] = this_arr
                
    clean_mask = np.array(clean_mask)
    return all_corrs, clean_mask
Beispiel #4
0
def load_data_frame(folder, params=None, shorten_headers=True):
    res_pool = ResultPool()
    res_pool.load_results(folder, params=params)
    result_objs = res_pool.result_objects()
    varying_params = res_pool.varying_params()
    constant_params = res_pool.constant_params()
    file_names = res_pool.result_file_names()
    data_frame = to_data_frame(file_names, result_objs, varying_params,
        constant_params, shorten_headers=shorten_headers)
    data_frame.attrs = {'folder': folder, 'params': params}
    return data_frame
Beispiel #5
0
def load_data_frame(folder, params=None, shorten_headers=True):
    res_pool = ResultPool()
    res_pool.load_results(folder, params=params)
    result_objs = res_pool.result_objects()
    varying_params = res_pool.varying_params()
    constant_params = res_pool.constant_params()
    file_names = res_pool.result_file_names()
    data_frame = to_data_frame(file_names,
                               result_objs,
                               varying_params,
                               constant_params,
                               shorten_headers=shorten_headers)
    data_frame.attrs = {'folder': folder, 'params': params}
    return data_frame
Beispiel #6
0
def create_envelopes(folder_name, params, start, stop):
    res_pool = ResultPool()
    res_pool.load_results(folder_name, params=params)
    res_file_names = res_pool.result_file_names()
    log.info("{:d} files found.".format(len(res_file_names)))
    yaml_file_names = [name.replace('.result.pkl', '.yaml')
        for name in res_file_names]
    stop = stop or len(yaml_file_names)
    i_file = start
    for i_file in xrange(start, stop):
        file_name = yaml_file_names[i_file]
        log.info("Running {:s} ({:d} of {:d})".format(
            file_name, i_file+1, stop))
        log.info("Parameters {:s}".format(
            str(res_pool.result_objects()[i_file].parameters)))
        create_envelopes_for_experiment(file_name)
Beispiel #7
0
def dataset_to_env_file(wanted_dataset_filename):
    """ For any dataset filename, give envelope filename
    These experiments are, where envelopes were calculated from originally"""
    res_pool= ResultPool()
    res_pool.load_results('data/models-backup/paper/ours/cnt/deep4/car/',
             params=dict(cnt_preprocessors="$cz_zero_resample_car_demean",
                 trial_start=1500, trial_stop=4000))

    dataset_to_env_file_name = dict()
    
    for result, res_file_name in zip(res_pool.result_objects(), res_pool.result_file_names()):
        dataset_file_name = result.parameters['dataset_filename']
        envelope_file_name = res_file_name.replace('.result.pkl', '.env.npy')
        assert os.path.isfile(envelope_file_name)
        dataset_to_env_file_name[dataset_file_name] = envelope_file_name
    return dataset_to_env_file_name[wanted_dataset_filename]
def dataset_to_env_file(wanted_dataset_filename):
    """ For any dataset filename, give envelope filename
    These experiments are, where envelopes were calculated from originally"""
    res_pool= ResultPool()
    res_pool.load_results('data/models-backup/paper/ours/cnt/deep4/car/',
             params=dict(cnt_preprocessors="$cz_zero_resample_car_demean",
                 trial_start=1500, trial_stop=4000))

    dataset_to_env_file_name = dict()
    
    for result, res_file_name in zip(res_pool.result_objects(), res_pool.result_file_names()):
        dataset_file_name = result.parameters['dataset_filename']
        envelope_file_name = res_file_name.replace('.result.pkl', '.env.npy')
        assert os.path.isfile(envelope_file_name)
        dataset_to_env_file_name[dataset_file_name] = envelope_file_name
    return dataset_to_env_file_name[wanted_dataset_filename]
Beispiel #9
0
def load_amp_corrs(with_square, with_square_corr, cov_or_corr):
    assert not (with_square and with_square_corr)
    assert cov_or_corr == 'cov' or cov_or_corr == 'corr'
    res_pool = ResultPool()
    res_pool.load_results('data/models/paper/ours/cnt/deep4/car/',
                          params=dict(sensor_names="$all_EEG_sensors",
                                      batch_modifier="null",
                                      low_cut_off_hz="null",
                                      first_nonlin="$elu"))
    result_file_names = res_pool.result_file_names()
    results = res_pool.result_objects()

    # sort by dataset filename
    sort_order = np.argsort(
        [r.parameters['dataset_filename'] for r in results])

    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]

    all_base_names = [
        name.replace('.result.pkl', '') for name in result_file_names
    ]
    clean_mask = []
    all_corrs = dict()
    for i_file, base_name in enumerate(all_base_names):
        if any(s in results[i_file].parameters['dataset_filename']
               for s in unclean_sets):
            clean_mask.append(False)
        else:
            clean_mask.append(True)
        for perturb_name in ('rand_mad', 'rand_std', 'no_dev'):
            file_name_end = '.{:s}.amp_{:s}s.npy'.format(
                perturb_name, cov_or_corr)
            if with_square:
                file_name_end = '.square' + file_name_end
            if with_square_corr:
                file_name_end = ".corrtosquare" + file_name_end
            file_name = base_name + file_name_end
            assert os.path.isfile(file_name), "Expect {:s} to exist".format(
                file_name)
            this_arr = all_corrs.pop(perturb_name, [])
            this_arr.append(np.load(file_name))
            all_corrs[perturb_name] = this_arr

    clean_mask = np.array(clean_mask)
    return all_corrs, clean_mask
Beispiel #10
0
def load_amp_corrs(with_square, with_square_corr, cov_or_corr):
    assert not (with_square and with_square_corr)
    assert cov_or_corr == 'cov' or cov_or_corr == 'corr'
    res_pool = ResultPool()
    res_pool.load_results('data/models/paper/ours/cnt/deep4/car/',
        params=dict(sensor_names="$all_EEG_sensors", batch_modifier="null",
        low_cut_off_hz="null", first_nonlin="$elu"))
    result_file_names = res_pool.result_file_names()
    results = res_pool.result_objects()
    
    # sort by dataset filename
    sort_order = np.argsort([r.parameters['dataset_filename'] for r in results])
    
    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]
    
    all_base_names = [name.replace('.result.pkl', '')
        for name in result_file_names]
    clean_mask = []
    all_corrs = dict()
    for i_file, base_name in enumerate(all_base_names):
        if any(s in results[i_file].parameters['dataset_filename'] for s in unclean_sets):
            clean_mask.append(False)
        else:
            clean_mask.append(True)
        for perturb_name in ('rand_mad', 'rand_std', 'no_dev'):
            file_name_end =  '.{:s}.amp_{:s}s.npy'.format(perturb_name,
                cov_or_corr)
            if with_square:
                file_name_end = '.square' + file_name_end
            if with_square_corr:
                file_name_end = ".corrtosquare" + file_name_end
            file_name = base_name + file_name_end
            assert os.path.isfile(file_name), "Expect {:s} to exist".format(
                file_name)
            this_arr = all_corrs.pop(perturb_name, [])
            this_arr.append(np.load(file_name))
            all_corrs[perturb_name] = this_arr
            
    clean_mask = np.array(clean_mask)
    return all_corrs, clean_mask
Beispiel #11
0
def load_analysis_results(folder, params, file_name_end):
    result_pool = ResultPool()
    result_pool.load_results(folder, params=params)
    result_file_names = result_pool.result_file_names()
    results = result_pool.result_objects() # sort by dataset filename
    sort_order = np.argsort([r.parameters['dataset_filename'] for r in results])
    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]
    analysis_result_per_person = []
    clean_mask = []
    for file_name, result in zip(result_file_names, results):
        analysis_result_file = file_name.replace('.result.pkl', 
            file_name_end)
        assert os.path.isfile(analysis_result_file)
        analysis_result = np.load(analysis_result_file)
        if any(s in result.parameters['dataset_filename'] for s in unclean_sets):
            clean_mask.append(False)
        else:
            clean_mask.append(True)
        analysis_result_per_person.append(analysis_result)
    analysis_result_per_person = np.array(analysis_result_per_person)
    clean_mask = np.array(clean_mask)
    return analysis_result_per_person, clean_mask
Beispiel #12
0
def load_patterns(folder='data/models/paper/ours/csp/car/'):
    res_pool = ResultPool()
    res_pool.load_results(folder)

    result_file_names = res_pool.result_file_names()
    results = res_pool.result_objects()

    # sort by dataset filename
    sort_order = np.argsort([r.parameters['dataset_filename'] for r in results])

    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]

    # now sorted
    dataset_names = [r.parameters['dataset_filename'] for r in results]
    all_patterns = []
    clean_mask = []
    all_exps = []
    for file_name, dataset in zip(result_file_names, dataset_names):
        log.info("Loading for {:s}".format(dataset))
        model_file_name = file_name.replace('.result.pkl', '.pkl')
        csp_exp = np.load(model_file_name)
        patterns = csp_exp.binary_csp.patterns
        pattern_arr = patterns_to_single_array(patterns)
        pattern_arr = pattern_arr.squeeze()
        assert not np.any(np.isnan(pattern_arr))
        all_patterns.append(pattern_arr)
        all_exps.append(csp_exp)
        
        if any([s in dataset for s in unclean_sets]):
            clean_mask.append(False)
        else:
            clean_mask.append(True)

    all_patterns = np.array(all_patterns)
    clean_mask = np.array(clean_mask)
    return all_patterns, clean_mask, all_exps
Beispiel #13
0
def load_analysis_results(folder, params, file_name_end):
    result_pool = ResultPool()
    result_pool.load_results(folder, params=params)
    result_file_names = result_pool.result_file_names()
    results = result_pool.result_objects()  # sort by dataset filename
    sort_order = np.argsort(
        [r.parameters['dataset_filename'] for r in results])
    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]
    analysis_result_per_person = []
    clean_mask = []
    for file_name, result in zip(result_file_names, results):
        analysis_result_file = file_name.replace('.result.pkl', file_name_end)
        assert os.path.isfile(analysis_result_file)
        analysis_result = np.load(analysis_result_file)
        if any(s in result.parameters['dataset_filename']
               for s in unclean_sets):
            clean_mask.append(False)
        else:
            clean_mask.append(True)
        analysis_result_per_person.append(analysis_result)
    analysis_result_per_person = np.array(analysis_result_per_person)
    clean_mask = np.array(clean_mask)
    return analysis_result_per_person, clean_mask
Beispiel #14
0
def load_meaned_amp_pred_corrs(prefix='',
                               folder='data/models/paper/ours/cnt/deep4/car/',
                               params='default',
                               perturb_names=('no_dev', 'rand_mad',
                                              'rand_std')):
    if params == 'default':
        params = dict(cnt_preprocessors="$cz_zero_resample_car_demean",
                      trial_start=1500,
                      trial_stop=4000)
    res_pool = ResultPool()
    res_pool.load_results(folder, params=params)
    result_file_names = res_pool.result_file_names()
    results = res_pool.result_objects()
    if prefix != '':
        prefix = '.' + prefix

    # sort by dataset filename
    sort_order = np.argsort(
        [r.parameters['dataset_filename'] for r in results])

    result_file_names = np.array(result_file_names)[sort_order]
    results = np.array(results)[sort_order]

    all_base_names = [
        name.replace('.result.pkl', '') for name in result_file_names
    ]
    clean_mask = []
    all_corrs = dict()
    for i_file, base_name in enumerate(all_base_names):
        # Check that all perturbations exist
        all_perturbations_exist = True
        for perturb_name in perturb_names:
            filename_end = '{:s}.{:s}.amp_cov_var_corrs.npy'.format(
                prefix, perturb_name)
            filename = base_name + filename_end
            if not os.path.isfile(filename):
                all_perturbations_exist = False
                log.warn("{:s} does not exist".format(filename))
        if not all_perturbations_exist:
            log.warn("Skipping {:s} since not all perturbations exist".format(
                base_name))
            continue

        # Check that all exist for subject
        if any(s in results[i_file].parameters['dataset_filename']
               for s in unclean_sets):
            clean_mask.append(False)
        else:
            clean_mask.append(True)
        for perturb_name in perturb_names:
            filename_end = '{:s}.{:s}.amp_cov_var_corrs.npy'.format(
                prefix, perturb_name)
            filename = base_name + filename_end
            assert os.path.isfile(filename), (
                "Expect {:s} to exist".format(filename))
            this_arr = all_corrs.pop(perturb_name, [])
            this_corrs = np.load(filename)
            this_arr.append(this_corrs)
            all_corrs[perturb_name] = this_arr

    clean_mask = np.array(clean_mask)
    return all_corrs, clean_mask