Non-negative matrix factorization
하나의 행렬이 서로 비슷한 정도로 가까운 두 가지 분해를 가질 수도 있는데, 그중 하나는 모든 값이 양수이고 다른 하나는 일부 값이 음수일 수 있어요.
행렬 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(____, ____))