Path: blob/main/C3 - Unsupervised Learning, Recommenders, Reinforcement Learning/week2/C3W2/C3W2A1/public_tests.py
3567 views
import numpy as np12def test_cofi_cost_func(target):3num_users_r = 44num_movies_r = 55num_features_r = 367X_r = np.ones((num_movies_r, num_features_r))8W_r = np.ones((num_users_r, num_features_r))9b_r = np.zeros((1, num_users_r))10Y_r = np.zeros((num_movies_r, num_users_r))11R_r = np.zeros((num_movies_r, num_users_r))1213J = target(X_r, W_r, b_r, Y_r, R_r, 2);14assert not np.isclose(J, 13.5), f"Wrong value. Got {J}. Did you multiplied the regulartization term by lambda_?"15assert np.isclose(J, 27), f"Wrong value. Expected {27}, got {J}. Check the regularization term"161718X_r = np.ones((num_movies_r, num_features_r))19W_r = np.ones((num_users_r, num_features_r))20b_r = np.ones((1, num_users_r))21Y_r = np.ones((num_movies_r, num_users_r))22R_r = np.ones((num_movies_r, num_users_r))2324# Evaluate cost function25J = target(X_r, W_r, b_r, Y_r, R_r, 0);2627assert np.isclose(J, 90), f"Wrong value. Expected {90}, got {J}. Check the term without the regularization"282930X_r = np.ones((num_movies_r, num_features_r))31W_r = np.ones((num_users_r, num_features_r))32b_r = np.ones((1, num_users_r))33Y_r = np.zeros((num_movies_r, num_users_r))34R_r = np.ones((num_movies_r, num_users_r))3536# Evaluate cost function37J = target(X_r, W_r, b_r, Y_r, R_r, 0);3839assert np.isclose(J, 160), f"Wrong value. Expected {160}, got {J}. Check the term without the regularization"4041X_r = np.ones((num_movies_r, num_features_r))42W_r = np.ones((num_users_r, num_features_r))43b_r = np.ones((1, num_users_r))44Y_r = np.ones((num_movies_r, num_users_r))45R_r = np.ones((num_movies_r, num_users_r))4647# Evaluate cost function48J = target(X_r, W_r, b_r, Y_r, R_r, 1);4950assert np.isclose(J, 103.5), f"Wrong value. Expected {103.5}, got {J}. Check the term without the regularization"5152num_users_r = 353num_movies_r = 454num_features_r = 45556#np.random.seed(247)57X_r = np.array([[0.36618032, 0.9075415, 0.8310605, 0.08590986],58[0.62634721, 0.38234325, 0.85624346, 0.55183039],59[0.77458727, 0.35704147, 0.31003294, 0.20100006],60[0.34420469, 0.46103436, 0.88638208, 0.36175401]])#np.random.rand(num_movies_r, num_features_r)61W_r = np.array([[0.04786854, 0.61504665, 0.06633146, 0.38298908],62[0.16515965, 0.22320207, 0.89826005, 0.14373251],63[0.1274051 , 0.22757303, 0.96865613, 0.70741111]])#np.random.rand(num_users_r, num_features_r)64b_r = np.array([[0.14246472, 0.30110933, 0.56141144]])#np.random.rand(1, num_users_r)65Y_r = np.array([[0.20651685, 0.60767914, 0.86344527],66[0.82665019, 0.00944765, 0.4376798 ],67[0.81623732, 0.26776794, 0.03757507],68[0.37232161, 0.19890823, 0.13026598]])#np.random.rand(num_movies_r, num_users_r)69R_r = np.array([[1, 0, 1], [1, 0, 0], [1, 0, 0], [0, 1, 0]])#(np.random.rand(num_movies_r, num_users_r) > 0.4) * 17071# Evaluate cost function72J = target(X_r, W_r, b_r, Y_r, R_r, 3);7374assert np.isclose(J, 13.621929978531858, atol=1e-8), f"Wrong value. Expected {13.621929978531858}, got {J}."7576print('\033[92mAll tests passed!')77787980