查找标记从给定数据汇总到一起的概率

时间:2017-04-04 20:54:17

标签: python algorithm machine-learning probability

我只需要一种算法就能以有效的方式解决以下问题。 我有通常组合在一起的标签元组。例如

    (python, django, flask, numpy),
    (java, spring),
    (mysql, sql, join),
    (javascript, angularjs, ajax, deferred)

现在我有两个要求。

  1. 我需要根据给定的数据形成不同的类别。
  2. 给定一个新的标签或标签元组,我需要找到这个标签与数据中所有其他不同标签一起出现的概率     例如:

    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 
    

    我应该如何解决这个问题。

2 个答案:

答案 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