sql >> データベース >  >> RDS >> Mysql

データセット間の類似率を計算する効果的な方法

    これを行う標準的な方法は、Jaccardの類似性です。 Aが最初のユーザーの目標のセットであり、Bが2番目のユーザーの目標のセットである場合、Jaccardの類似性は次のようになります。

    #(A intersect B)/#(A union B)
    

    これは、彼らが共有する目標の数を、2人が一緒に持っている投票の総数で割ったものです(彼らが1回だけ共有する目標を数えます)。したがって、最初のユーザーの目標がA ={1,2,3}で、2番目のユーザーの目標がB ={2,4}の場合、次のようになります。

    A intersect B = {2}
    A union B = {1,2,3,4}
    
    #(A intersect B)/#(A union B) = 1/4
    

    Jaccardの類似性は常に0(目標を共有しない)と1(同じ目標を持つ)の間であるため、100を掛けることでパーセンテージを取得できます。

    http://en.wikipedia.org/wiki/Jaccard_index




    1. Oracle-FASTREFRESHとJOINSを使用してマテリアライズドビューを作成する方法

    2. mysql regex reverse(REGEXPでのみ使用)

    3. データベースに直接アクセスするための開発者ツール

    4. MySQL-ストアドプロシージャが予期しない値を返す