吳恩達機器學習筆記59-向量化:低秩矩陣分解與均值歸一化(Vectorization: Low Rank Matrix Factorization & Mean Normalization)
一、向量化:低秩矩陣分解
之前我們介紹了協同過濾算法,本節介紹該算法的向量化實現,以及說說有關該算法可以做的其他事情。
舉例:
1.當給出一件產品時,你能否找到與之相關的其它產品。
2.一位用戶最近看上一件產品,有沒有其它相關的產品,你可以推薦給他。
我們將要做的是:實現一種選擇的方法,寫出協同過濾算法的預測情況。
我們有關於五部電影的數據集,我將要做的是,將這些用戶的電影評分,進行分組並存
到一個矩陣中。
我們有五部電影,以及四位用戶,那麽 這個矩陣 ?? 就是一個5 行4 列的矩陣,它將
這些電影的用戶評分數據都存在矩陣裏:
我們記:
推出評分:
上述就是協同矩陣的向量化。
那麽我們應該怎樣來找出相關商品呢? 首先對於每一個產品i,我們找出其特征向量找出使兩個商品特征比較相同的產品,即可以找出使得最小的五個商品,則這5個商品就是和i最相似的5個商品,既可以作為相關產品推薦。
二:均值歸一化
假設有下面一組數據:
即有一個用戶Eve沒有對任何電影進行評價,這時候如果我們使用之前的方法測Eve對每部電影的評分,則最小化圖上的公式,因為對於任意i,Eve都沒有評分過,因此①式r(i, j)=1條件不滿足,因此①對於最小化Eve的數據沒有作用,②也沒有作用,因此對於最小化Eve數據有作用的便是③式,即
雖然結果是得出來了,但是這個結果我們沒辦法用來推薦,因為對所有的電影,其都為0。
因此,我們引入歸一化:
即對於某一部電影,利用已經評過分的值(?不計算在內),計算出平均分,記為μ,於是歸一化矩陣為原來的Y的每一個數減去這一行(這一部電影)對應的平均值,得到新的Y,如上圖右側所示,利用這個新的Y矩陣學習θ和x的值。則對於Eve,之前關於最小化的分析仍成立,即。
歸一化之後的預測值公式為:
因此對於Eve的預測值為:
其實對於這個預測結果我們是可以接受的,因為我們不知道Eve的喜好,因此把她的評分預測為平均水平。
特殊情況:若出現有一部電影無評分的情況,則可以考慮使每列的均值為0,即計算每列的均值,用Y減去對應列的均值得到新的Y矩陣。
吳恩達機器學習筆記59-向量化:低秩矩陣分解與均值歸一化(Vectorization: Low Rank Matrix Factorization & Mean Normalization)