ALS 모델 튜닝 방법을 Spark에 알려 주세요
이제 어떤 하이퍼파라미터를 어떻게 튜닝할지 Spark에 알려 줄 ParamGrid를 만들고, Spark가 알고리즘 성능을 측정할 수 있도록 evaluator도 구성하겠습니다.
이 연습은 강의의 일부입니다
PySpark로 추천 엔진 만들기
연습 안내
pyspark.ml.evaluation에서RegressionEvaluator를,pyspark.ml.tuning에서ParamGridBuilder와CrossValidator를 임포트하세요.- 제공된
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))