def mtt(data, user_num, poi_num, zero_adjustment=True): print "共有" + str(user_num) + "个用户" for key in data.keys(): print "用户" + str(key) + "序列为" + str(data[key]) correlation_matrix = get_correlation_matrix(data, user_num) nor_cor_matrix = normalize(correlation_matrix) print "归一化相关系数矩阵: ", nor_cor_matrix transition_tensor = build_six_order_transition_tensor(data, poi_num, nor_cor_matrix, zero_adjustment) print "转移张量非零元素占比:", sparsity(transition_tensor) print "转移张量是否满足随机性:", check_six_order_transition_tensor(transition_tensor) return transition_tensor
def mtt(data, user_num, poi_num, zero_adjustment=True): print "共有" + str(user_num) + "个用户" for key in data.keys(): print "用户" + str(key) + "序列为" + str(data[key]) correlation_matrix = get_correlation_matrix(data, user_num) nor_cor_matrix = normalize(correlation_matrix) print "归一化相关系数矩阵: ", nor_cor_matrix transition_tensor = build_six_order_transition_tensor( data, poi_num, nor_cor_matrix, zero_adjustment) print "转移张量非零元素占比:", sparsity(transition_tensor) print "转移张量是否满足随机性:", check_six_order_transition_tensor(transition_tensor) return transition_tensor
# # 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) res3, iterator_values3 = tensor_three_mode_product(transition_tensor, temp_tensor_user_equal) res4, iterator_values4 = tensor_three_mode_product(transition_tensor, temp_tensor_user_ramdom) print analysis_eigen_tensor(res1, "user") print analysis_eigen_tensor(res1, "time") print analysis_eigen_tensor(res1, "poi") print "\n"