cluster_num, age_group_number, age_group_dict, group_age_dict, age_list, deltaX, k_threshold, l_threshold, df_train, df_item_age_uid, pp) elif method == 'YGen': X_obf_dict, X_ori = obfuscations.YGen( df_train, age_group_number, cluster_num, age_list, age_group_dict, group_age_dict, df_item_age_uid, deltaX, k_threshold, l_threshold, pp) elif method == 'XObf': X_obf_dict, X_ori = obfuscations.XObf(deltaX, cluster_num, age_group_number, age_list, group_age_dict, df_train, pp) elif method == 'PrivCheck': X_obf_dict, X_ori = obfuscations.PrivCheck( deltaX, cluster_num, age_group_number, df_cluster, df_train, age_list, age_group_dict, group_age_dict, pp) elif method == 'DP': X_obf_dict, X_ori = obfuscations.differential_privacy( df_train, age_group_dict, beta) elif method == 'Frapp': X_obf_dict, X_ori = obfuscations.Frapp(df_train, df_test, age_group_dict, gamma) elif method == 'Random': X_obf_dict, X_ori = obfuscations.Random( df_train, age_group_dict, p_rand) elif method == 'Sim': X_obf_dict, X_ori = obfuscations.Similarity( df_train, age_group_dict, pp) else: print('Method error. Check method setting.')
df_train = df_cluster.drop(items_test, axis=1) df_test = df_cluster.drop(items_train, axis=1) if method == 'HyObscure': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.HyObscure(df_train, grid_area_dict, area_grid_dict, cluster_num, grid_area_number, grid_list, area_reducibility, area_grid_rowcol_dict, area_grid_colrow_dict, method, grid_rowcol, grid_colrow, l_threshold, k_threshold, deltaX, pp) elif method == 'YGen': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.YGen(df_train, grid_area_dict, grid_area_number, cluster_num, grid_list, area_grid_dict, deltaX, area_reducibility, area_grid_rowcol_dict, area_grid_colrow_dict, method, grid_rowcol, grid_colrow, l_threshold, k_threshold, pp) elif method == 'XObf': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.XObf(df_train, cluster_num, grid_area_number, grid_list, grid_area_dict, area_grid_dict, deltaX, pp, method) elif method == 'PrivCheck': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.PrivCheck(df_train, cluster_num, grid_list, grid_area_dict, grid_area_number, area_grid_dict, deltaX, pp) elif method == 'DP': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.differential_privacy(df_train, grid_area_dict, grid_area_number, beta) elif method == 'Frapp': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.Frapp(df_train, grid_area_dict, gamma) elif method == 'Random': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.Random(df_train, grid_area_dict, p_rand) elif method == 'Sim': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.Similarity(df_train, grid_area_dict, pp) else: print('Method error. Check method setting.') break df_test = funcs.update_grid_group(df_test, grid_area_dict) rec_oris = []
print("all users num: {}".format(len(df_item_ageGroup_uid))) print("split train and test over") print("train num {}".format(len(df_train))) print("test num {}".format(len(df_test))) print("train items {}".format(df_train_items.shape[1])) print("test items {}".format(df_test_items.shape[1])) if method == 'HyObscure': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.HyObscure( df_train, df_test, df_test_rec_items, df_item_age_uid, age_group_dict, group_age_dict, cluster_num, age_group_number, age_list, deltaX, k_threshold, l_threshold, pp) elif method == 'PrivCheck': X_obf_dict, X_ori, model_rf, model_xgb = obfuscations.PrivCheck( df_train, df_test, df_test_rec_items, age_group_number, cluster_num, deltaX, age_list, age_group_dict, group_age_dict, pp) else: print('Method error. Check method setting.') break mae_oris_rf = [] mae_obfs_rf = [] mae_oris_xgb = [] mae_obfs_xgb = [] rec_oris = [] rec_obfs = [] for i in range(100): rmse_ori, rmse_obf = recommendation(X_obf_dict[i], X_ori,