def group_test(Data, Label, Ds, Dl, train_index_start, num_of_train, model, threshold_value, result_number, winner_number, all_group_top_precision, all_group_recall, all_group_top_exact_accuracy, all_group_exact_accuracy, record): for group_index_start in range(len(Ds)): if group_index_start<train_index_start: group_start = Ds[group_index_start] elif (group_index_start>=train_index_start and group_index_start<train_index_start+num_of_train): continue else: group_start = Ds[group_index_start] length = Dl[group_index_start] group_end = group_start + length group_data = Data[group_start:group_end, :] group_label = Label[group_start:group_end] reference = [t for t in range(1, length + 1)] random.shuffle(reference) predict_rank = rank_the_group(group_data, reference, model, threshold_value, record) group_rank = handle_data.exchange(group_label) # reference = [t for t in range(1, length + 1)] # record_rank_reference(reference, group_rank, predict_rank, record) # -------------------------------------------------------------------- # group_test_relative(group_data, group_label, length, model, threshold_value, record) # -------------------------------------------------------------------- group_top_precision, group_recall, group_top_exact_accuracy = count_top(group_rank, predict_rank, result_number, winner_number) group_exact_accuracy = calacc(group_rank, predict_rank) all_group_top_precision.append(group_top_precision) all_group_recall.append(group_recall) all_group_top_exact_accuracy.append(group_top_exact_accuracy) all_group_exact_accuracy.append(group_exact_accuracy) # record.write("the group top precision is {0}\n".format(group_top_precision)) # record.write("the group top exact accuracy is {0}\n".format(group_top_exact_accuracy)) # record.write("the group accuracy is {0}\n".format(group_exact_accuracy)) # record.write("-------------------------------------------------------------------------------------------\n") return all_group_top_precision, all_group_recall, all_group_top_exact_accuracy, all_group_exact_accuracy
def group_test(Data, model, threshold_value): length = len(Data) reference = [t for t in range(1, length + 1)] # random.shuffle(reference) predict_rank = rank_the_group(Data, reference, model, threshold_value) predict_rank = handle_data.exchange(predict_rank) return predict_rank
def group_test(Data, Label, Ds, Dl, train_index_start, num_of_train, model, record): for group_index_start in range(1, len(Ds) + 1): if group_index_start < train_index_start: group_start = Ds[group_index_start] elif (group_index_start >= train_index_start and group_index_start < train_index_start + num_of_train): continue else: group_start = Ds[group_index_start] length = Dl[group_index_start] group_end = group_start + length group_data = Data[group_start:group_end, :] group_label = Label[group_start:group_end] # reference = [t for t in range(1, length + 1)] # reference1 = rank_the_group(group_data, length, reference, model) # group_test_relative(group_start, length, Data, Label, model) for time in range(100): reference = [t for t in range(1, length + 1)] random.shuffle(reference) record.write("the random order is ") for t in reference: record.write(f"{int(t):2d}\t") record.write("\n") # print(reference) reference = rank_the_group(group_data, length, reference, model) # if not operator.eq(reference,reference1): # # print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") # record.write("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n") # record.write("the predict rank is ") # for t in reference: # record.write(f"{int(t):2d}\t") # record.write('\n') # record.write("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n") # reference1 = reference # print(reference) # record.write("the predict rank is ") # for t in reference: # record.write(f"{int(t):2d}\t") # record.write("\n") # print(reference) group_rank = handle_data.exchange(group_label) # print(group_rank) record_rank_reference(group_rank, reference) group_precision, group_top_exact_accuracy = count_top( group_rank, reference) group_accuracy = calacc(group_rank, reference) all_group_top_precision.append(group_precision) all_group_top_exact_accuracy.append(group_top_exact_accuracy) all_group_accuracy.append(group_accuracy) record.write(f"the group top precision is {group_precision}\n") record.write( f"the group top exact accuracy is {group_top_exact_accuracy} \n") record.write(f"the group accuracy is {group_accuracy}\n") record.write( "-------------------------------------------------------------------------------------------\n" )
def analyse_group_result(true_label, predict_label, result_number, winner_number, all_group_top_precision, all_group_recall, all_group_top_exact_accuracy, all_group_exact_accuracy, all_group_auc): group_true_label = handle_data.exchange(true_label) group_predict_label = handle_data.exchange(predict_label) group_top_precision, group_recall, group_top_exact_accuracy = count_top( group_true_label, group_predict_label, result_number, winner_number) group_exact_accuracy = calacc(group_true_label, group_predict_label, result_number, winner_number) change_true_label = change_to_0_1(group_true_label, winner_number) change_predict_label = change_to_0_1(group_predict_label, result_number) change_true_label = np.array(change_true_label) change_predict_label = np.array(change_predict_label) all_group_auc.append( skmet.roc_auc_score(change_true_label, change_predict_label)) all_group_top_precision.append(group_top_precision) all_group_recall.append(group_recall) all_group_top_exact_accuracy.append(group_top_exact_accuracy) all_group_exact_accuracy.append(group_exact_accuracy) return all_group_top_precision, all_group_recall, all_group_top_exact_accuracy, all_group_exact_accuracy, all_group_auc