使用属性对用户配置文件进行分类/聚类

数据挖掘 机器学习 数据挖掘 分类 聚类
2021-09-29 01:50:56

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

我拥有的属性是用户 id、用户的地区(状态)、产品的类别 id、产品的关键字 id、网站的关键字 id 和产品的销售额。

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

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

在此处输入图像描述

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

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

任何人都可以帮助我提出一些想法或建议吗?

太感谢了!

2个回答

现在,我只有时间做一个非常简短的回答,但我稍后会尝试扩展它。

您要做的是聚类,因为您想为数据发现一些标签。(与分类相反,您可以为至少一些数据添加标签,而您希望为其余数据添加标签)。

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

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

例如,让我们想象一下只有三个特征的用户配置文件:

  • 在“技术”网络上花费的美元,
  • 花在“时尚”产品上的美元,
  • 以及在“面向家庭”的网络上花在“激进”视频游戏上的钱(谁知道呢)。

为了构建这些配置文件,您需要将您拥有的过于丰富的“类别”和“关键字”映射到您认为相关的功能中。研究主题建模语义相似性来做到这一点。一旦该地图构建完成,它会声明所有花费在关键字“gadget”、“electronics”、“programming”和 X 其他网站上的钱都应该汇总到我们的第一个功能中;等等。

不要害怕“强加”这些功能!一旦您对用户进行了聚类,您将需要对其进行细化并可能完全更改它们。

一旦你有了用户资料,就可以继续使用k-means或任何你认为有趣的东西对它们进行聚类。无论您使用什么技术,您都会对获得每个集群的“代表”点感兴趣。这通常是该集群中点的几何“中心”。

绘制那些“代表性”点,并绘制它们与其他集群的比较。在这里使用雷达图非常有用。只要有显着特征(代表中非常显着的东西,并且在与其他集群相比也非常突出),都是一个很好的候选者,可以帮助您用一些吸引人的短语(“nerds”,“fashionistas”)来标记集群,“好斗的妈妈”...)。

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

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

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