2011-09-30 23 views
7

以下のようなデータがあるとします。オフィスデータマイニングの状況

ための準備Brakfast

11:10 user1が食べる朝食

11:15 USER1風呂に入る

11:30 user1の休暇USER1

11AM user1のブラシ

11:05

12pm user2ブラシ

1準備Brakfast

User2が朝食

12:15 user2のお風呂に

を取り12:30 user2のオフィス放置

11AMのユーザー3テイク風呂

11を食べる12:10 user2の14:05 :05AM user3準備Brakfast

11:10 AM user3ブラシ

USER3朝食

を食べる11:30がUSER3 12PMが

12:05

準備Brakfast USER4 12:10 USER4ブラシ

風呂に入るUSER4

オフィス放置

11:15 12:15 PM user4 eat朝食

12:30 PM user4出勤

このデータは、さまざまな人々の日課について教えてくれます。このデータから、user1とuser2は同様に動作しているようです(アクティビティを実行する時間に違いがありますが、同じシーケンスに従っています)。同じ理由で、User3とUser4は同様に動作します。 このようなユーザーをさまざまなグループに分類する必要があります。この例では、group1-user1とUSer2 ... user3とuser4を含むgroup2が続きます。

このような状況にはどうしたらいいでしょうか。私はデータマイニングを学ぼうとしています。これはデータマイニングの問題として考えていた例です。私は解決策のためのアプローチを見つけようとしていますが、私はそれを考えることはできません。私はこのデータにパターンがあると信じています。私はそれを明らかにする方法について考えることができません。 また、このアプローチを私が持っているデータセットにマップする必要があります。これはかなり大きいですが、これに似ています:)データは、一度にイベントの発生を示すログに関するものです。そして私は類似の一連の出来事を表すグループを見つけたいと思っています。

何か指摘していただければ幸いです。

答えて

2

それは鉱業、より正確Aprioriアルゴリズムを関連付けるの上クラスタリングのように見えます。

  1. ブッシュ→準備朝食、準備朝食→食べる朝食、ブッシュ→準備朝食→食べる朝食などすべての組み合わせ、トリプレット、クワドラプルなど、あなたのデータで見つけることができます。
  2. このような各シーケンスから別の属性を作成します。パフォーマンスを向上させるには、ペア属性の場合は2、トリプレットの場合は3などを追加します。
  3. この時点で、対応するブーストベクトルを持つ属性ベクトルが必要です。各ユーザの特徴ベクトルを計算することができます。このシーケンスがユーザアクションに存在する場合、ベクトルの各位置で1 *ブーストを設定し、そうでない場合は0を設定します。各ユーザーのベクトル表現を取得します。
  4. このベクターでは、ニーズに適したクラスタリングアルゴリズムを使用します。見つかった各クラスは、使用するグループです。

例:

のは、手紙などすべてのアクションをマークしてみましょう:

- ブラシ
B - プレップ朝食
C - 東朝食
D - 入浴
してください。.. 。

属性は、次のようになります

A1:A-> B
A2:A-> A3
C:A-> D
...
A10:B->
A11:B-> C
A12:B-> D
...
A30:A-> B-> C-> D
A31:A-> B-> D-> C
...

この場合、ユーザー特徴ベクトルは次のようになります。

attributes = a1, a2, a3, a4, ..., a10, a11, a12, ..., a30, a31, ... 
user1  = 1, 0, 0, 0, ..., 0, 1, 0, ..., 4, 0, ... 
user2  = 1, 0, 0, 0, ..., 0, 1, 0, ..., 4, 0, ... 
user3  = 0, 0, 0, 0, ..., 0, 0, 0, ..., 0, 0, ... 

いくつかの距離尺度が必要とされている2人のユーザーを比較するには。最も簡単なものはcosine distanceです。つまり、2つの特徴ベクトルの間の余弦の値にすぎません。 2人のユーザが全く同じ行動シーケンスを持つ場合、それらの類似度は1になります。類似度は0になります。類似度は0になります。

距離測定では、ユーザグループを作成するためのクラスタリングアルゴリズムを使用します(たとえば、k-means)。

+0

ありがとうございます。私はあなたが説明したことを得たと思います。あなたが説明したようなクラスタリングを行うことをお勧めします。私はそれに取り組むでしょう。ありがとうございます。 – user722856

0

Aprioriのようなアイテムセットマイニングアルゴリズムを使用すると、他の答えで提案されているようにAprioriでは時間や順序が考慮されないため、最適な解決策ではありません。したがって、注文を検討するために追加の前処理ステップを実行する必要があります。

より良い解決策は、PrefixSpan、SPADE、またはCM-SPADEのようなシーケンシャルパターンマイニングアルゴリズムを直接使用することです。シーケンシャルパターンマイニングアルゴリズムは、一連のシーケンス内に頻繁に現れるサブシーケンスを直接見つける。

次に、見つかった連続パターンにクラスタリングを適用できます。