关联推荐介绍
关联推荐 包括 基于行为的推荐(user-based,相对来说困难些) 和 基于内容的推荐(item-based,相对来说简单些)。
行为推荐可以基于日志数据,比如订单数据、访问日志等。比如你在当当网上查看一本书时,当当会推荐“买过此书的用户还买过什么书”。
内容推荐比较简单些,只需梳理内容之间的关联性即可得到基础数据,之后做推荐。比如你在当当网上查看一本书时,当当会推荐“你可能对以下所列书籍也感兴趣”。或者书籍组合推荐之类的。
具体案例即实现:
基础表:
具体案例及实现
案例描述:
基础表中有用户(user_group_map)访问应用的日志(user_hitrate_log)信息,基于这写基础表数据,实现为用户推荐关联应用的功能(即基于行为的推荐)。
基础表:
-------------------------三个月 访问过此应用的同组用户
CREATE TABLE CRMTEST.log_ref_user
(
resourceid varchar(32) NOT NULL,
url varchar(120) ,
group_id VARCHAR(32) NOT NULL,
USERID VARCHAR(32) NOT NULL,
group_userid VARCHAR(32) NOT NULL
)
DATA CAPTURE NONE
IN TBS_DEV1;
comment on CRMTEST.log_ref_user
(
resourceid is '资源id',
url is '资源url',
group_id is '用户组id',
USERID is '用户id',
group_userid is '同组用户id'
);
-----------------三个月 访问过此应用的同组用户 三个月内 还访问的应用排名
CREATE TABLE CRMTEST.log_ref_resource
(
group_id VARCHAR(32) NOT NULL,
resourceid varchar(32) ,
url varchar(120) ,
ref_resourceid VARCHAR(32) NOT NULL,
ref_resourcename VARCHAR(32) ,
ref_resourceurl VARCHAR(120) ,
ref_visitcount integer ,
ref_rank integer ,
ref_resourcetype integer
)
DATA CAPTURE NONE
IN TBS_DEV1;
comment on CRMTEST.log_ref_resource
(
group_id is '用户组id',
resourceid is '资源id',
url is '资源url',
ref_resourceid is '关联应用id',
ref_resourcename is '关联应用名称',
ref_resourceurl is '关联应用url',
ref_visitcount is '关联应用访问次数',
ref_rank is '关联应用排名',
ref_resourcetype is '关联应用的资源类型'
);
关联推荐算法/口径:
关联推荐算法/口径:
-------------------------三个月 访问过此应用的同组用户
insert into log_ref_user
(resourceid, url, group_id, userid, group_userid)
select s1.uniqueid, url, s1.group_id, s1.userid, s2.userid
from (select uniqueid, group_id, t1.userid
from user_hitrate_log t1
left join user_group_map t2 on t1.userid = t2.userid
where hittime >= '2011-01-01 00:00:00'
and hittime <= '2011-04-01 00:00:00'
group by uniqueid, group_id, t1.userid
order by uniqueid, group_id) s1
left join (select uniqueid, group_id, t1.userid
from user_hitrate_log t1
left join user_group_map t2 on t1.userid = t2.userid
where hittime >= '2011-01-01 00:00:00'
and hittime <= '2011-04-01 00:00:00'
group by uniqueid, group_id, t1.userid
order by uniqueid, group_id) s2 on s1.uniqueid =
s2.uniqueid
and s1.group_id =
s2.group_id
left join sys_menu_item s3 on s1.uniqueid = char(s3.menuitemid)
where s1.userid != s2.userid
order by s1.uniqueid, s1.group_id
-----------------三个月 访问过此应用的同组用户 三个月内 还访问的应用排名
insert into log_ref_resource
(group_id,
resourceid,
url,
ref_resourceid,
ref_resourcename,
ref_resourceurl,
ref_resourcetype,
ref_visitcount)
select group_id,
t1.resourceid,
t1.url,
uniqueid,
menuitemtitle,
t3.url,
resource_type,
count(*) num
from log_ref_user t1
left join user_hitrate_log t2 on t1.group_userid = t2.userid
left join sys_menu_item t3 on t2.uniqueid = char(t3.menuitemid)
where hittime >= '2011-01-01 00:00:00'
and hittime <= '2011-04-01 00:00:00'
and t1.resourceid != uniqueid
group by group_id,
t1.resourceid,
t1.url,
uniqueid,
menuitemtitle,
t3.url,
resource_type
order by group_id, t1.resourceid, num desc
三个月 访问过此应用的同组用户 这个口径 可能有点难理解(其实就是一个自关联的笛卡尔积),回头补充些示例数据吧。。。
这个案例只是关联推荐的一个简单实现,没有考虑 最低支持度/置信度、及性能(剪枝)之类的问题。
- 浏览: 13104 次
相关推荐
在Java编程环境中实现灰色关联算法,可以让我们更好地处理这些复杂问题。下面将详细介绍灰色关联算法的基本原理,以及如何使用Java来实现它。 灰色关联算法的核心思想是通过比较参考序列和待测序列之间的差异,来...
在DbGridEh中实现关联子表的下拉功能,可以有效地提高用户体验,让用户通过下拉列表快速选择和查看相关数据。 实现这个功能的关键在于理解主从表的概念以及如何在DbGridEh中设置关联。首先,你需要在数据库层面上...
总的来说,"c++实现关联规则Apriori算法"涉及的知识点包括数据挖掘、关联规则学习、Apriori算法、C++编程、VS2010开发环境、数据结构和算法优化。掌握这些知识,将有助于我们开发出适用于各种场景的高效数据挖掘工具...
* Regular expression:该功能由函数 web_reg_save_param_regexp 实现。 * Right Boundary:设置右边界,这里是用来填写关联时对于数据处理的右匹配内容规则,选项同左边界。 * DFEs:在录制选项和回放选项中我们...
VC ListBox内容关联功能的实现,左侧ListBox的任意项,在鼠标单击后,会在右侧显示出关联的内容,类似于读取数据库显示的内容,其实两者之间都是静态的,只不过存在一定的关联,本源码就是演示如何关联的功能。
在本例中,我们将通过VB脚本实现这一功能,使得指定的文件扩展名能够与开发者编写的软件相关联。 ### 一、文件关联的基础概念 文件关联是指将一个文件类型(通常是基于其文件扩展名)与一个或多个应用程序相关联的...
现在,当我们用Java实现这个功能时,我们可能需要设计一个类或者一组类,这些类能够处理数据结构(例如,使用List、Map或者其他集合框架中的类来表示数据表),并提供方法来进行左关联和右关联的操作。这通常涉及到...
在IT行业中,开发一个能实现一对多关联的通用EXCEL导入功能是一项常见的需求,尤其是在数据管理、数据分析或者系统集成的场景下。这个功能允许用户通过上传Excel文件来批量导入包含复杂关系的数据,例如一个学生可以...
下面将详细讨论如何使用C++语言实现文件关联功能以及涉及的关键技术。 首先,我们需要理解注册表在文件关联中的作用。注册表是Windows操作系统中存储系统和应用程序设置的重要数据库。在文件关联中,我们需要修改`...
H SEM系统采用了一套完整的语法规则和系统结构来支持其功能实现。其中,H SEM语言的设计尤为重要,它定义了如何描述部件及其关联的方式。此外,系统还采用了多项关键技术,如数据管理、图形渲染等,以确保系统的高效...
dialog弹框上实现下拉列表功能,有二级关联菜单选项功能ExpandableListViewDemo-master 通过设置属性,可实现只显示一个Group的子菜单 , 显示全部Group的子菜单 。需要自己设置就可以了。
在本文介绍的关联表单系统中,使用了Javascript语言来实现关联表单的功能。该系统使用selectcity.js文件来存放省市和地区的数据,然后在ASP程序中调用该文件,并实现了关联表单的功能。 该系统的实现机制可以分为...
购物类的网站都有商品推荐的功能,通过SQL Server Analysis Services的数据挖掘功能,可以轻松的来构建类似的功能,其中一种方案是把DMX查询挖掘模型的过程封装到SSAS CLR存储过程当中,然后在前端展示,这个例子...
Category和关联对象是Objective-C中两个强大的机制,提供了灵活的方式来扩展类的功能和实现对象之间的关联。通过了解Category和关联对象的实现原理和应用场景,我们可以更好地使用它们来开发高质量的 iOS 应用程序。
为了解决这个问题,本文开发了一个基于关联规则的考研院校推荐系统,该系统使用了JSP技术来实现系统功能,并选择了MySQL数据库来存储数据。该系统的主要功能包括院校搜索、院校信息查看等功能。系统的设计和实现可以...
### 关联规则挖掘与高效算法实现 #### 一、关联规则挖掘概述 关联规则挖掘是数据挖掘中的一个重要领域,主要用于发现存在于大量数据集中的频繁项集之间的有趣的关系或相关性。这种技术在零售业、市场篮子分析、...
7. 关联Vivado和VSCode:在VSCode中打开Vivado工程的根目录,现在你应该能够通过插件的功能(通常是右键点击并选择“Go to Definition”或使用快捷键)来实现代码内的定义跳转。 此外,`README.md`文件可能包含关于...