Tôi rất mới với Apache Spark và dữ liệu lớn nói chung. Tôi đang sử dụng phương pháp ALS để tạo dự đoán xếp hạng dựa trên ma trận người dùng, mục và xếp hạng. Phần khó hiểu là khi tôi chạy kịch bản để tính toán các dự đoán, kết quả là khác nhau mỗi lần, mà không có đầu vào hoặc các dự đoán được yêu cầu thay đổi. Đây có phải là hành vi mong đợi hay kết quả giống hệt nhau không? Dưới đây là mã Python để tham khảo.Kết quả không nhất quán khi sử dụng ALS trong Apache Spark
from pyspark import SparkContext
from pyspark.mllib.recommendation import ALS
sc = SparkContext("local", "CF")
# get ratings from text
def parseRating(line):
fields = line.split(',')
return (int(fields[0]), int(fields[1]), float(fields[2]))
# define input and output files
ratingsFile = 's3n://weburito/data/weburito_ratings.dat'
unratedFile = 's3n://weburito/data/weburito_unrated.dat'
predictionsFile = '/root/weburito/data/weburito_predictions.dat'
# read training set
training = sc.textFile(ratingsFile).map(parseRating).cache()
# get unknown ratings set
predictions = sc.textFile(unratedFile).map(parseRating)
# define model
model = ALS.train(training, rank = 5, iterations = 20)
# generate predictions
predictions = model.predictAll(predictions.map(lambda x: (x[0], x[1]))).collect()
OK, rất vui được biết, cảm ơn bạn! –