核K-均值(Kernel K-means)是一种扩展版本的K-means算法,它使用核技巧(kernel trick)将数据映射到高维空间
,在这个高维空间中执行聚类。
这种映射允许线性不可分
的数据在高维空间中变得线性可分
,从而提高聚类的效果。
Kernel K-means的核心在于它不需要显式
地知道映射后的数据点,而是利用核函数
来计算数据点在高维空间中的相似度。
Kernel K-means算法的基本步骤:
- 初始化:随机选择 k 个中心点作为初试
聚类中心。
- 映射与聚类:使用
核函数
计算每个数据点
与所有中心点
之间的相似
度,将每个点分配给最相似
的中心所代表的簇。 - 更新中心:在高维空间中,
重新计算
每个簇的中心。这通常涉及到在原始空间中寻找一个新的点,该点能够最大化
簇内数据点的平均核函数值。
- 重复步骤2和3,直到聚类中心不再显著改变或者达到最大迭代次数。
涉及到的公式:
目标函数
在Kernel K-means中,我们希望最小化簇内数据点的平方距离之和
,但在高维空间中。然而,我们直接操作的是核矩阵
,而不是高维空间中的数据点本身。目标函数可以表示为:
这里:
- 是一个
指示矩阵
,它表示数据点与聚类中心的分配关系
。 - 是第 个
簇包含的数据点集合。
- 是数据点
在高维空间中的映射。
- 是第 个
簇的中心点在高维空间中的映射。
但因为直接计算 可能非常复杂或不可能,我们用核函数
:
来代替计算 和 的内积
。
核函数
核函数计算两个数据点在高维空间中的相似度
,定义为:
这里:
- 是数据点 和 的
核函数值。
- 表示
内积运算。
内积计算
更新聚类中心
在Kernel K-means中,聚类中心的更新 涉及到计算每个簇的成员数据点在核空间中的 平均向量
。这个平均向量可以使用核矩阵和簇分配
来计算,但具体的公式可能依赖于使用的核函数类型和优化策略。
公式中的每个字符:
- :指示矩阵,指示数据点分配到哪个簇。
- :聚类的数量。
- :簇的索引。
- :数据点 。
- :簇
- :映射函数,将数据点从原始空间映射到高维空间。
- :簇
- :核函数,用于计算数据点在高维空间中的相似度。
- :内积运算符,用于计算两个向量的内积。
- :数据点 ,用于计算与
Kernel K-means通过利用核技巧避免了显式地构造高维空间中的数据点,这极大地简化了计算过程并提高了算法处理复杂数据的能力。
具体例子
为了更好地理解Kernel K-means的工作原理,可以考虑一个具体的例子,其中数据点分布在非线性
的结构中,使得在原始空间中使用传统的K-means算法难以有效地进行聚类。
我们将使用径向基函数(Radial Basis Function,RBF)核函数
来进行Kernel K-means聚类。
数据集:
假设我们有一个二维数据集
,数据点分布在两个非线性
的环形区域,一个内部环和一个外部环。
如果我们尝试使用标准的K-means算法去聚类这些点,那么由于数据点分布的非线性特性,可能会得到不理想的聚类结果。
核函数:
我们将使用RBF核函数,它定义为:
这里:
- 和 是
两个数据点。
- 是两个数据点之间的
欧氏距离的平方。
- 是RBF
核函数的参数
,控制着高斯核的宽度。
Kernel K-means步骤:
- 初始化:随机选择 k 个数据点作为初试聚类中心。
- 计算核矩阵:使用RBF核函数计算
所有数据点对之间的核值
,形成一个核矩阵
。 - 映射与聚类:使用
核矩阵
计算每个数据点与所有中心点之间的相似度
,将每个点分配给最相似
的中心所代表的簇。这可以通过计算每个数据点到所有中心点的核距离来完成,然后选择最小的距离
来确定分配。 - 更新中心:在高维空间中,
重新计算每个簇的中心
。这一步骤在Kernel K-means中比较特殊,通常不是通过直接计算高维空间中的中心点,而是通过在原始空间中选择一个能够最大化簇内数据点的平均核函数值
的数据点作为新的中心点。 - 重复步骤3和4,直到聚类中心不再显著改变或者达到最大迭代次数。
具体实例:
假设我们有两个簇(),并且我们选择了RBF核函数的参数 。
我们首先随机选择两个数据点作为初始中心,然后计算所有数据点之间的核值。
接下来,我们使用这些核值来决定每个数据点应该被分配到哪个簇
。
分配完成后,我们再次计算每个簇的中心点
,这一次是在核空间中。
这个过程会反复进行,直到簇的中心稳定下来。
结果:
在经过几轮迭代后,Kernel K-means算法将能够正确地识别出两个环形的簇,即使在原始空间中数据点看起来是非线性
分布的。
这是因为通过使用RBF核函数,数据点在高维空间中被有效地拉伸,使得原本非线性的簇在高维空间中变得线性可分。
这个例子展示了Kernel K-means如何利用核技巧
来处理复杂数据分布的问题,尤其是在原始空间中数据点无法被简单的超平面分割的情况下。