我正在研究使用apache spark ALS的推荐系统,我在下面有这个代码,并希望为我的模型获得最佳(最低)RMSE值
val Array(training, test) = review.randomSplit(Array(0.8, 0.2))
val als = new ALS().setMaxIter(iter).setRegParam(reg).setUserCol("userId").setItemCol("movieId").setRatingCol("rating").setRank(rank)
val model = als.fit(training)
val predictions = model.transform(test)
val evaluator = new RegressionEvaluator().setMetricName("rmse").setLabelCol("rating").setPredictionCol("prediction")
val rmse = evaluator.evaluate(predictions)
这样做我正在调整以下4个选项
每次我训练新模型时,结果的误差范围太宽。有时它像0.43423456
一样非常低,但有时它大于1。
所以我的问题是,
如何处理这个广泛的误差范围?现在,我只是以相同的价值训练模型超过10次并选择最好的模型
为了获得最佳的RMSE值,我是否需要测试所有可能的选项值?它似乎太多了,因为我从用户那里获得了新的评论数据,而新数据会影响RMSE的结果,这意味着优化的选项值每次都会有所不同
我很感激您推荐的任何信息或网址。感谢