spark ml应用之餐饮菜品推荐代码
时间: 2023-11-23 16:33:24 浏览: 104
好的,这是一个基于Spark ML库实现的餐饮菜品推荐代码示例。请注意,这只是一个简单的示例,您需要根据具体情况进行修改。
```python
from pyspark.ml.recommendation import ALS
from pyspark.ml.evaluation import RegressionEvaluator
from pyspark.sql import SparkSession
# 创建SparkSession
spark = SparkSession.builder.appName('restaurant_recommendation').getOrCreate()
# 读取餐饮菜品评分数据
ratings = spark.read.option('header', 'true').option('inferSchema', 'true').csv('ratings.csv')
# 将评分数据划分为训练集和测试集
(training, test) = ratings.randomSplit([0.8, 0.2])
# 使用ALS算法训练推荐模型
als = ALS(maxIter=5, regParam=0.01, userCol='userID', itemCol='itemID', ratingCol='rating', coldStartStrategy='drop')
model = als.fit(training)
# 对测试集进行预测
predictions = model.transform(test)
# 计算模型的RMSE指标
evaluator = RegressionEvaluator(metricName='rmse', labelCol='rating', predictionCol='prediction')
rmse = evaluator.evaluate(predictions)
print('Root-mean-square error = ' + str(rmse))
# 为指定用户生成推荐结果
user_id = 1
user_ratings = ratings.filter(ratings['userID'] == user_id)
user_unrated_items = ratings.filter(ratings['userID'] != user_id).select('itemID').distinct()
user_unrated_items_with_user_id = user_unrated_items.withColumn('userID', lit(user_id))
recommendations = model.transform(user_unrated_items_with_user_id).orderBy('prediction', ascending=False)
# 输出推荐结果
recommendations.show()
```
请注意,上述代码只是一个示例,您需要根据实际情况进行修改。比如,您需要根据实际数据的格式和路径修改代码中的数据读取和保存路径等。此外,还需要根据实际情况选择合适的算法和参数,并进行模型评估和优化,以提高推荐效果。
阅读全文