mat_c = np.array(Matrix_C) mat_r = np.array(Matrix_R) print(mat_c.shape, " ", U_mat.shape, " ", mat_r.shape) Cur_mat = np.matmul(Matrix_C, U_mat) Cur_mat = np.matmul(Cur_mat, Matrix_R) print("Final Matrix Shape") print(Cur_mat.shape) a = Cur_mat[0, 1] Cur_mat = np.add(Cur_mat, means_mat) return Cur_mat train2 = recsys_utils.read_train() test = recsys_utils.read_test_table() truth = test['rating'].as_matrix() user_map = recsys_utils.read_user_map() movie_map = recsys_utils.read_movie_map() print("Train Data Shape") print(train2.shape) means_mat = Usr_Mean(train2) print("Done till here") train = Subtract_Mean_value(train2) '''Calcuating Frobnieus Norm rowwise and column wise''' start_time_user = time()
if c >= n: break elif temp_rating_dist[i][1][0] != 0: rating += temp_rating_dist[i][1][0] * temp_rating_dist[i][ 0][0] den += temp_rating_dist[i][0][0] c += 1 if den == 0: den = 1 rating = rating / den pred.append(rating) return np.array(pred) if __name__ == '__main__': training = recsys_utils.read_train(sparse=True) testing = recsys_utils.read_test_table().head(10000) truth = testing['rating'].head(10000).as_matrix() user_mappings = recsys_utils.read_user_map() movie_mappings = recsys_utils.read_movie_map() user_means = np.squeeze(np.sum(np.array(training.todense()), axis=1)) user_means = np.divide(user_means, (np.array(training.todense()) != 0).sum(1)) print('collaborative filtering for User-User:'******'float32')), metric='cosine') print('distance calculation time:', time() - start_time_user) predictions = predict(training, user_dist, testing, user_mappings, movie_mappings, 10)
np.dot(matrix.T, np.reshape(U[:, i], [U.shape[0], 1])), [matrix.shape[1]]) V_t = V.T if save_factorized: np.save('temp_data/U', U) np.save('temp_data/V_t', V_t) np.save('temp_data/sigma', sigma) print('matrices saved!') return U, V_t, sigma if __name__ == '__main__': # Read data train = np.array(recsys_utils.read_train()) test = recsys_utils.read_test_table() truth = test['rating'].as_matrix() user_map = recsys_utils.read_user_map() movie_map = recsys_utils.read_movie_map() start_time = time() # Subtracting mean of data from train set user_means = np.squeeze(np.sum(train, axis=1)) user_means = np.divide(user_means, (train != 0).sum(1)) for i in range(train.shape[0]): train[i, :][train[i, :] != 0] -= user_means[i] # Decomposition and Reconstruction of SVD U, V_t, sigma = SVD(train, retain_energy=90, save_factorized=True)