现在,我只有一点时间来作一个简短的回答,但是稍后我将尝试对其进行扩展。
您想要做的是集群化,因为您想发现数据的一些标签。(与分类相反,在分类中,您至少要为某些数据添加标签,而您要为其余数据添加标签)。
为了对用户执行集群,您需要将它们作为抽象空间中的某种点。然后,您将测量点之间的距离,并说“附近”的点是“相似”的点,并根据它们在该空间中的位置进行标记。
您需要将数据转换为类似于用户配置文件的内容,即:一个用户ID,后跟代表该用户功能的数字矢量。在您的情况下,每个功能都可以是“网站类别”或“产品类别”,而数字可以是在该功能上花费的金额。当然,功能也可以是网络和产品的组合。
举个例子,让我们想象一下只有三个功能的用户配置文件:
- 在“高科技”网站上花费的美元,
- 在“时尚”产品上花费的美元,
- 以及在“面向家庭”的网络上(了解)在“激进”视频游戏上花费的资金。
为了构建这些概要文件,您需要将太多的“类别”和“关键字”映射到您认为相关的功能中。查看主题建模或语义相似性可以做到这一点。构建完该地图后,它将声明所有在网络上用关键字“小工具”,“电子产品”,“编程”以及其他X个元素花费的资金都应汇总到我们的第一个功能中;等等。
不要害怕“强加”这些功能!您需要对它们进行优化,并在对用户进行集群之后可能完全对其进行更改。
有了用户个人资料后,请继续使用k-means或您认为有趣的其他任何方式将其聚类。无论使用哪种技术,您都将有兴趣获取每个群集的“代表”点。这通常是该群集中点的几何“中心”。
绘制那些“代表性”点,并绘制它们与其他类的比较。在这里使用雷达图非常有用。无论哪里有显着特征(代表中的特征非常明显,并且在与其他集群的比较中也很突出),都是很好的候选者,可以帮助您使用一些易记的短语(“书呆子”,“ fashionistas”)标记集群,“好斗的妈妈” ...)。
请记住,集群问题是一个开放的问题,因此没有“正确”的解决方案!我想我的答案已经很长了;还要检查配置文件和过滤异常值的规范化。