从给定数据中找出标签聚集在一起的概率
Find probability of tags coming together from given data
我只需要一个算法来有效地解决以下问题。
我有带有标签组合的元组,通常来自 together.For 示例
(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
我该如何解决这个问题。
我建议将其视为图问题,标签是节点,say (tag1,tag2) 出现的次数是 tag1 和 tag2 节点之间边的权重。然后,您可以使用最近邻算法甚至社区检测(这些标签总是一起被提及)来生成推荐标签。
有了构造良好的图、足够的初始数据和一些规范化,我认为可以在 cluster1 =(tag1,tag2) 和 cluster2=(tag3,tag4,标签 5).
所以,解决这个问题的最佳方法基本上是Apriori algorithm.
它将为跨国数据库提供关联规则(将每一行视为一个事务)。
下面是一个非常简单的实施教程 link。
http://aimotion.blogspot.com/2013/01/machine-learning-and-data-mining.html
我只需要一个算法来有效地解决以下问题。 我有带有标签组合的元组,通常来自 together.For 示例
(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
我该如何解决这个问题。
我建议将其视为图问题,标签是节点,say (tag1,tag2) 出现的次数是 tag1 和 tag2 节点之间边的权重。然后,您可以使用最近邻算法甚至社区检测(这些标签总是一起被提及)来生成推荐标签。
有了构造良好的图、足够的初始数据和一些规范化,我认为可以在 cluster1 =(tag1,tag2) 和 cluster2=(tag3,tag4,标签 5).
所以,解决这个问题的最佳方法基本上是Apriori algorithm.
它将为跨国数据库提供关联规则(将每一行视为一个事务)。
下面是一个非常简单的实施教程 link。
http://aimotion.blogspot.com/2013/01/machine-learning-and-data-mining.html