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