開始使用免費開始

非負矩陣分解

同一個矩陣有時可能會有兩種同樣接近的分解,其中一種所有值都為正,另一種則包含一些負值。

矩陣 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(____, ____))
編輯並執行程式碼