首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据挖掘现状

数据挖掘现状
EN

Stack Overflow用户
提问于 2011-10-01 01:23:00
回答 2查看 213关注 0票数 7

假设我有下面提到的数据。

上午11点user1笔刷

上午11:05 user1准备刹车

上午11:10 user1吃早餐

上午11:15 user1洗浴

上午11:30 user1上班

12 user2笔刷

12:05 12 user2准备刹车

12:10 12 user2吃早餐

12:15 12 user2洗浴

12:30 12 user2上班

上午11点user3洗浴

上午11:05 user3准备刹车

上午11:10 user3刷子

上午11:15 user3吃早餐

上午11:30 user3上班

12 user4洗浴

12:05 12 user4准备刹车

12:10 12 user4笔刷

12:15 12 user4吃早餐

12:30 12 user4上班

这些数据告诉我不同人的日常生活。从这些数据看,user1和user2的行为类似(尽管它们执行活动的时间不同,但它们遵循相同的顺序)。出于同样的原因,User3和User4的行为相似。现在,我必须将这些用户分组到不同的组中。在本例中,group1- user1和USer2 ...其次是group2,包括user3和user4

我该如何处理这种情况。我正在尝试学习数据挖掘,这是一个我认为是数据挖掘问题的例子。我正在努力寻找解决方案的方法,但我想不出一个方法。我相信这个数据有它的模式。但我不能想出可以揭示它的方法。此外,我必须将这种方法映射到我拥有的数据集上,该数据集非常庞大,但与以下内容类似:)数据是关于一次事件发生的日志。我想找出代表相似事件序列的组。

如有任何建议,我们将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-01 04:43:04

它看起来像关联挖掘算法之上的聚类算法,更准确地说是Apriori算法。如下所示:

  1. 挖掘动作之间所有可能的关联,即序列布什->准备早餐,准备早餐->吃早餐,...,布什->准备早餐->吃早餐,等等。
  2. 从每个这样的序列中创建单独的属性。为了获得更好的性能,为配对属性添加2,为三元组属性添加3,依此类推。
  3. 目前你必须有一个属性向量和相应的boost向量。您可以为每个用户计算特征向量:如果该序列存在于用户操作中,则在向量中的每个位置设置1* boost,否则设置0)。您将获得每个用户的向量表示。
  4. 在这个向量上使用聚类算法,更适合你的需要。找到的每个类都是您使用的组。

示例:

让我们将所有操作标记为字母:

A-刷子

B-准备早餐

C- East早餐

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

..。

在这种情况下,用户特征向量将是:

代码语言:javascript
复制
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, ...

为了比较两个用户,需要一些距离度量。最简单的是cosine distance,也就是两个特征向量之间的余弦值。如果两个用户具有完全相同的操作序列,他们的相似度将等于1。如果他们没有共同点-他们的相似度将为0。

在距离度量的基础上,使用聚类算法(如k-means)对用户进行分组。

票数 2
EN

Stack Overflow用户

发布于 2015-04-12 06:22:09

使用其他答案中提出的像Apriori这样的项集挖掘算法并不是最好的解决方案,因为Apriori没有考虑时间或顺序排序。因此,它需要执行额外的预处理步骤来考虑排序。

更好的解决方案是直接使用序列模式挖掘算法,如PrefixSpan、SPADE或CM-SPADE。序列模式挖掘算法将直接找到一组序列中经常出现的子序列。

然后,您仍然可以对找到的顺序模式应用聚类!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7613863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档