sql结果集,计算相似度

把妹达人老张 发布于 2013/07/30 22:34
阅读 1K+
收藏 1



CREATE TABLE `liked` (
  `useid` int(11) NOT NULL,
  `tag` varchar(255) DEFAULT NULL
)

1,计算机
1,笔记本
1,手机
1,苹果手机
1,android
1,美女
2,笔记本
2,手机
2,美女
3,美女
3,漫画
3,动画片
3,手机
3,苹果手机
3,android

我想根据标签计算用户的相似度,sql语句貌似没有办法吧?

假设我有很多用户几万个甚至更多,很多标签,我要计算所以用户的相似度,该如何处理?

希望能找到简单计算相似度的方法。因为数据可能不会太大(数据量大我也不用mysql了,neo4j更擅长这个)。太大,我就考虑mapreduce了,或者用 mahout之类的了。

希望给我一个思路,数据量不大哦。

加载中
0
中山野鬼
中山野鬼
sql是什么先理解清楚。还是那句话,工具都没错,错是人们用错了。比如拿了菜刀上街砍人,真让你砍着了,也不是好事情。不过多半是水平不精,手起刀落,掉了就掉了,砸了花花草草也无所谓,千万别砸着自己的脚就好。
0
liangtee
liangtee
这位同学你好!你是要做推荐系统吧?还是仅仅对用户进行分类/聚类啊? 计算用户相似度的方法很多,比如皮尔逊相关系数、夹角余弦等。但由于你给出的数据结构中只有关键词,没有权重,因此只能通过像spearman这样的方法来计算。 给你3点建议: 1. 使用mahout,它是工业强度的,是hadoop的子项目,里面的算法完全满足你的需求 2.由于你的数据量不大,建议你每次直接把数据全部加载到内存里,然后用mahout计算。如果内存不够,mahout也提供了用数据库计算的方法,根本不用自己实现 3.建议你计算每个关键词对用户的权重,这样你可以使用更多强大的算法 本人对mahout小有研究,欢迎讨论!
0
把妹达人老张
把妹达人老张

引用来自“liangtee”的答案

这位同学你好!你是要做推荐系统吧?还是仅仅对用户进行分类/聚类啊? 计算用户相似度的方法很多,比如皮尔逊相关系数、夹角余弦等。但由于你给出的数据结构中只有关键词,没有权重,因此只能通过像spearman这样的方法来计算。 给你3点建议: 1. 使用mahout,它是工业强度的,是hadoop的子项目,里面的算法完全满足你的需求 2.由于你的数据量不大,建议你每次直接把数据全部加载到内存里,然后用mahout计算。如果内存不够,mahout也提供了用数据库计算的方法,根本不用自己实现 3.建议你计算每个关键词对用户的权重,这样你可以使用更多强大的算法 本人对mahout小有研究,欢迎讨论!
哈哈,确实想做推荐系统。只是,前期可能没几个用户,想用sql或者直接java代码计算,打算用户多了在用mahout。有mahout资料没?最好中文的。。
0
liangtee
liangtee

引用来自“中山野鬼”的答案

sql是什么先理解清楚。还是那句话,工具都没错,错是人们用错了。比如拿了菜刀上街砍人,真让你砍着了,也不是好事情。不过多半是水平不精,手起刀落,掉了就掉了,砸了花花草草也无所谓,千万别砸着自己的脚就好。
你根本不明白人家要干什么,做数据挖掘系统,数据量很大的时候一般就是在数据库里进行离线运算,因此现在好多数据库产品直接提供了一些数据挖掘算法,oracle和sql server都有。你不懂还在这里瞎说,你这不误导别人吗?关键是你的口气就跟你很明白似的,我真纳闷你这么大岁数人了怎么能干这种事!
中山野鬼
中山野鬼
回复 @liangtee : 算了本来以为你还可指导,用什么方式无所谓,就冲你对物联网这句话,现在看来庸人一个。。。
中山野鬼
中山野鬼
@西昆仑 抬杠是好事情。增加交流和思想嘛。哈。
西昆仑
西昆仑
回复 @中山野鬼 : 貌似最近经常有人跟你抬杠啊~~~ 默默关注~~~不发言
liangtee
liangtee
回复 @中山野鬼 : 呵呵,物联网,你还真好意思说啊,谁不清楚“物联网”到底是怎么回事啊
中山野鬼
中山野鬼
回复 @张子游 : c只是工具,目前主要关注物联网的数据管理和数据挖掘,大数据平台的架构分析。很多东西已经不是算法问题,而是设计思想的问题。
下一页
0
liangtee
liangtee

引用来自“张子游”的答案

引用来自“liangtee”的答案

