动态生成的建议的内存推荐程序
cold-start-recommender的Python项目详细描述
简单、快速、贪婪的推荐者
==
"它会伸缩吗?"是不是比"这有关系吗?"([david kadavy](http://kadavy.net))
********************************************
nb:我们已经重新编写了推荐程序的一部分。
api已经更改,**webapp**现在是一个单独的包,名为[冷启动推荐程序webapp](https://github.com/elegan)s-io/csrec webapp),可以通过"pip"安装。
您仍然可以使用以下命令访问旧版本:
``bash
pip install cold start recommender==0.3.15
````
卸载软件包:
``bash
>pip uninstall csrec
```
>任何发送到info@elegans.io的评论都将受到感谢。
*********************************************************************************************************************************************************************************************
>我们开发了冷启动推荐程序,因为我们需要一个推荐程序
下面是一个推荐程序,我们开发了冷启动推荐程序,因为我们需要一个推荐程序
是的ng特征:
**greedy.**在没有以前的项目数据或
用户可用的情况下非常有用,因此*必须使用任何*信息
--不仅是用户喜欢的项目,而且--在
图书的情况下--对应的类别、作者等。
**fast.**有关用户和项目的任何信息都应存储起来并立即使用。任何用户的评分都应该提高对该用户以及其他用户的建议。这意味着内存中的数据库没有批量计算。
**ready to use.**看看[冷启动推荐程序webapp](https://github.com/elegans-io/csrec-webapp)来启动一个发布信息并获得推荐的webapp。e用于生产系统,但仅用于
导频,其中统计数据太低,以至于滤波器(例如,共现矩阵上的对数似然
滤波器)过早。它旨在
*收集数据*以便立即个性化用户体验。
dependencies
==
pp](https://github.com/elegans io/csrec webapp)
通常,
如果喜欢项目"a"的用户也喜欢项目"b",则推荐者会
向只喜欢"a"的用户推荐"b"。但是,如果您没有任何用户以前的评分,您就不能提出任何建议。
t_rating是这样做的:
`engine.db.insert_item_action(user_id='user1',item_id='item1',code=4,item_有意义的_info=['author',tags',only_info=true)`
csrec将只注册"user1"喜欢某个作者、某个标记,
,而不是他可能喜欢的"item1"。当通过
网站上的"分析页面"分析用户时,这一点非常重要。如果你问用户是更喜欢"哈利波特"还是"我们天性中更好的天使",而他们中的大多数选择了哈利波特,你就不会想让"哈利波特"这个项目更受欢迎。你可能只想记录下那些用户喜欢以成人文学形式销售的儿童图书。
csrec这样做是因为,除非你是亚马逊或类似的公司brand,
共现矩阵通常太稀疏,无法计算体面的
建议。这样,您就可以开始构建多个密度更高的共现矩阵,并从一开始就使用它们。存储所有可能的信息。您可以决定应该记录哪些关于用户对项目评分的信息。这与前面的
点类似,但您也可以注册项目ID。
一旦插入评分,共现矩阵就会更新。
例如,网站的匿名访问者在登录/注册过程之前喜欢一些项目。注册/登录后,可以协调
信息--与会话ID相关的信息
移动到相应的用户ID条目中。
没问题!csrec将用最受欢迎的项目(这些用户也没有评级)填充列表。
\这样,我们就可以在不到200毫秒的时间内为大约10000个项目的矩阵提供建议。
可插入的字符串或字符串
engine.db.insert_item(item嫒id='item1',attributes={author':'author a',tags':'["nice","good","new"]})
author字段是一个列表,即使它是作为简单字符串传递的:
assert engine.db.items嫒tbl['item1'['author']=['author a']
engine.db.insert_item(item嫒id='item2',attributes={'author':'["author b","author z"],"tags":'["nice","fair"]})
engine.db.插入"item"(item'id='item3',attributes={author':'author b',tags':'["nice","good"]})
engine.db.插入"item"(item'id='item4',attributes={author':'author c',tags':'["new","fashion"]})
MS 1和MS 2以及"作者A"、"B"、"Z"和标记"好"、"好"、"好"和"公平"
engine.db.insert_item_项行为(用户id='user1',item id='item1',code=4,item有意义的信息=['author','tags']]
>engine.db.insert_item_项行为(用户id='user1',item id='item 2',code=5,item有意义的信息=['author','author','tags']]]
<用户1给出了T共有4个点分别指向A作者、B作者和Z作者、B作者和Z作者、4标记好、5标记好、5标记好、9标记好:
assert engine.db.tot_分类用户评级=={'author':{'user1':{'author A':4,'author B':5,'author B':5,'author Z':5,'author Z':5,'author z':5},
'tags':{'user1':{'user1':{'fair':5,'good''good':4,'new':4,'nice''4,'nice':9}}}}}}
<
engine.db.insert_item_action(user_id='user2',item_id='item3',code=5,item_有意义的_info=['author',tags'])
\user3喜欢item4,"author c",但我们没有给出有关标记的信息!
engine.db.insert_item_action(user_id='user3',item_id='item4',code=5,item_有意义的_info=['author'])
/>……和user4只浏览分析页,并说她喜欢标记为"new"和"fashion"的书籍
engine.db.insert_item_action(user_id='user4',item_id='item4',code=5,item_有意义的_info=['tags',only_info=true)
e.db.users_ratings_tbl['user1']={'item1':4,'item2':5,'item3':5}
定期保存数据:
`` python
`从上面保存来自引擎的数据
engine.db.serialize('pippo.db')
**v 0.4.2与3不向后兼容**
**v0.4.0与3不向后兼容**
*可以保存用户对用户的操作(请参见dal.py中的"插入社交操作")
*监视用户交互的各种新指标(请参见"获取社交活动ns`in dal.py)
*不再嵌入web服务:使用[csrec webapp](https://github.com/elegans io/csrec webapp)
*todo:根据用户之间相互保存操作的情况,提出"社交"建议
*heavy refactoring
*对备份文件中的数据进行序列化和反序列化
*内存和Mongo的数据抽象层。
**v 0.3.15**
*它现在是一个单一的、改进的性能,与金字塔一起使用时,例如金字塔
**v0.3.14**
*小错误
**v0.3.13**
*添加了self.drop-db
**v0.3.12**
*错误修复
**v 0.3.11**
*添加的一些调试消息
**v 0.3.10**
*类别现在可以是一个列表(或作为json可解析字符串传递)。
这对于现在可以在rest api中传递的标记很重要,例如:
curl-x post"http://127.0.0.1:8081/insertitem?id=boo2&author=theauthor&cathegory=horry&tags=恐怖,恐怖"
*修复了推荐程序api示例文件中的错误
**v 0.3.8**
*同步类别的用户和项目集合在get撸u推荐中
**v0.3.7**
*修复内存中的错误
**v0.3.5**
*添加了日志记录
*添加了用于超级冷启动的集合的创建(甚至没有一个分级,仍然是用户请求推荐…)
*用于推荐的附加信息(如作者等)现在存储在数据库中集合也
*现在总是返回流行的_项,即使在没有评级的情况下也是如此,如果已经进行了一些分析,get_建议最终会调整顺序
。_熊猫:http://pandas.pydata.org
==
"它会伸缩吗?"是不是比"这有关系吗?"([david kadavy](http://kadavy.net))
********************************************
nb:我们已经重新编写了推荐程序的一部分。
api已经更改,**webapp**现在是一个单独的包,名为[冷启动推荐程序webapp](https://github.com/elegan)s-io/csrec webapp),可以通过"pip"安装。
您仍然可以使用以下命令访问旧版本:
``bash
pip install cold start recommender==0.3.15
````
卸载软件包:
``bash
>pip uninstall csrec
```
>任何发送到info@elegans.io的评论都将受到感谢。
*********************************************************************************************************************************************************************************************
>我们开发了冷启动推荐程序,因为我们需要一个推荐程序
下面是一个推荐程序,我们开发了冷启动推荐程序,因为我们需要一个推荐程序
是的ng特征:
**greedy.**在没有以前的项目数据或
用户可用的情况下非常有用,因此*必须使用任何*信息
--不仅是用户喜欢的项目,而且--在
图书的情况下--对应的类别、作者等。
**fast.**有关用户和项目的任何信息都应存储起来并立即使用。任何用户的评分都应该提高对该用户以及其他用户的建议。这意味着内存中的数据库没有批量计算。
**ready to use.**看看[冷启动推荐程序webapp](https://github.com/elegans-io/csrec-webapp)来启动一个发布信息并获得推荐的webapp。e用于生产系统,但仅用于
导频,其中统计数据太低,以至于滤波器(例如,共现矩阵上的对数似然
滤波器)过早。它旨在
*收集数据*以便立即个性化用户体验。
dependencies
==
pp](https://github.com/elegans io/csrec webapp)
通常,
如果喜欢项目"a"的用户也喜欢项目"b",则推荐者会
向只喜欢"a"的用户推荐"b"。但是,如果您没有任何用户以前的评分,您就不能提出任何建议。
t_rating是这样做的:
`engine.db.insert_item_action(user_id='user1',item_id='item1',code=4,item_有意义的_info=['author',tags',only_info=true)`
csrec将只注册"user1"喜欢某个作者、某个标记,
,而不是他可能喜欢的"item1"。当通过
网站上的"分析页面"分析用户时,这一点非常重要。如果你问用户是更喜欢"哈利波特"还是"我们天性中更好的天使",而他们中的大多数选择了哈利波特,你就不会想让"哈利波特"这个项目更受欢迎。你可能只想记录下那些用户喜欢以成人文学形式销售的儿童图书。
csrec这样做是因为,除非你是亚马逊或类似的公司brand,
共现矩阵通常太稀疏,无法计算体面的
建议。这样,您就可以开始构建多个密度更高的共现矩阵,并从一开始就使用它们。存储所有可能的信息。您可以决定应该记录哪些关于用户对项目评分的信息。这与前面的
点类似,但您也可以注册项目ID。
一旦插入评分,共现矩阵就会更新。
例如,网站的匿名访问者在登录/注册过程之前喜欢一些项目。注册/登录后,可以协调
信息--与会话ID相关的信息
移动到相应的用户ID条目中。
没问题!csrec将用最受欢迎的项目(这些用户也没有评级)填充列表。
\这样,我们就可以在不到200毫秒的时间内为大约10000个项目的矩阵提供建议。
可插入的字符串或字符串
engine.db.insert_item(item嫒id='item1',attributes={author':'author a',tags':'["nice","good","new"]})
author字段是一个列表,即使它是作为简单字符串传递的:
assert engine.db.items嫒tbl['item1'['author']=['author a']
engine.db.insert_item(item嫒id='item2',attributes={'author':'["author b","author z"],"tags":'["nice","fair"]})
engine.db.插入"item"(item'id='item3',attributes={author':'author b',tags':'["nice","good"]})
engine.db.插入"item"(item'id='item4',attributes={author':'author c',tags':'["new","fashion"]})
MS 1和MS 2以及"作者A"、"B"、"Z"和标记"好"、"好"、"好"和"公平"
engine.db.insert_item_项行为(用户id='user1',item id='item1',code=4,item有意义的信息=['author','tags']]
>engine.db.insert_item_项行为(用户id='user1',item id='item 2',code=5,item有意义的信息=['author','author','tags']]]
<用户1给出了T共有4个点分别指向A作者、B作者和Z作者、B作者和Z作者、4标记好、5标记好、5标记好、9标记好:
assert engine.db.tot_分类用户评级=={'author':{'user1':{'author A':4,'author B':5,'author B':5,'author Z':5,'author Z':5,'author z':5},
'tags':{'user1':{'user1':{'fair':5,'good''good':4,'new':4,'nice''4,'nice':9}}}}}}
<
engine.db.insert_item_action(user_id='user2',item_id='item3',code=5,item_有意义的_info=['author',tags'])
\user3喜欢item4,"author c",但我们没有给出有关标记的信息!
engine.db.insert_item_action(user_id='user3',item_id='item4',code=5,item_有意义的_info=['author'])
/>……和user4只浏览分析页,并说她喜欢标记为"new"和"fashion"的书籍
engine.db.insert_item_action(user_id='user4',item_id='item4',code=5,item_有意义的_info=['tags',only_info=true)
e.db.users_ratings_tbl['user1']={'item1':4,'item2':5,'item3':5}
定期保存数据:
`` python
`从上面保存来自引擎的数据
engine.db.serialize('pippo.db')
**v 0.4.2与3不向后兼容**
**v0.4.0与3不向后兼容**
*可以保存用户对用户的操作(请参见dal.py中的"插入社交操作")
*监视用户交互的各种新指标(请参见"获取社交活动ns`in dal.py)
*不再嵌入web服务:使用[csrec webapp](https://github.com/elegans io/csrec webapp)
*todo:根据用户之间相互保存操作的情况,提出"社交"建议
*heavy refactoring
*对备份文件中的数据进行序列化和反序列化
*内存和Mongo的数据抽象层。
**v 0.3.15**
*它现在是一个单一的、改进的性能,与金字塔一起使用时,例如金字塔
**v0.3.14**
*小错误
**v0.3.13**
*添加了self.drop-db
**v0.3.12**
*错误修复
**v 0.3.11**
*添加的一些调试消息
**v 0.3.10**
*类别现在可以是一个列表(或作为json可解析字符串传递)。
这对于现在可以在rest api中传递的标记很重要,例如:
curl-x post"http://127.0.0.1:8081/insertitem?id=boo2&author=theauthor&cathegory=horry&tags=恐怖,恐怖"
*修复了推荐程序api示例文件中的错误
**v 0.3.8**
*同步类别的用户和项目集合在get撸u推荐中
**v0.3.7**
*修复内存中的错误
**v0.3.5**
*添加了日志记录
*添加了用于超级冷启动的集合的创建(甚至没有一个分级,仍然是用户请求推荐…)
*用于推荐的附加信息(如作者等)现在存储在数据库中集合也
*现在总是返回流行的_项,即使在没有评级的情况下也是如此,如果已经进行了一些分析,get_建议最终会调整顺序
。_熊猫:http://pandas.pydata.org