5.1.2 聚类算法的要求
(1)可扩展性。许多聚类算法在小数据集(少于200个数据对象)时可以工作得很好;但一个大数据库可能会包含数以百万的数据对象,这时利用采样方法进行聚类分析可能得到一个有偏差的结果,这时就需要可扩展的聚类分析算法。
(2)处理不同类型属性的能力。许多算法是针对基于区间的数值属性而设计的。但是有些应用需要处理实类型数据,如二值类型、符号类型、顺序类型,或这些数据类型的组合。
(3)发现任意形状的聚类。许多聚类算法是根据欧氏距离和Manhattan距离来进行聚类的。基于这类距离的聚类方法一般只能发现具有类似大小和密度的圆形或球状聚类。而实际上一个聚类是可以具有任意形状的,因此设计能够发现任意形状的聚类算法是非常重要的。
(4)需要(由用户)决定的输入参数最少。许多聚类算法需要用户输入聚类分析中所需要的一些参数(如期望所获得聚类的个数),而聚类结果通常都与输入参数密切相关,而这些参数常常也很难确定,特别是包含高维对象的数据集,这不仅构成了用户的负担,也使得聚类质量难以控制。
(5)处理噪声数据的能力。大多数现实世界的数据库均包含异常数据、不明数据、数据丢失和噪声数据,有些聚类算法对这样的数据非常敏感并会导致获得质量较差的数据。(https://www.daowen.com)
(6)对输入记录顺序不敏感。一些聚类算法对输入数据的顺序敏感,即不同的数据输入顺序会导致获得不同的结果。因此,设计对输入数据顺序不敏感的聚类算法也是非常重要的。
(7)高维问题。一个数据库或一个数据仓库或许包含若干维属性。许多通用的聚类算法在处理低维数据(仅包含2~3维)时表现很好,但设计高维空间中的数据对象,特别是对高维空间稀疏和怪异分布的数据对象,能进行较好聚类分析的聚类算法是聚类研究中的一项挑战。
(8)基于约束的聚类。现实世界中的应用可能需要在各种约束之下进行聚类分析。假设需要在一个城市中确定一些新加油站的位置,就需要考虑诸如城市中的河流、道路,以及每个区域的客户需求等约束情况下居民住地的聚类分析。设计能够发现满足特定约束条件且具有较好聚类质量的聚类算法也是一个重要聚类研究任务。
(9)可解释性和可用性。用户往往希望聚类结果是可理解的、可解释的以及可用的,这就需要聚类分析要与特定的解释和应用联系在一起。因此,研究一个应用目标是如何影响聚类方法选择也是非常重要的。