Module divAtScale.src.exp3-inter-aff.run_spatial_expr

RELEASE

  • scale: inter-affordance
  • div type: spatial diversity
  • extra info: again, znormed per user.
Expand source code
"""
RELEASE

* scale: inter-affordance
* div type: spatial diversity
* extra info: again, znormed per user.

"""

from divAtScale.src.helpers.dataset_helpers.read_x_process import read_config, load_fs2_inter_condition, \
    sub_sample_lh_df
from divAtScale.src.helpers.semantic_helpers.diversity_measures import get_sim_between_aff
import json
import numpy as np
import pandas as pd


if __name__ == '__main__':

    config = read_config('./expr_config.json')
    YEAR = config['year']
    N_SAMPLE = config['n_sample']
    SEED = config['r_seed']
    release = config['use_release']
    data_dir = "./data/" + str(YEAR) + "_release"
    fig_dir = data_dir + "/Figs"
    res_dir = data_dir + "/res"
    pop_a = np.load(data_dir + "/pop_artists.npy")
    e = np.load(data_dir + "/e_balanced.npy")
    with open(data_dir + "/mid2aid_balanced", 'r') as json_file:
        mid2aid = json.load(json_file)  # matrix id --> artist_id
    aid2mid = {value: key for key, value in mid2aid.items()}

    print("\n*** Experiment 3.1.: inter-aff spatial disparity")

    multi_a_sess = load_fs2_inter_condition(data_dir)
    if N_SAMPLE != -1:
        multi_a_sess = sub_sample_lh_df(multi_a_sess, N_SAMPLE, SEED)

    # in order QP, QA, QE, PA, PE, AE
    aff_sim_res, p_failed = get_sim_between_aff(multi_a_sess, e, aid2mid, subset_a=pop_a)
    avg_sim = np.mean(aff_sim_res, axis=0)
    std_sim = np.std(aff_sim_res, axis=0)
    res_df = pd.DataFrame({"affordance_pair":["QP", "QA", "QE", "PA", "PE", "AE"],
                           "avg_cos_sim":avg_sim,
                           "std_cos_sim":std_sim,
                           "p_failed":[p_failed, p_failed, p_failed, p_failed, p_failed, p_failed]})
    res_df.to_csv(res_dir + "/inter_aff_semantic")
    print(res_df)