2012-02-17 6 views
1

私は、企業のアクセス許可でデータマイニングをいくつか試みようとしています。私は彼らが持っているアクセスに応じて異なるグループを一緒にクラスタリングし、グループの同輩の誰もそのアクセスを持っていないので誰かのアクセスが疑わしいかどうかを判断しようとしています。私はちょうどこれで私を助けるかもしれないアルゴリズムを探しています。これは、逆推薦システム(Netflix、Amazonなど)です。ここでは簡単な例です:ユーザーアクセス許可の異常を検出する

Person 1 has access to files A, B, E 
    Person 2 has access to files A, B 
    Person 3 has access to files A, B 
    Person 4 has access to files C, D, E 
    Person 5 has access to files C, D 
    Person 6 has access to files C, D, E 

私はそれを分類することなく、(教師なし学習)を認識できるようにしたい人1-3と4-6人が彼らのための、同様の機能であり、同じグループ内の可能性が高いこと類似したファイルアクセス(クラスタリング)私たちは、クラスタを識別した後、我々は、ファイルを持つ人1 E.

ある異常なアクセスを、フラグ私はAI4Rルビーライブラリに見てみましたが、行き止まりに来ました。そこから選択するアルゴリズムはたくさんあります。私はちょうど正しい方法を指摘する必要があります。ありがとう。これを行うための

+0

単純なグループについてはどうですか?あなたに概要を与えるかもしれません。 – three

答えて

0

まっすぐな方法は、それぞれの人のための特徴ベクトルを構築し、両者の間の類似性の尺度としてcosine similarity /内積を使用することです。特徴ベクトルは(A = 1、B = 0、C = 1 ...)のようになります。計算するときデータが希薄すぎる、つまりあまりにも多くのアクセスオプションがある場合、非常に低い類似性測定に終わる可能性があります。

また、2つの機能/アクセスが互いにどのように関連しているか(つまり、0と1の間の値など)の参照(機能)マトリックスを作成することもできます。 Sum(f1、f2)/(nr(f1)* nr(f2))ここで、f1はフィーチャ/アクセスフォームのperson1、f2はフィーチャ/アクセスフォームperson1です。この2つのベクトルの類似度は、 nr(f1)=人物1の総特徴量、nr(f2)人物2の総特徴量。

ここで、それぞれの人物が他の人物とどのように関連しているかを測ることができます。これで、agglomerative clustering戦略を使用することができます。これにより、あらかじめ定義された(この制限を設定するという意味で)クラスタ数になることができます。または、集計を可能にするためにクラスタの重心間の最大デルタに関するルールを設定することができます。これにより、予期しないステージでプロセスが停止する可能性があります(不特定多数のクラスタで終了する)。

これは非常に簡単な方法です。フィーチャマトリックスにはドメインの知識が必要であり、多くのフィーチャ/アクセスタイプがある場合は特に構築に時間がかかります。

関連する問題