我正在尝试使用 Mahout 对用户进行聚类和分类。在我处于计划阶段的那一刻,我的脑海里完全混杂着各种想法,而且由于我对这个领域比较陌生,所以我被困在数据格式上。
假设我们有两个数据表(足够大)。第一个表中有用户及其操作。每个用户至少有一个操作,他们也可以有太多的操作。表中有大约 10000 个不同的 user_actions 和数百万条记录。
user - user_action
u1 - a
u2 - b
u3 - a
u1 - c
u2 - c
u2 - c
u1 - b
u4 - f
u4 - e
u1 - e
u1 - d
u5 - d
在另一个表中,有操作类别。每个动作可能没有或有多个类别。有60个类别。
user_action - category
a - cat1
b - cat2
c - cat1
d - NULL
e - cat1, cat3
f - cat4
我将尝试使用Mahout构建用户分类模型,但我不知道我应该做什么。我应该创建什么类型的用户向量?还是我真的需要用户向量?
我想我需要创造类似的东西;
u1 (a, c, b, e, d)
u2 (b, c, c)
u3 (a)
u4 (f, e)
u5 ()
问题在这里,一些用户执行了超过 100000 个操作(其中一些是相同的操作)
所以; 我认为这更有用;
u1 (cat1, cat1, cat2, cat1, cat3)
u2 (cat2, cat1, cat1)
u3 (cat1)
u4 (cat4, cat1, cat3)
u5 ()
我也担心的事情是
- 我应该如何为用户加权类别?比如 u1 至少有 3 个与 cat1 相关的 action,而 u3 只有 1 个。这应该不一样吧?
- 如何减少主动用户和被动用户之间的差异?就像 u1 有太多动作和类别一样,u3 只有 1 个。
欢迎任何指导。