コード例 #1
0
def test(train_data_file_name, attribute_file_name, test_data_file_name,
         optimizer):
    data = read_data(train_data_file_name)
    attributes = Attribute.read_attribute(attribute_file_name, data)
    tmp_attributes = copy.deepcopy(attributes)
    root = tree_generate(data, tmp_attributes, attributes, optimizer)
    right = 0
    # bfs(root)
    test_data = read_data(test_data_file_name)
    Attribute.change_types(attributes, test_data)
    for d in test_data:
        category, probability = tree_test(root, d, attributes)
        pmax = -1
        index = -1
        for i in range(len(probability)):
            # print(probability[i])
            if probability[i] > pmax:
                pmax = probability[i]
                index = i
        # print(category[index], d.value[-1])
        if category[index] == d.value[-1]:
            right += 1
    print("correct percentage: %f" % (right / len(test_data)))