시작하기무료로 시작하기

MSE를 사용한 모델 평가

ALS 모델을 사용해 테스트 데이터에서 예측 평점을 생성한 뒤, 이 연습 문제의 마지막 부분에서는 모델의 평균제곱오차(Mean Square Error, MSE)를 계산하기 위한 데이터를 준비해 보겠습니다. MSE는 모든 사용자에 대해 (original rating – predicted rating)**2의 평균값으로, 모델이 데이터에 얼마나 잘 맞는지를 나타내는 절대적 적합도 지표입니다.

이를 위해 먼저 ratings_finalpredictions RDD를 모두 ((user, product), rating) 튜플 형태로 정리합니다. 두 RDD에서의 매핑은 다음과 같습니다:

0: user
1: product
2: rating

그런 다음 변환한 RDD들을 join하고, 마지막으로 제곱 차이를 구하는 함수를 적용한 뒤 mean()과 함께 사용해 MSE를 계산합니다.

작업 공간에는 SparkContext sc가 준비되어 있습니다. 또한 ratings_finalpredictions RDD도 이미 제공되어 있습니다.

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

PySpark로 배우는 빅데이터 기초

강의 보기

연습 안내

  • ratings RDD를 ((user, product), rating) 형태로 정리하세요.
  • predictions RDD를 ((user, product), rating) 형태로 정리하세요.
  • 예측 RDD를 실제 평점 RDD와 join 하세요.
  • 원래 평점과 예측 평점 사이의 MSE로 모델을 평가하고 출력하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Prepare ratings data
rates = ratings_final.____(lambda r: ((r[0], r[1]), ____))

# Prepare predictions data
preds = predictions.____(lambda r: ((____, ____), ____))

# Join the ratings data with predictions data
rates_and_preds = rates.____(preds)

# Calculate and print MSE
MSE = rates_and_preds.____(lambda r: (r[1][0] - r[1]____)**2).mean()
print("Mean Squared Error of the model for the test data = {:.2f}".format(____))
코드 편집 및 실행