Advertisement

聚类-k均值算法

阅读量:

在无监督学习中,训练样本的标签信息未知。研究者的目标是通过分析这些无标签数据来探索其固有特征和模式,并为其后续分析工作打下理论基础。

聚类算法旨在将数据集中的样本分配到若干互不相交的子集中。这些子集则被称为簇,在这种划分方式下,每个簇可能对应于一些潜在类别。

K-means算法是一种最基本的聚类方法。其核心目标在于通过使得各数据点与其所属簇中心之间的平方误差总和最小化来实现最优的簇划分(这一指标也是评估该K-means聚类结果最终效果的关键依据)。

K-means聚类算法的一般步骤:

  1. 初始化阶段。获取基因表达矩阵作为研究对象集合X,并指定预设的聚类数目N;随后从X中随机抽取N个样本点构成初始聚类中心集合;设定算法终止条件。
  2. 迭代过程开始后,在每一轮循环中将所有样本点依据相似性标准分配至最近的类别;并初始化一个隶属度矩阵。
  3. 计算各类别新的代表点(即各类别样本点的均值向量),将其作为新的聚类中心;并重新对样本点进行分类。
  4. 持续地重复执行第二步和第三步直到满足终止条件。

举一个简单的例子来说明问题:

给定样本数据集D={x₁,x₂,…,xₘ}, K-means算法用于所得到的聚类簇划分C={C₁,C₂,…,C_k}以使得平均误差最小化

是代表簇Ci的均值向量,在一定程度上反映了样本围绕着该均值向量分布的情况,并且表明样本之间的相似程度越大

。。。。

假设聚类簇的数量为k=3,在算法启动时,我们采用x6、x12和x27这三个样本点来确定初始均值向量。

μ1=(0.403,0.237),μ2=(0.343,0.099),μ3=(0.532,0.472)

评估样本x1=(0.697, 0.460),其与当前均值向量μ₁、μ₂、μ₃的距离分别为d₁=0.369、d₂=0.506、d₃=0.166。由此可知,x₁应被归入簇C₃中。遍历数据集中所有样本后,则可得出目前的分类结果:

c1={x5,x6,x7,....}

c2={x11,x12,x16....}

c3={x1,x2....}

于是可从C1,C2,C3分别求出新的均值向量

μ'1=(0.437,0.214),μ'2=(0.394,0.066),μ'3=(0.623,0.388)

不断重复上述过程,直至迭代结果相同,算法结束

设有一组数据集x1=(2,1),x2=(1,3),x3=(6,7),x4=(4,7)

选择聚类中心点,在实际应用中可以选择任意位置;此外还可以根据频数分布图确定位置;另外一种方法是取前两个特征值对应的主成分作为聚类中心点的位置依据。因此,在本研究中决定采用两个聚类中心点。

(2)计算每一个样本值到聚类中心的距离;并划分新的聚类中心;

假设存在M组数据源,并分为C个不同的类别。其中?c代表一个特定的聚类中心。该数学公式所表达的意思是将每个类别中的所有数据分别与各个聚类中心计算差值的平方和,并寻求使这个总和达到最小的情况(J最小)。当J取得最小值时(即达到全局最优),这表明这种划分方式能够达到最佳效果。

全部评论 (0)

还没有任何评论哟~