从 k-means 构建特征

机器算法验证 机器学习 聚类 无监督学习 特征工程
2022-04-05 13:09:51

我想从应用 k-means 聚类的结果构建特征,以构建我的数据的特征,以便以后用于分类器。

假设我已经固定了(例如 5)并执行了聚类。然后我可以使用k

  1. 集群指标
  2. 集群的中心

作为新功能。在实践中还做了什么?我读到了关于使用到集群中心的距离作为特征的信息——我们能找到任何参考吗?

2个回答

有一篇很棒的论文将 k-means 与特征的稀疏编码以及如何解决它的一些弱点以产生好的特征联系起来。即使它专注于图像处理的特定情况,它也对一般情况(如何进行预白化以对数据进行去相关等)提供了有价值的建议。

最后,众所周知,kmeans 和 knn 等算法(在其原始公式中)使用欧几里得距离作为度量,在高维设置中表现不佳。这里有一个重要参考解决了这一点。

编辑:我遇到了这篇(恕我直言,真的很有趣)论文Deterministic Feature Selection for k-Means Clustering,它提供了一种具有理论分析和性能保证的确定性算法。另见其中的一些参考文献,特别是第一作者的参考文献。

只是为了澄清一件事:您要解决的问题是什么(样本数量,维度等)?本文特征选择的动机是 k-means 在高维空间中的性能不佳。通常会做出一个假设:许多特征中只有少数是相关的。许多方法在某些方面不是最理想的:例如贪婪搜索和随机搜索,并且并非所有方法都对其性能有保证。因此,您所做的是迭代许多试验/替代启发式方法,直到找到满意的结果。

因此,如果您需要构建新功能,您可以尝试生成新的、合理的功能,然后对整个功能集执行功能选择。

希望这可以帮助。

基本上没有你必须添加这个或这个.....你实际上应该添加可验证的改进你的分类的功能。

您可以在这里发挥创意并尝试几件事。

例如,您可以为每个集群创建变量(均值、标准差、...)的统计数据并添加这些数据。例如,您还可以将差异添加到这个新的平均值/中位数/...。

另外添加集群“质量度量”可能是一个想法,例如每个集群的集群内距离,....

您还可以尝试不同的聚类方法来创建附加特征。

请记住,仅创建这些变量并不是一切,您还必须检查您的分类是否有所改进。

根据我自己的经验:大多数情况下,我无法使用聚类创建的新特征来改进分类结果(但这当然高度依赖于数据集)

另一件重要的事情:确保您不包括稍后测试集的目标变量以用于聚类中的分类。这将给出分类性能的误导性结果。