시작하기무료로 시작하기

Non-negative matrix factorization

하나의 행렬이 서로 비슷한 정도로 가까운 두 가지 분해를 가질 수도 있는데, 그중 하나는 모든 값이 양수이고 다른 하나는 일부 값이 음수일 수 있어요.

행렬 M은 두 가지 방식으로 각각 분해되었습니다. 각 분해에서 나온 인수 행렬 쌍 LU, 그리고 WH를 살펴보며 차이를 확인해 보세요. 그런 다음 각 쌍을 곱해 본 결과가 사실상 같은 곱을 만들어 내는지도 확인해 보세요.

이 연습은 강의의 일부입니다

PySpark로 추천 엔진 만들기

강의 보기

연습 안내

  • print()를 사용해 LU 행렬을 확인하세요. LU 행렬에는 일부 음수 값이 있다는 점에 주목하세요.
  • print()를 사용해 WH 행렬을 확인하세요. 이 두 행렬의 모든 값이 양수임을 확인하세요.
  • 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(____, ____))
코드 편집 및 실행