Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
greyhatguy007
GitHub Repository: greyhatguy007/Machine-Learning-Specialization-Coursera
Path: blob/main/C3 - Unsupervised Learning, Recommenders, Reinforcement Learning/week2/C3W2/C3W2A1/public_tests.py
3567 views
1
import numpy as np
2
3
def test_cofi_cost_func(target):
4
num_users_r = 4
5
num_movies_r = 5
6
num_features_r = 3
7
8
X_r = np.ones((num_movies_r, num_features_r))
9
W_r = np.ones((num_users_r, num_features_r))
10
b_r = np.zeros((1, num_users_r))
11
Y_r = np.zeros((num_movies_r, num_users_r))
12
R_r = np.zeros((num_movies_r, num_users_r))
13
14
J = target(X_r, W_r, b_r, Y_r, R_r, 2);
15
assert not np.isclose(J, 13.5), f"Wrong value. Got {J}. Did you multiplied the regulartization term by lambda_?"
16
assert np.isclose(J, 27), f"Wrong value. Expected {27}, got {J}. Check the regularization term"
17
18
19
X_r = np.ones((num_movies_r, num_features_r))
20
W_r = np.ones((num_users_r, num_features_r))
21
b_r = np.ones((1, num_users_r))
22
Y_r = np.ones((num_movies_r, num_users_r))
23
R_r = np.ones((num_movies_r, num_users_r))
24
25
# Evaluate cost function
26
J = target(X_r, W_r, b_r, Y_r, R_r, 0);
27
28
assert np.isclose(J, 90), f"Wrong value. Expected {90}, got {J}. Check the term without the regularization"
29
30
31
X_r = np.ones((num_movies_r, num_features_r))
32
W_r = np.ones((num_users_r, num_features_r))
33
b_r = np.ones((1, num_users_r))
34
Y_r = np.zeros((num_movies_r, num_users_r))
35
R_r = np.ones((num_movies_r, num_users_r))
36
37
# Evaluate cost function
38
J = target(X_r, W_r, b_r, Y_r, R_r, 0);
39
40
assert np.isclose(J, 160), f"Wrong value. Expected {160}, got {J}. Check the term without the regularization"
41
42
X_r = np.ones((num_movies_r, num_features_r))
43
W_r = np.ones((num_users_r, num_features_r))
44
b_r = np.ones((1, num_users_r))
45
Y_r = np.ones((num_movies_r, num_users_r))
46
R_r = np.ones((num_movies_r, num_users_r))
47
48
# Evaluate cost function
49
J = target(X_r, W_r, b_r, Y_r, R_r, 1);
50
51
assert np.isclose(J, 103.5), f"Wrong value. Expected {103.5}, got {J}. Check the term without the regularization"
52
53
num_users_r = 3
54
num_movies_r = 4
55
num_features_r = 4
56
57
#np.random.seed(247)
58
X_r = np.array([[0.36618032, 0.9075415, 0.8310605, 0.08590986],
59
[0.62634721, 0.38234325, 0.85624346, 0.55183039],
60
[0.77458727, 0.35704147, 0.31003294, 0.20100006],
61
[0.34420469, 0.46103436, 0.88638208, 0.36175401]])#np.random.rand(num_movies_r, num_features_r)
62
W_r = np.array([[0.04786854, 0.61504665, 0.06633146, 0.38298908],
63
[0.16515965, 0.22320207, 0.89826005, 0.14373251],
64
[0.1274051 , 0.22757303, 0.96865613, 0.70741111]])#np.random.rand(num_users_r, num_features_r)
65
b_r = np.array([[0.14246472, 0.30110933, 0.56141144]])#np.random.rand(1, num_users_r)
66
Y_r = np.array([[0.20651685, 0.60767914, 0.86344527],
67
[0.82665019, 0.00944765, 0.4376798 ],
68
[0.81623732, 0.26776794, 0.03757507],
69
[0.37232161, 0.19890823, 0.13026598]])#np.random.rand(num_movies_r, num_users_r)
70
R_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) * 1
71
72
# Evaluate cost function
73
J = target(X_r, W_r, b_r, Y_r, R_r, 3);
74
75
assert np.isclose(J, 13.621929978531858, atol=1e-8), f"Wrong value. Expected {13.621929978531858}, got {J}."
76
77
print('\033[92mAll tests passed!')
78
79
80