为 k-means 聚类提取有用的特征

数据挖掘 机器学习 聚类 k-均值
2021-10-03 17:00:50

所以假设我有一个数据集,其特征要么存在要么不存在,即 ie01. 现在我想确定真正有助于聚类的特征。

比如说我有 4 个训练示例。现在说我有一个存在的特征,即=1在所有训练示例中,因此我可以删除该特征,因为它死了对我没有帮助。现在让我们谈谈另外 2 个特征,如果它们共同存在的训练示例数量很多,它们对聚类也没有多大帮助(想想维恩图中的 2 个高度重叠的圆圈)。所以通过这种方式,我想找到对聚类有重大影响的特征,即主要是不重叠的特征。

有什么好的方法可以做到这一点吗?(我的特征都以二进制表示,要么存在,要么不存在)。

2个回答

特征选择有多种方式:

一种可能的方法(包装器方法)是首先对所有相关特征进行聚类并保存聚类,然后在删除 1 个特征后再次聚类,并将获得的聚类(没有特征)与聚类(有特征)进行比较。如果结果之间的差异可以忽略不计,那么您可以消除该功能。

过滤器方法包括您在问题中提到的内容,您可以删除很少变化或根本不变化的特征,这些特征可以用“熵”、“信息增益”、“卡方检验”等数学表达。这些概念衡量一个特征的杂质。

总而言之,“包装”方法通常提供更好的结果,但它们的计算成本更高。

更多请看这个

好吧,对于二进制数据,k-means 没有多大意义。

假设您的 4 个训练示例位于不同的集群中,您可能应该缩放所有属性以在这四个实例中具有相同的方差。除了 4 太少,无法进行有意义的方差估计......然后使用四个训练示例作为初始质心。