2017-04-04 9 views
-1

以下の問題を効率的に解決するアルゴリズムが必要です。 は、私は通常今、私は2つの要件があり与えられたデータからタグが来る確率を見つける

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

together.For例を来タグの組み合わせを持つタプルを持っています。

  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 
    

    は、どのように私はこれを解決するに取り掛かる必要があります。

+0

これらのタグがデータセットに対して完全に新しい場合、どのようにして確率を導き出すかを決める基礎がありますか? – Prune

+0

そうですが、既存のタプルと共通のタグを持つような新しいタプルが存在します。しかし、私の最大の関心事は、タグが一緒に来る確率を見つけることです。 –

+0

なぜ質問が投票されたのか分かりません。質問を投票する前に理由が与えられた方が良いでしょう。それは作者が欠点を理解するのに役立ちます。 –

答えて

0

したがって、この問題を解決する最善の方法は基本的にApriori algorithm.です。これは、トランスナショナルデータベース(すべての行をトランザクションと見なします)の関連ルールを提供します。 以下は実装を含む非常に簡単なチュートリアルのリンクです。 http://aimotion.blogspot.com/2013/01/machine-learning-and-data-mining.html

1

Iグラフの問題としてこれを処理することを示唆しているであろう、タグはノードであると言う(TAG1、TAG2)の発生数はTAG1とTAG2ノード間のエッジの重みです。おそらく、最近接アルゴリズムやコミュニティ検出(常に一緒に言及されるタグ)を使用して推奨タグを生成することができます。

十分な初期データとある程度の正規化をすれば、cluster1 =(tag1、tag2)とcluster2 =(tag3、tag4、tag5)の間のリンクの確率を出力することができると思います。

関連する問題