itemcf对Movielens数据集中的ratings.csv做推荐,分析MAE
时间: 2024-06-11 12:08:29 浏览: 11
MAE(Mean Absolute Error)是评估推荐算法效果的一种常用指标,它表示预测值与真实值之差的绝对值的平均值。
在使用itemcf算法对Movielens数据集中的ratings.csv做推荐时,可以按照以下步骤计算MAE:
1. 将数据集分为训练集和测试集,通常可以将80%的数据作为训练集,20%的数据作为测试集。
2. 在训练集上使用itemcf算法计算物品之间的相似度,并预测用户对物品的评分。
3. 在测试集上计算预测评分与真实评分的差值的绝对值,然后求这些差值的平均值,即可得到MAE。
具体代码实现如下:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from surprise import Dataset, Reader, KNNBasic
from surprise.model_selection import cross_validate
from surprise import accuracy
# 加载数据集
data = pd.read_csv('ratings.csv')
# 将数据集转换为surprise需要的格式
reader = Reader(rating_scale=(0, 5))
dataset = Dataset.load_from_df(data[['userId', 'movieId', 'rating']], reader)
# 将数据集分为训练集和测试集
trainset, testset = train_test_split(dataset, test_size=0.2)
# 训练模型
algo = KNNBasic(k=40, sim_options={'user_based': False})
algo.fit(trainset)
# 预测评分并计算MAE
predictions = algo.test(testset)
mae = accuracy.mae(predictions)
print('MAE:', mae)
```
在上述代码中,我们使用了surprise库中的KNNBasic算法,将数据集转换为surprise需要的格式后,使用train_test_split函数将数据集分为训练集和测试集,并计算了MAE。其中,k=40表示使用40个邻居进行相似度计算,sim_options={'user_based': False}表示使用基于物品的相似度计算方法。
需要注意的是,MAE的值越小,说明推荐算法的效果越好。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)