Beispiel #1
0
def map(distribution_tensor, user_num, time_num, poi_num):
    for i in range(user_num):
        for j in range(time_num):
            for k in range(poi_num):
                file_name = str(i)+"_"+str(j)+"_"+str(k)+".db"
                file_path = "data/step_two/"+file_name
                print file_path
                tensor_tensor_db = open(file_path, 'rw')
                tensor_tensor = pickle.load(tensor_tensor_db)
                res = three_tensor_hadarmard(distribution_tensor[i][j][k], tensor_tensor)
                pickle.dump(res, tensor_tensor_db)
                tensor_tensor_db.close()
Beispiel #2
0
    # init_tensor6 = user_slice_sum_one(temp_tensor)

    # res1, iterator_values1 = tensor_three_mode_product(transition_tensor, init_tensor1)
    # res2, iterator_values2 = tensor_three_mode_product(transition_tensor, init_tensor2)
    # res3, iterator_values3 = tensor_three_mode_product(transition_tensor, init_tensor3)
    #
    # print analysis_eigen_tensor(init_tensor1)
    # print analysis_eigen_tensor(init_tensor2)
    # print analysis_eigen_tensor(init_tensor3)
    #
    # print analysis_eigen_tensor(res1)
    # print analysis_eigen_tensor(res2)
    # print analysis_eigen_tensor(res3)

    temp_tensor = [[[random.choice([0, 1, 1000]) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)]
    temp_tensor = three_tensor_hadarmard(1/three_order_tensor_first_norm(temp_tensor), temp_tensor)

    print "初始张量性质:\n"
    print analysis_eigen_tensor(temp_tensor, "user")
    print analysis_eigen_tensor(temp_tensor, "time")
    print analysis_eigen_tensor(temp_tensor, "poi")
    print "\n"

    temp_tensor1 = temp_tensor[:]
    temp_tensor2 = temp_tensor[:]
    temp_tensor3 = temp_tensor[:]
    temp_tensor4 = temp_tensor[:]

    res1, iterator_values1 = tensor_three_mode_product(transition_tensor, temp_tensor1)
    res2, iterator_values2 = tensor_three_mode_product(transition_tensor2, temp_tensor2)
    # res3, iterator_values3 = shifted_tensor_three_mode_product(transition_tensor3, temp_tensor3, alpha_shift)
Beispiel #3
0
    # res1, iterator_values1 = tensor_three_mode_product(transition_tensor, init_tensor1)
    # res2, iterator_values2 = tensor_three_mode_product(transition_tensor, init_tensor2)
    # res3, iterator_values3 = tensor_three_mode_product(transition_tensor, init_tensor3)
    #
    # print analysis_eigen_tensor(init_tensor1)
    # print analysis_eigen_tensor(init_tensor2)
    # print analysis_eigen_tensor(init_tensor3)
    #
    # print analysis_eigen_tensor(res1)
    # print analysis_eigen_tensor(res2)
    # print analysis_eigen_tensor(res3)

    temp_tensor = [[[random.choice([0, 1, 1000]) for i in range(poi_num)]
                    for j in range(time_num)] for k in range(user_num)]
    temp_tensor = three_tensor_hadarmard(
        1 / three_order_tensor_first_norm(temp_tensor), temp_tensor)

    print "初始张量性质:\n"
    print analysis_eigen_tensor(temp_tensor, "user")
    print analysis_eigen_tensor(temp_tensor, "time")
    print analysis_eigen_tensor(temp_tensor, "poi")
    print "\n"

    temp_tensor1 = temp_tensor[:]
    temp_tensor2 = temp_tensor[:]
    temp_tensor3 = temp_tensor[:]
    temp_tensor4 = temp_tensor[:]

    res1, iterator_values1 = tensor_three_mode_product(transition_tensor,
                                                       temp_tensor1)
    res2, iterator_values2 = tensor_three_mode_product(transition_tensor2,
Beispiel #4
0
    # res1, iterator_values1 = tensor_three_mode_product(transition_tensor, init_tensor1)
    # res2, iterator_values2 = tensor_three_mode_product(transition_tensor, init_tensor2)
    # res3, iterator_values3 = tensor_three_mode_product(transition_tensor, init_tensor3)
    #
    # print analysis_eigen_tensor(init_tensor1)
    # print analysis_eigen_tensor(init_tensor2)
    # print analysis_eigen_tensor(init_tensor3)
    #
    # print analysis_eigen_tensor(res1)
    # print analysis_eigen_tensor(res2)
    # print analysis_eigen_tensor(res3)

    temp_tensor_all_equal = [[[1/(poi_num * time_num * user_num) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)]

    temp_tensor = [[[random.choice([0, 1, 2, 3, 4]) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)]
    temp_tensor_all_ramdom = three_tensor_hadarmard(1/three_order_tensor_first_norm(temp_tensor), temp_tensor)

    temp_tensor_user_equal = [[[1/(poi_num * time_num) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)]

    temp_tensor = [[[random.choice([0, 1, 2, 3, 4]) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)]
    temp_tensor_user_ramdom = user_slice_sum_one(temp_tensor)

    print check_six_order_transition_tensor(transition_tensor)
    # print "初始张量性质:\n"
    # print analysis_eigen_tensor(temp_tensor, "user")
    # print analysis_eigen_tensor(temp_tensor, "time")
    # print analysis_eigen_tensor(temp_tensor, "poi")
    # print "\n"

    res1, iterator_values1 = tensor_three_mode_product(transition_tensor, temp_tensor_all_equal)
    res2, iterator_values2 = tensor_three_mode_product(transition_tensor, temp_tensor_all_ramdom)