我正在使用与电视消费数据相对应的混合数据集,目的是将特征数量减少到仅与使用聚类检测电视消费模式(或消费组)相关的那些。
该数据集由大约 20 个维度和 2.000.000 个样本组成,消耗 1 天。我可以访问长达 3 年的消费数据,因此我可以利用高达约 10 亿的数据。我的想法是只使用几天的消耗量(因此需要几百万个数据)开始工作。
3 个维度是连续/数字类型(消费的日期时间、持续时间......),其余维度是离散/分类类型,具有二元选项的特征(例如程序是否实时)或多个甚至数百个选项(例如程序名称、主题、设备类型等)。出于这个原因,我试图用 Python 实现一个可以处理混合数据的聚类算法。
由于我怀疑有很多维度可能与我的研究无关,所以我想减少特征的数量。为此,我考虑过应用一些聚类算法,并通过删除给定的特征来检查聚类结果是否不受影响。
但是,我不知道应该计算或使用什么指标来评估聚类结果以及删除其中一个属性的效果。
目前我已经应用了基于 K-means 但用于混合数据的 K-prototypes 算法。在 Python 中很容易实现(https://antonsruberts.github.io/kproto-audience/)。但是,它只返回集群标签、质心坐标和成本(定义为所有点到各自质心的距离之和)。因此,我不知道如何解释结果或如何研究特征的效果。
我想知道我解决问题的方法是否正确,我应该使用什么指标来评估聚类结果并减少维数,以及 Python 中是否有其他易于实现的算法(用于聚类或无监督特征选择) 能够处理我拥有的数据类型。