Ejemplo n.º 1
0
def group_test_relative(group_start, length, Data, Label, model, record):
    global handle_type
    graph = []
    record.write(f'the start line is {group_start}\n')
    for j in range(length):
        edge_set = [-1 for i in range(length)]
        for t in range(length):
            if j != t:
                temd = handle_data.data_extend(Data[group_start + j],
                                               Data[group_start + t])
                temi = handle_data.data_extend(Data[group_start + t],
                                               Data[group_start + j])
                temd = np.array(temd).reshape((1, -1))
                temi = np.array(temi).reshape((1, -1))
                if model.predict(temd) > 0:
                    edge_set[t] = 1
                    record.write(f'{j+1:2d}\t{t+1:2d}\t 1\t')
                else:
                    record.write(f'{j+1:2d}\t{t+1:2d}\t-1\t')
                if Label[group_start + j] > Label[group_start + t]:
                    record.write('-1\n')
                else:
                    record.write('1\n')
                if model.predict(temi) > 0:
                    record.write(f'{t+1:2d}\t{j+1:2d}\t 1\t')
                else:
                    record.write(f'{t+1:2d}\t{j+1:2d}\t-1\t')
                if Label[group_start + t] > Label[group_start + j]:
                    record.write('-1\n')
                    record.write('---------------------------------------\n')
                else:
                    record.write('1\n')
                    record.write('---------------------------------------\n')
                if model.predict(temd) == model.predict(temi):
                    record.write('there is a conflict!!!!!!!!!!!!!!!!!!!!\n')
        graph.append(edge_set)
    test_cycle(graph)
Ejemplo n.º 2
0
def rank_the_group(group_data, reference, model, threshold):
    tem = [reference.pop()]
    for each in reference:
        for item in range(len(tem)):
            t = handle_data.data_extend(group_data[each - 1],
                                        group_data[tem[item] - 1])
            t = np.array(t).reshape((1, -1))
            if model.predict(t) > threshold:
                tem.insert(item, each)
                break
            else:
                if item == len(tem) - 1:
                    tem.append(each)
                    break
    return tem
Ejemplo n.º 3
0
def rank_the_group(group_data, reference, model, threshold, record):
    low = []
    high = []
    if len(reference) <= 1:
        return reference
    else:
        pivot = random.choice(reference)
        # record.write(f"the pivot is          {pivot:2d}\n")
        reference.remove(pivot)
        for i in reference:
            t = handle_data.data_extend(group_data[pivot-1], group_data[i-1])
            t = np.array(t).reshape((1,-1))
            if model.predict(t) > threshold:
                low.append(i)
            else:
                high.append(i)
    # record_middle_result('low', low, record)
    # record_middle_result('high', high, record)
    low = rank_the_group(group_data, low, model, threshold, record)
    high = rank_the_group(group_data, high, model, threshold, record)
    high.append(pivot)
    return high + low
Ejemplo n.º 4
0
def rank_the_group(group_data, length, reference, model, record):
    low = []
    high = []
    global handle_type
    if len(reference) <= 1:
        return reference
    else:
        # pivot = reference.pop()
        # print('the reference is ',reference)
        # print('the length is ', length)
        pivot = random.choice(reference)
        # if len(group_data) == length:
        #     record.write(f"the pivot is          {pivot:2d}\n")
        record.write(f"the pivot is          {pivot:2d}\n")
        reference.remove(pivot)
        # print("pivot is ",pivot)
        for i in reference:
            t = handle_data.data_extend(group_data[pivot - 1],
                                        group_data[i - 1])
            t = np.array(t).reshape((1, -1))
            if model.predict(t) > 0:
                low.append(i)
            else:
                high.append(i)
    record.write('low  is ')
    for i in low:
        record.write(f'{i:2d}\t')
    record.write('\n')
    record.write('high is ')
    for i in high:
        record.write(f'{i:2d}\t')
    record.write('\n')
    low = rank_the_group(group_data, len(low), low, model)
    high = rank_the_group(group_data, len(high), high, model)
    high.append(pivot)
    # print('high+low :',high+low)
    return high + low