始める無料で始める

Non-negative matrix factorization

1つの行列に対して、同じくらい誤差が小さい因数分解が2通りあり、片方はすべての値が正で、もう片方には負の値が含まれることがあります。

行列 M は、2種類の因数分解でそれぞれ分解されています。各因子行列の組 LU、および WH を確認して違いを見てみましょう。次に、それぞれを掛け合わせた積を比較し、どちらも本質的に同じ積を生成していることを確かめましょう。

この演習はコースの一部です

PySpark で作る Recommendation Engines

コースを見る

演習の手順

  • print() を使って LU の各行列を表示しましょう。LU の一部の値は負になっている点に注目してください。
  • print() を使って WH の各行列を表示しましょう。これら2つの行列の値がすべて正である点に注目してください。
  • LU、および WH はそれぞれ掛け合わせて、LUWH という行列が作成済みです。getRMSE(product_matrix, original_matrix) を使って、LUM にどれくらい近いかと、WHM にどれくらい近いかを比較しましょう。結果は似ていますか?

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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(____, ____))
コードを編集して実行