这位同学你好!你是要做推荐系统吧?还是仅仅对用户进行分类/聚类啊? 计算用户相似度的方法很多,比如皮尔逊相关系数、夹角余弦等。但由于你给出的数据结构中只有关键词,没有权重,因此只能通过像spearman这样的方法来计算。 给你3点建议: 1. 使用mahout,它是工业强度的,是hadoop的子项目,里面的算法完全满足你的需求 2.由于你的数据量不大,建议你每次直接把数据全部加载到内存里,然后用mahout计算。如果内存不够,mahout也提供了用数据库计算的方法,根本不用自己实现 3.建议你计算每个关键词对用户的权重,这样你可以使用更多强大的算法 本人对mahout小有研究,欢迎讨论!
哈哈,确实想做推荐系统。只是,前期可能没几个用户,想用sql或者直接java代码计算,打算用户多了在用mahout。有mahout资料没?最好中文的。。
《mahout in action》这本书很好,只是目前木有中文版,我的博客里有些这方面的资料哈哈你可以看看(王婆卖瓜啦~) 另外我觉得你首先要明确推荐策略,我感觉你应该是想做tag-based 的推荐系统,就像豆瓣那样的对吧?如果是的话mahout就帮不了你了,它都是rating-based的算法。。。哈哈
kiwivip
kiwivip
这条回复才是真正有用的回复~
0
把妹达人老张
把妹达人老张

引用来自“liangtee”的答案

引用来自“张子游”的答案

引用来自“liangtee”的答案

这位同学你好!你是要做推荐系统吧?还是仅仅对用户进行分类/聚类啊? 计算用户相似度的方法很多,比如皮尔逊相关系数、夹角余弦等。但由于你给出的数据结构中只有关键词,没有权重,因此只能通过像spearman这样的方法来计算。 给你3点建议: 1. 使用mahout,它是工业强度的,是hadoop的子项目,里面的算法完全满足你的需求 2.由于你的数据量不大,建议你每次直接把数据全部加载到内存里,然后用mahout计算。如果内存不够,mahout也提供了用数据库计算的方法,根本不用自己实现 3.建议你计算每个关键词对用户的权重,这样你可以使用更多强大的算法 本人对mahout小有研究,欢迎讨论!
哈哈,确实想做推荐系统。只是,前期可能没几个用户,想用sql或者直接java代码计算,打算用户多了在用mahout。有mahout资料没?最好中文的。。
《mahou in action》这本书很好,只是目前木有中文版,我的博客里有些这方面的资料哈哈你可以看看(王婆卖瓜啦~) 另外我觉得你首先要明确推荐策略,我感觉你应该是想做tag-based 的推荐系统,就像豆瓣那样的对吧?如果是的话mahout就帮不了你了,它都是rating-based的算法。。。哈哈
osc里的博客吗?
0
中山野鬼
中山野鬼

引用来自“liangtee”的答案

引用来自“中山野鬼”的答案

sql是什么先理解清楚。还是那句话,工具都没错,错是人们用错了。比如拿了菜刀上街砍人,真让你砍着了,也不是好事情。不过多半是水平不精,手起刀落,掉了就掉了,砸了花花草草也无所谓,千万别砸着自己的脚就好。
你根本不明白人家要干什么,做数据挖掘系统,数据量很大的时候一般就是在数据库里进行离线运算,因此现在好多数据库产品直接提供了一些数据挖掘算法,oracle和sql server都有。你不懂还在这里瞎说,你这不误导别人吗?关键是你的口气就跟你很明白似的,我真纳闷你这么大岁数人了怎么能干这种事!
哈反正数据库,你说我不懂我就不懂咯。不过明显小朋友没看懂我在说什么。没关系,等你懂了,自然会回来哈。建议你也把sql好好看看,sql是什么。楼主的期望又是什么。。
中山野鬼
中山野鬼
回复 @张子游 : 我另外开个帖子讨论吧。可能有些思维你还模糊。
把妹达人老张
把妹达人老张
我期望直接用sql,或者存储过程把 相似度计算出来。
0
中山野鬼
中山野鬼

引用来自“liangtee”的答案

引用来自“中山野鬼”的答案

sql是什么先理解清楚。还是那句话,工具都没错,错是人们用错了。比如拿了菜刀上街砍人,真让你砍着了,也不是好事情。不过多半是水平不精,手起刀落,掉了就掉了,砸了花花草草也无所谓,千万别砸着自己的脚就好。
你根本不明白人家要干什么,做数据挖掘系统,数据量很大的时候一般就是在数据库里进行离线运算,因此现在好多数据库产品直接提供了一些数据挖掘算法,oracle和sql server都有。你不懂还在这里瞎说,你这不误导别人吗?关键是你的口气就跟你很明白似的,我真纳闷你这么大岁数人了怎么能干这种事!
补充一下,orcale的关系数据库,做数据挖掘就是shit。这话我敢说。哈,为什么敢说,小朋友,你可以从理论上思考一下。还是那句话,关系数据库是什么。
把妹达人老张
把妹达人老张
数据量不是小嘛,多了我就用hbase+eno4j了。
0
宏哥
宏哥

"相似度" 被精确定义之前, 一切都是扯淡

不为什么, 只因为宏哥说得都是对的, 凡是宏哥提倡的都要坚持


把妹达人老张
把妹达人老张
我的算法是交集比上并集,搞那么复杂干嘛
0
中山野鬼
中山野鬼

引用来自“宏哥”的答案

"相似度" 被精确定义之前, 一切都是扯淡

不为什么, 只因为宏哥说得都是对的, 凡是宏哥提倡的都要坚持


这就是我说的,数据分析,如果没有明确模版,和差异度或相似度的距离空间的定义,是无法完成作用的。数据挖掘也是不可能完成的。数据挖掘是做需求和数据处理结果匹配的,而不是做数据处理的。这个搞不清楚,就是挖掘做出来了,也只是个传统的专家系统。
返回顶部
顶部