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(____, ____))