All problems
Alternating Least Squares Scalar Step
Problem
Take one alternating-least-squares step for a scalar latent factor.
Given user factors U and ratings r, return sum(u_i * r_i) / (sum(u_i ** 2) + lam). An empty input with zero lam returns 0.0.
Hint
This is ridge regression with a single feature, solved in closed form.
Test cases
case 1
in: [[1,2],[2,4],0]
expected: 2
case 2
in: [[1,2],[2,4],5]
expected: 1
case 3
in: [[1,-1],[3,1],1]
expected: 0.6666666666666666
case 4
in: [[],[],0.5]
expected: 0
Starter codePython
def als_scalar_step(U, r, lam):
# Your code here
pass4 test cases · run your code against them in the editor