使用属性来分类/集群用户配置文件


14

我有一个用户从网站购买产品的数据集。

我具有的属性是用户ID,用户的地区(州),产品的类别ID,产品的关键字ID,网站的关键字ID和产品的销售金额。

目的是使用产品和网站的信息来识别用户的身份,例如“年轻的男性玩家”或“待在家里的妈妈”。

我附上了一个示例图片,如下所示:

在此处输入图片说明

产品共有1940个唯一类别和13845个唯一关键字。对于该网站,有13063个唯一关键字。整个数据集非常庞大,因为这是每日的记录数据。

我正在考虑聚类,因为它们是无监督的,但是这些id是没有数字含义的有序数字。然后我不知道如何应用该算法。我也在考虑分类。如果我根据购买的产品的销售额添加一列类。我认为群集是更可取的。我不知道在这种情况下应该使用哪种算法,因为关键字id的尺寸可能会超过10000(每个产品可能有很多关键字,网站也是如此)。我需要在该项目中使用Spark。

有人可以帮我一些想法或建议吗?

非常感谢!


1
您能否提供更多信息?所有条目的长度相同的“产品A的类别ID”和“搜索产品A的关键字ID”是什么?为什么“搜索关键字id的尺寸可能大于10000”?这些是什么?你有几个样本?如果您在此处发布一些数据样本,则所有问题都可以得到解答。那我可能会建议你一些事情。
Kasra Manshaei 2015年

用户购买的产品A和产品B是两个产品吗?该措辞似乎暗示每个用户的产品A和B都不同,因为关键字可能会有所不同。是这样吗 最后一句话,您要分类还是聚类?这些是完全不同的技术:)
logc 2015年

非常感谢@kasramsh的回复。我更新了说明,并附加了示例数据。希望从您那里得到一些建议!
西尔维亚

@logc是的,产品(我之前提到产品A)和网站(我之前提到产品B)与每个用户不同。每个产品都有几个关键字,每个网站也都有几个关键字。只要可以创建用户个人资料(例如“年轻男性玩家”),就可以使用聚类或分类。“妈妈待在家里”。我认为群集更可取。谢谢!!
西尔维亚

@sylvia-我有类似的问题要解决。我将其作为一个单独的问题发布。您能提出一些解决方法的建议吗?datascience.stackexchange.com/questions/12930/… 我的另一个疑问是对于K表示,您是否按客户对记录进行分组?意思是直到每一行代表一笔交易还是代表该客户的累计购买。
尼尔

Answers:


11

现在,我只有一点时间来作一个简短的回答,但是稍后我将尝试对其进行扩展。

您想要做的是集群化,因为您想发现数据的一些标签。(与分类相反,在分类中,您至少要为某些数据添加标签,而您要为其余数据添加标签)。

为了对用户执行集群,您需要将它们作为抽象空间中的某种点。然后,您将测量点之间的距离,并说“附近”的点是“相似”的点,并根据它们在该空间中的位置进行标记。

您需要将数据转换为类似于用户配置文件的内容,即:一个用户ID,后跟代表该用户功能的数字矢量。在您的情况下,每个功能都可以是“网站类别”或“产品类别”,而数字可以是在该功能上花费的金额。当然,功能也可以是网络和产品的组合。

举个例子,让我们想象一下只有三个功能的用户配置文件:

  • 在“高科技”网站上花费的美元,
  • 在“时尚”产品上花费的美元,
  • 以及在“面向家庭”的网络上(了解)在“激进”视频游戏上花费的资金。

为了构建这些概要文件,您需要将太多的“类别”和“关键字”映射到您认为相关的功能中。查看主题建模语义相似性可以做到这一点。构建完该地图后,它将声明所有在网络上用关键字“小工具”,“电子产品”,“编程”以及其他X个元素花费的资金都应汇总到我们的第一个功能中;等等。

不要害怕“强加”这些功能!您需要对它们进行优化,并在对用户进行集群之后可能完全对其进行更改。

有了用户个人资料后,请继续使用k-means或您认为有趣的其他任何方式将其聚类。无论使用哪种技术,您都将有兴趣获取每个群集的“代表”点。这通常是该群集中点的几何“中心”。

绘制那些“代表性”点,并绘制它们与其他类的比较。在这里使用雷达图非常有用。无论哪里有显着特征(代表中的特征非常明显,并且在与其他集群的比较中也很突出),都是很好的候选者,可以帮助您使用一些易记的短语(“书呆子”,“ fashionistas”)标记集群,“好斗的妈妈” ...)。

请记住,集群问题是一个开放的问题,因此没有“正确”的解决方案!我想我的答案已经很长了;还要检查配置文件和过滤异常值的规范化。


非常感谢!这非常有帮助。我将从映射开始。对此,我真的非常感激!
西尔维亚

乐意效劳。:)
logc 2015年

@logc,您好,我使用LDA选择功能。我认为每个user_id都是一个“文档”,关键字是“文档”中的“单词”,然后通过应用LDA,我得到了一些关键字主题。但是,我不知道为什么我的大多数主题都包含相同的关键字。这是否意味着LDA不是适合我的情况的正确方法,还是存在一些错误?非常感谢!
西尔维亚

@sylvia:我建议您在此站点上将该问题变成一个新问题。否则,我们可能最终会写大量评论,而这并不是问与答的最佳格式。:)
logc

谢谢你的建议。如果您有时间看一下,这是我发布的链接datascience.stackexchange.com/questions/5941/…谢谢!
西尔维亚(Sylvia)

-2

对于定位和探索,我可以推荐WeKa,这是一个非常好的机器学习工具包。它确实需要某种输入格式(.ARFF),因此您可能还需要研究一下。

至于关键字困境,我建议执行一些功能选择,以消除冗余或非指示性关键字。


谢谢@Lennart Kloppenburg的回复。如果属性(keword_id)是有序数字,如何执行功能选择?我更新了上面的示例数据。您能否看一下并给我一些建议?谢谢!
西尔维亚
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.