(d)
| 53 | # prediction[i,j] = W[i].dot(U[j]) + b[i] + c.T[j] + mu |
| 54 | |
| 55 | def get_loss(d): |
| 56 | # d: (user_id, movie_id) -> rating |
| 57 | N = float(len(d)) |
| 58 | sse = 0 |
| 59 | for k, r in d.items(): |
| 60 | i, j = k |
| 61 | p = W[i].dot(U[j]) + b[i] + c[j] + mu |
| 62 | sse += (p - r)*(p - r) |
| 63 | return sse / N |
| 64 | |
| 65 | |
| 66 | # train the parameters |