始める無料で始める

Non-negative matrix factorization

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

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

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

PySpark で作る Recommendation Engines

コースを見る

演習の手順

  • print() を使って L と U の各行列を表示しましょう。L と U の一部の値は負になっている点に注目してください。
  • print() を使って W と H の各行列を表示しましょう。これら2つの行列の値がすべて正である点に注目してください。
  • 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(____, ____))
コードを編集して実行