大型重尾数据集的聚类

机器算法验证 聚类 大数据 峰度
2022-04-05 02:48:32

我有一个包含 13 万互联网用户的数据集,其特征是 4 个变量,描述用户的会话数、访问的位置、平均数据下载和四个月活动汇总的会话时间。

数据集非常重尾。例如,三分之一的用户在四个月内只登录一次,而六个用户的会话超过 1000 个。

我想提出一个简单的用户分类,最好能指出最合适的集群数量。

您有什么可以推荐的解决方案吗?

4个回答

您可以使用有监督的自组织地图(例如,使用 R 的kohonen包),并使用登录频率作为因变量。这样,聚类将专注于将频繁访问者与稀有访问者分开。通过在每个地图单元上绘制用户数量,您可以了解数据中存在的集群。

因为 SOM 是非线性映射方法,所以这种方法对有尾数据特别有用。

这是集群的问题,你无法分辨什么是集群。我会看到集群用户背后的原因是什么,指定我的阈值,并使用层次集群。

根据我的经验,必须设置所需的集群数量或阈值(将两个数据点绑定在一起的距离值)。

K-Means 聚类应该可以很好地解决这类问题。但是,它确实需要您提前指定集群的数量。

但是,鉴于此数据的性质,您可能可以改用层次聚类算法。由于所有 4 个变量很可能都高度相关,因此您很可能会分解聚类,并在聚类之间的距离足够小时停止。在这种特定情况下,这可能是一种更简单的方法,并且允许您通过在将集合分解为足够精细的集群后立即停止来确定“多少集群”。

您可能会考虑转换(可能是对数)正偏变量。

如果在探索了各种聚类算法之后,您发现这四个变量只是反映了不同的使用强度级别,您可能会考虑基于理论的分类。据推测,这种分类将用于某个目的,并且该目的可能会在一个或多个变量上驱动有意义的切点。