“聚类算法的选取原则****”
01
—
问题背景
当遇到聚类分析问题的时候,机器学习领域中有很多聚类算法可供选择。标准的sklearn库就有13个不同的聚类算法。那么面对不同问题应该如何选择聚类算法呢?
正如数据科学和机器学习中的每个问题一样,它取决于您的数据。sklearn中的这十三个聚类算法中有许多专门用于某些任务(例如联合聚类和双聚类,或者用聚类特征代替数据点)。显然,专门用于文本聚类的算法将是对文本数据进行聚类的正确选择,而其他算法专门用于其他特定类型的数据。因此,如果您对数据有足够的了解,您可以缩小范围,选择最适合该类数据的聚类算法,或选择数据所具有的重要属性,或选择需要进行的聚类。一切都很好,但如果你对自己的数据了解不多怎么办?
例如,如果您正在进行一些探索性数据分析(exploratory data analysis (EDA)),那么选择专门的算法就不那么容易了。那么,什么算法适合于探索性数据分析呢?
下面就列举一些当对数据先验知识比较少的时候,在选择聚类算法时,可以遵循的一些基本原则。
图片
02
—
聚类算法选取原则
首先,让我们制定一些基本规则,说明我们需要一个好的聚类算法来做什么。
如果您正在进行聚类分析,那么您就是在尝试学习并获得有关数据的信息。在这种情况下,完全没有结果比错误的结果要好得多。糟糕的结果会导致错误的直觉,反过来又会让你走上完全错误的道路。您不仅不理解数据,而且误解了数据。这意味着一个好的聚类算法需要在聚类中保持保守;它应该愿意不给集群分配点数;它不应该将点分组在一起,除非它们真的在一个集群中;比你想象的要少得多的算法也是
所有聚类算法都有参数;你需要一些参数来调整效果。问题是:如何选择这些参数的设置?如果您对数据知之甚少,则很难确定参数的值或设置。这意味着参数需要足够直观,以便您可以在不需要了解大量数据的情况下进行设置。