2
useragent、ip、session_idによる一意の訪問者のクラスタリング
フォームのWebサイトアクセスデータsession_id, ip, user_agent、およびオプションでタイムスタンプを使用して、以下の条件に従って、セッションを一意の訪問者にどのようにクラスター化するのが最適ですか? session_id:は、すべての新しい訪問者に与えられるIDです。有効期限はありませんが、ユーザーがCookieを受け入れない/ Cookieをクリアする/ブラウザーを変更する/デバイスを変更すると、ユーザーは認識されなくなります IP 異なるユーザー間で共有することができ(無料のwi-fiカフェ、またはISPがIPを再割り当てすることを想像してください)、多くの場合、少なくとも2人の自宅と職場があります。 User_agentブラウザとOSのバージョンであり、デバイスを区別できます。たとえば、ユーザーは電話とラップトップの両方を使用する可能性がありますが、windows + appleラップトップを使用する可能性は低いです。同じセッションIDに複数のユーザーエージェントが存在することはほとんどありません。 データはフィドルのように見えるかもしれません:http ://sqlfiddle.com/#!2/ c4de40/1 もちろん、私たちは仮定について話していますが、それは可能な限り現実に近づくことです。たとえば、セッションIDが異なる限られた時間枠で同じipとuseragentに遭遇した場合、エッジケースの例外を除いて、それは同じユーザーであるという公正な仮定になります。 編集:問題が解決される言語は無関係であり、それは主に実装ではなくロジックに関するものです。擬似コードは問題ありません。 編集:フィドルの遅い性質のため、代わりにmysqlを読む/実行することができます: select session_id, floor(rand()*256*256*256*256) as ip_num , floor(rand()*1000) as user_agent_id from (select 1+a.nr+10*b.nr as session_id, ceil(rand()*3) as nr from (select 1 as nr union all select 2 union all select 3 union all select 4 …
15
clustering