非負矩陣分解
同一個矩陣有時可能會有兩種同樣接近的分解,其中一種所有值都為正,另一種則包含一些負值。
矩陣 M 已分別用兩種不同的方式做了分解。請查看兩組分解矩陣 L 與 U、以及 W 與 H 的差異。接著計算它們的乘積,觀察是否得到幾乎相同的結果。
本練習屬於課程
使用 PySpark 打造推薦引擎
練習說明
- 使用
print()檢視矩陣L與U。注意在L和U中有些值是負的。 - 使用
print()檢視矩陣W與H。注意這兩個矩陣中的所有值都是正的。 - 已將
L與U、以及W與H分別相乘得到LU與WH矩陣。使用getRMSE(product_matrix, original_matrix)比較LU與M的接近程度,以及WH與M的接近程度。它們是否相近?
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# View the L, U, W, and H matrices.
print("Matrices L and U:")
print(____)
print(____)
print("Matrices W and H:")
print(____)
print(____)
# Calculate RMSE between LU and M
print("RMSE of LU: ", getRMSE(____, ____))
# Calculate RMSE between WH and M
print("RMSE of WH: ", getRMSE(____, ____))