시작하기무료로 시작하기

ALS 모델 튜닝 방법을 Spark에 알려 주세요

이제 어떤 하이퍼파라미터를 어떻게 튜닝할지 Spark에 알려 줄 ParamGrid를 만들고, Spark가 알고리즘 성능을 측정할 수 있도록 evaluator도 구성하겠습니다.

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

PySpark로 추천 엔진 만들기

강의 보기

연습 안내

  • pyspark.ml.evaluation에서 RegressionEvaluator를, pyspark.ml.tuning에서 ParamGridBuilderCrossValidator를 임포트하세요.
  • 제공된 ParamGridBuilder를 사용해 param_grid라는 ParamGrid를 빌드하세요. 모델 이름과 각 하이퍼파라미터 이름을 넘겨 .addGrid() 메서드를 각각의 하이퍼파라미터에 호출하세요(예: .addGrid(als.rank, [])). rank, maxIter, regParam 하이퍼파라미터에 대해 수행하고, Spark가 시도할 값 목록은 아래와 같이 제공하세요:
 rank: [10, 50, 100, 150]  
 maxIter: [5, 50, 100, 200]  
 regParam: [.01, .05, .1, .15]  
  • evaluator라는 RegressionEvaluator를 생성하세요. metricName"rmse", labelCol"rating"으로 설정하고, 예측을 생성할 때 사용할 predictionCol"prediction"으로 지정하세요.
  • len(param_grid)를 실행해 param_grid가 제대로 생성되었는지, 그리고 테스트할 하이퍼파라미터 조합 수가 올바른지 확인하세요. 이 값은 ParamGridBuilder에 있는 rank 값의 개수 × maxIter 값의 개수 × regParam 값의 개수와 같아야 합니다.

실습형 인터랙티브 연습

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

# Import the requisite items
from pyspark.ml.evaluation import ____
from pyspark.ml.____ import ____, ____

# Add hyperparameters and their respective values to param_grid
____ = ParamGridBuilder() \
            .addGrid(als.rank, [____, ____, ____, ____]) \
            .addGrid(als.____, [____, ____, ____, ____]) \
            .addGrid(als.____, [____, ____, ____, ____]) \
            .build()
           
# Define evaluator as RMSE and print length of evaluator
____ = RegressionEvaluator(metricName="____", labelCol="____", predictionCol="____") 
print ("Num models to be tested: ", len(param_grid))
코드 편집 및 실행