PySpark로 추천 엔진 만들기
Jamen Long
Data Scientist at Nike
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
인수
userCol: 사용자 ID가 포함된 열 이름itemCol: 아이템 ID가 포함된 열 이름ratingCol: 평점이 포함된 열 이름

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
하이퍼파라미터
rank, $k$: 잠재 특성의 수als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
하이퍼파라미터
rank, $k$: 잠재 특성의 수maxIter: 반복 횟수als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
하이퍼파라미터
rank, $k$: 잠재 특성의 수maxIter: 반복 횟수regParam: 람다als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
하이퍼파라미터
rank, $k$: 잠재 특성의 수maxIter: 반복 횟수regParam: 람다alpha: 나중에 설명. 암묵적 평점에서만 사용.als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
추가 인수
nonnegative = True: 양수 값 보장als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
추가 인수
nonnegative = True: 양수 값 보장coldStartStrategy = "drop": 테스트/훈련 분할 문제 처리als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
추가 인수
nonnegative = True: 양수 값 보장coldStartStrategy = "drop": 테스트/훈련 분할 문제 처리implicitPrefs = True: 평점 유형에 따라 True/False 설정als = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
# Fit ALS to training dataset
model = als.fit(training_data)
# Generate predictions on test dataset
predictions = model.transform(test_data)
PySpark로 추천 엔진 만들기