use*_*856 7 data-mining text-mining
假设我有如下所述的数据.
11AM user1刷机
上午11:05 user1准备Brakfast
上午11:10用户1吃早餐
上午11:15 user1洗澡
上午11:30用户1离开办公室
12PM user2刷机
下午12:05 user2 Prep Brakfast
下午12:10用户2吃早餐
12:15 PM user2洗澡
12:30 PM user2离开办公室
11AM user3洗澡
上午11:05 user3准备Brakfast
上午11:10 user3刷机
上午11:15 user3吃早餐
上午11:30 user3离开办公室
12PM user4洗澡
下午12:05 user4 Prep Brakfast
下午12:10 user4刷机
下午12:15用户4吃早餐
12:30 PM user4离开办公室
这些数据告诉我不同人的日常生活.从这些数据来看,似乎user1和user2的行为相似(尽管它们执行活动的时间有所不同,但它们遵循相同的顺序).出于同样的原因,User3和User4的行为类似.现在我必须将这些用户分组到不同的组中.在此示例中,group1- user1和USer2 ...后跟group2,包括user3和user4
我应该如何处理这种情况.我正在尝试学习数据挖掘,这是一个我认为是数据挖掘问题的例子.我试图找到解决方案的方法,但我想不出一个.我相信这些数据有其中的模式.但我无法想到可以揭示它的方法.此外,我必须在我拥有的数据集上映射此方法,这非常巨大,但与此类似:)数据是关于日志说明事件一次发生.我想找到代表相似事件序列的组.
任何指针将不胜感激.
它看起来像是关联挖掘之上的聚类,更准确地说是Apriori算法。像这样的东西:
例子:
让我们将所有操作标记为字母:
a - 刷牙
b - 准备早餐
c - 东方早餐
d - 洗澡
...
你的属性看起来像
a1: a->b
a2: a->c
a3: a->d
...
a10: b->a
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, ...
Run Code Online (Sandbox Code Playgroud)
为了比较两个用户,需要一些距离测量。最简单的是余弦距离,即两个特征向量之间的余弦值。如果 2 个用户具有完全相同的操作序列,则他们的相似度将等于 1。如果他们没有任何共同点,那么他们的相似度将为 0。
通过距离测量,使用聚类算法(例如k-means)来创建用户组。