栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

推荐系统

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

推荐系统

1:BPR推荐
用到inter数据文件。
[‘user_id’, ‘item_id’, ‘rating’, ‘timestamp’]
首先将数据self.shuffle()随机打乱。根据User的ID将数据聚合在一起。一个聚合了943个用户list。这每个list里面包含用户所购买的商品信息。对于每个list我们按照8:1:1的比例分割成train_data, valid_data ,test_data。

def _grouped_index(self, group_by_list):
        index = {}
        for i, key in enumerate(group_by_list):
            if key not in index:
                index[key] = [i]
            else:
                index[key].append(i)
        return index.values()
        #实现了将item聚合到不同的list。

2:xDeepFM推荐
用到inter数据文件,item数据文件, user数据文件。
[‘user_id’, ‘item_id’, ‘timestamp’, ‘age’, ‘gender’, ‘occupation’, ‘release_year’, ‘class’, ‘label’]
label标签的值根据设置的阈值来确定。
首先将数据self.shuffle()随机打乱。根据User的ID将数据聚合在一起。一个聚合了943个用户list。这每个list里面包含用户所购买的商品信息。对于每个list我们按照8:1:1的比例分割成train_data, valid_data ,test_data。

def _grouped_index(self, group_by_list):
        index = {}
        for i, key in enumerate(group_by_list):
            if key not in index:
                index[key] = [i]
            else:
                index[key].append(i)
        return index.values()
        #实现了将item聚合到不同的list。

3:RippleNet推荐
用到inter数据文件,link数据文件,kg数据文件
[‘entity_id’, ‘user_id’, ‘item_id’, ‘rating’, ‘timestamp’, ‘head_id’, ‘relation_id’, ‘tail_id’]
首先将数据self.shuffle()随机打乱。根据User的ID将数据聚合在一起。一个聚合了943个用户list。这每个list里面包含用户所购买的商品信息。对于每个list我们按照8:1:1的比例分割成train_data, valid_data ,test_data。

def _grouped_index(self, group_by_list):
        index = {}
        for i, key in enumerate(group_by_list):
            if key not in index:
                index[key] = [i]
            else:
                index[key].append(i)
        return index.values()
        #实现了将item聚合到不同的list。

4:GRU4RecF推荐
用到inter数据文件,item数据文件
[‘user_id’, ‘item_id’, ‘rating’, ‘timestamp’, ‘release_year’, ‘class’]
根据user的ID做数据增强。一共99057条购买记录。

E.g., u1 has purchase sequence ,
then after augmentation, we will generate three cases.
u1, | i2
(Which means given user_id u1 and item_seq ,
we need to predict the next item i2.)
The other cases are below:
u1, | i3
u1, | i4

self.uid_list = array([ 1, 1, 1, …, 943, 943, 943])
self.item_list_index = array([slice(0, 1, None), slice(0, 2, None), slice(0, 3, None), …,
slice(99978, 99997, None), slice(99978, 99998, None),
slice(99978, 99999, None)], dtype=object)
self.target_index = array([ 1, 2, 3, …, 99997, 99998, 99999])
self.item_list_length =array([ 1, 2, 3, …, 19, 20, 21])在这里序列的最大长度为50。表示一个用户所取的购买记录中最多为50个物品。多余50个物品的用户商品不获取,其他有的用户有的购买的商品总数不到50个。所以这里总的记录才为99057条记录。

对于train_data, valid_data ,test_data数据都一样。为

[ml-100k
The number of users: 944
Average actions of users: 106.04453870625663
The number of items: 1683
Average actions of items: 59.45303210463734
The number of inters: 100000
The sparsity of the dataset: 93.70575143257098%
Remain Fields: [‘user_id’, ‘item_id’, ‘rating’, ‘timestamp’, ‘release_year’, ‘class’]

通过上面的方法我们就可以得到99057条记录。每个user和其购买的item之间对应着一个item_id_list。
5:BERT4Rec推荐
用到inter数据文件
[‘user_id’, ‘item_id’, ‘rating’, ‘timestamp’]
根据user的ID做数据增强。一共99057条购买记录。

E.g., u1 has purchase sequence ,
then after augmentation, we will generate three cases.
u1, | i2
(Which means given user_id u1 and item_seq ,
we need to predict the next item i2.)
The other cases are below:
u1, | i3
u1, | i4

self.uid_list = array([ 1, 1, 1, …, 943, 943, 943])
self.item_list_index = array([slice(0, 1, None), slice(0, 2, None), slice(0, 3, None), …,
slice(99978, 99997, None), slice(99978, 99998, None),
slice(99978, 99999, None)], dtype=object)
self.target_index = array([ 1, 2, 3, …, 99997, 99998, 99999])
self.item_list_length =array([ 1, 2, 3, …, 19, 20, 21])在这里序列的最大长度为50。表示一个用户所取的购买记录中最多为50个物品。多余50个物品的用户商品不获取,其他有的用户有的购买的商品总数不到50个。所以这里总的记录才为99057条记录。

对于train_data, valid_data ,test_data数据都一样。为

[ml-100k
The number of users: 944
Average actions of users: 106.04453870625663
The number of items: 1683
Average actions of items: 59.45303210463734
The number of inters: 100000
The sparsity of the dataset: 93.70575143257098%
Remain Fields: [‘user_id’, ‘item_id’, ‘rating’, ‘timestamp’, ‘release_year’, ‘class’]

通过上面的方法我们就可以得到99057条记录。每个user和其购买的item之间对应着一个item_id_list。
6:LightGCN推荐
用到inter数据文件。
[‘user_id’, ‘item_id’, ‘rating’, ‘timestamp’]
首先将数据self.shuffle()随机打乱。根据User的ID将数据聚合在一起。一个聚合了943个用户list。这每个list里面包含用户所购买的商品信息。对于每个list我们按照8:1:1的比例分割成train_data, valid_data ,test_data。

def _grouped_index(self, group_by_list):
        index = {}
        for i, key in enumerate(group_by_list):
            if key not in index:
                index[key] = [i]
            else:
                index[key].append(i)
        return index.values()
        #实现了将item聚合到不同的list。

7:KGAT推荐
[‘entity_id’, ‘user_id’, ‘item_id’, ‘rating’, ‘timestamp’, ‘head_id’, ‘relation_id’, ‘tail_id’]
首先将数据self.shuffle()随机打乱。根据User的ID将数据聚合在一起。一个聚合了943个用户list。这每个list里面包含用户所购买的商品信息。对于每个list我们按照8:1:1的比例分割成train_data, valid_data ,test_data。

def _grouped_index(self, group_by_list):
        index = {}
        for i, key in enumerate(group_by_list):
            if key not in index:
                index[key] = [i]
            else:
                index[key].append(i)
        return index.values()
        #实现了将item聚合到不同的list。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001959.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号