Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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"
        )
Ejemplo n.º 4
0
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