商用机器学习:数据科学实践
上QQ阅读APP看书,第一时间看更新

2.6 其他聚类方法

k-均值算法是最受欢迎的聚类分析方法,但是还有其他替换的方法可用,其中一种被称为凝聚层次聚类(agglomerative hierarchical clustering),该方法涉及以下几个步骤:

·将每个观测值设为一个子聚类;

·合并距离最近的两个聚类;

·重复第二步直到所有观测值被合并为一个聚类。

这种方法的优势在于所有聚类按照层次组合,因此我们可以观察到子聚类中的子聚类。当我们定下一个具体的k值时,这种层次结构可以直接将所有观测值分出从1到k个子聚类。而这种方法的劣势则在于当观测值数量级过大时,这么做会非常花费时间。

有一系列不同的方法可以对第二步中A和B两个聚类的接近程度进行测量。第一种方法是分别计算A聚类和B聚类中观测值的平均欧式距离。或者,我们可以利用欧式距离的最小值或者最大值。另一种方法(离差平方和法的一种)是计算当两个子聚类合并后惯性矩的增加值。无论选择哪一种方法,第二步的目的都是寻找两个距离最近的聚类并对其进行合并。

有时候聚类可以通过统计学分布来完成,这种方法被称为基于分布的聚类(distribution-based clustering)。举个简单的例子:假设只有一个特征,观测值的概率分布如图2-6所示,我们可以从图中观测到观测值的分布为两个正态分布的组合。其定义为,一个观测值分布于均值和标准差为某个值的正态分布上的概率为p,而分布于另一个均值和标准差不同的正态分布上的概率为1-p。统计工具可以将两个分布区分开,因此形成了两个聚类。同样的方法也适用于多个特征和多个分布中。

图2-6 一个特征取值的可分离正态分布聚类的概率分布图

基于密度的聚类(density-based clustering)根据单个观测值的接近程度来形成聚类。我们假设最初将8个观测值归为一个聚类,观测值之间距离较近,然后在这个聚类中增加一个新的观测值,且新增观测值与子聚类内至少5个观测值接近,从而形成新聚类;然后再增加一个观测值,且新增观测值与新聚类中至少5个观测值接近,依此类推。该方法所得出的聚类形状与k-均值算法所得出的聚类形状差异较大。图2-7展示了两个例子。k-均值算法不会得出这样的结论,因为其算法考虑的是子聚类的中心位置。图2-7a中展示的两个子聚类拥有同一个中心点,而k-均值却不会得到这样的结果;在图2-7b中,k-均值算法可能会得出与之相似的聚类,但外表形状并不明显。

图2-7 基于密度的聚类算法结果图