舉例:有一個用戶沒有給任何電影評分,影響 θ(5) 值的唯一一項(xiàng)是λ/2[(θ(5)_1)^2+(θ(5)_2)^2]。即要選一個向量 θ(5)使得最后的正則化項(xiàng)盡可能地小。但是如果目標(biāo)是最小化這一項(xiàng),那么你最終得到的就會是 θ(5)=[0;0]。θ(5) 轉(zhuǎn)置乘以 x(i)對任意i結(jié)果都會等于0,使得沒有任何好電影推薦給她。均值歸一化的想法可以解決這個問題。

實(shí)現(xiàn)均值歸一化:計(jì)算每個電影所得評分的均值,它們存在一個向量中,稱這個向量為 μ。
電影評分矩陣(Y矩陣):它的每一行都減去那個電影的平均評分。這么做就是把每個電影都?xì)w一化為平均評分為零。所以每個電影在新矩陣Y中的平均評分都是0。
然后對評分?jǐn)?shù)據(jù)集使用協(xié)同過濾算法。新矩陣Y(每行的均值都是0)當(dāng)做數(shù)據(jù)集用來學(xué)習(xí),參數(shù) θ(j)和特征變量 x(i)就是用這些均值歸一化后的電影評分來學(xué)習(xí)。
θ(j) 轉(zhuǎn)置乘以 x(i) ,其中 x 和 θ 都是均值歸一化的數(shù)據(jù)集中學(xué)習(xí)出的參數(shù),但是因?yàn)閷?shù)據(jù)集減去了均值,所以為了給電影i預(yù)測評分需要把這個均值加回來,這就是我得到的預(yù)測值。
如果參數(shù)是0,最終會預(yù)測為 μi。意思是如果Eve 沒給任何電影評分,我們就對這個新用戶 Eve 一無所知,我們要做的就是預(yù)測她對每個電影的評分,就是這些電影所得的平均評分。

如果你有些電影是沒有評分的,你可以嘗試這個算法的其他版本,對不同的列進(jìn)行歸一化,使得它們的均值為0。