我只需要一种算法就能以有效的方式解决以下问题。 我有通常组合在一起的标签元组。例如
(python, django, flask, numpy),
(java, spring),
(mysql, sql, join),
(javascript, angularjs, ajax, deferred)
现在我有两个要求。
给定一个新的标签或标签元组,我需要找到这个标签与数据中所有其他不同标签一起出现的概率 例如:
Say new tuple is (nodejs, ajax)
then the probabilities might be
(nodejs, ajax) - (javascript, angularjs, ajax, deferred) - .60
(nodejs, ajax) - (mysql, sql, join) - .20
(nodejs, ajax) - (java, spring) - .20
etc
我应该如何解决这个问题。
答案 0 :(得分:1)
我建议将其视为一个图形问题,标签是节点,而say(tag1,tag2)的出现次数是tag1和tag2节点之间边缘的权重。然后,您可以使用最近邻居算法甚至社区检测生成推荐标签(这些标签总是在一起共同提及)。
使用构造良好的图形,足够的初始数据和一些标准化,我认为可以输出cluster1 =(tag1,tag2)与cluster2 =(tag3,tag4,tag5)之间链接的概率。
答案 1 :(得分:0)
因此,解决此问题的最佳方法基本上是Apriori algorithm.
它将为跨国数据库提供关联规则(将每一行视为一个事务)。
下面是一个非常简单的实现教程的链接。
http://aimotion.blogspot.com/2013/01/machine-learning-and-data-mining.html