首页 理论教育KMeans算法在医药领域的应用

KMeans算法在医药领域的应用

【摘要】:KMeans可能由于初始值选择的不同,导致最终的结果不同。图4-4KMeans算法迭代过程假设对于相同的样本数据,若随机选择的两个初始点为序号4和7。对于同一个数据集,由于KMeans算法对初始选取的聚类中心敏感,因此可用该准则评价聚类结果的优劣。通常,对于任意一个数据集,KMeans算法无法达到全局最优,只能达到局部最优。

1.KMeans算法简介

给定n个样本的数据集以及要生成的簇的数目k,划分方法将样本组织为k个划分(k≤n),每个划分代表一个簇。

划分准则:同一个簇中的样本尽可能接近或相似,不同簇中的样本尽可能远离或不相似,以样本间的距离作为相似性度量。

典型的划分方法:KMeans(k-均值),由簇中样本的平均值来代表整个簇。kmedoids(k-中心点),由处于簇中心区域的某个样本代表整个簇,KMeans算法示例如图4-3所示。

簇不再发生变化或准则函数收敛。平方误差准则,P是空间中的点,mi是簇Ci的平均值:

图4-3 KMeans算法示例

由图4-3可以看出,KMeans的基本算法是很容易理解的,算法本身也简单,运行较快,所以,KMeans可用于非常大型的数据集。但是,KMeans也有一些缺点:

(1)对初始值敏感。KMeans可能由于初始值选择的不同,导致最终的结果不同。scikit-learn里面KMeans算法的参数中有个“init”参数,将其设置成“init=KMeans++”,可以在初始化均值向量的时候让它们之间尽量分开。

(2)对特殊分布的数据集不能够得出合理的结果。

2.KMeans算法示例

Kmeans算法示例数据如表4-9所示。

表4-9 KMeans算法示例数据

根据所给的数据通过对其实施KMeans(设n=8,k==2),其主要执行以下步骤:

第一次迭代:假定随机选择的两个对象,如将序号1和序号3当作初始点,分别找到离两点最近的对象,并产生两个簇{1,2}和{3,4,5,6,7,8}。

对于产生的簇分别计算平均值,得到平均值点。

对于{1,2},平均值点为(1.5,1);

对于{3,4,5,6,7,8},平均值点为(3.5,3)。(www.chuimin.cn)

第二次迭代:通过平均值调整对象所在的簇,重新聚类,即将所有点按离平均值点(1.5,1)(3.5,3)最近的原则重新分配。得到两个新的簇:{1,2,3,4}和{5,6,7,8}。重新计算簇平均值点,得到新的平均值点为(1.5,1.5)和(4.5,3.5)。

第三次迭代:将所有点按离平均值点(1.5,1.5)和(4.5,3.5)最近的原则重新分配,调整对象,簇仍然为{1,2,3,4}和{5,6,7,8},发现没有出现重新分配,而且准则函数收敛,程序结束。

KMeans算法迭代过程如图4-4所示。

图4-4 KMeans算法迭代过程

假设对于相同的样本数据,若随机选择的两个初始点为序号4和7。

问题1:结果与前面会一样吗?

问题2:有何结论?

KMeans算法的评价准则:误差平方和准则。

误差平方和达到最优(小)时,可以使各聚类的类内尽可能紧凑,而使各聚类之间尽可能分开。

对于同一个数据集,由于KMeans算法对初始选取的聚类中心敏感,因此可用该准则评价聚类结果的优劣。

通常,对于任意一个数据集,KMeans算法无法达到全局最优,只能达到局部最优。

3.KMeans算法优缺点

优点:可扩展性较好,算法复杂度为0(nkt)。其中:n为样本个数,k是簇的个数,t是迭代次数。

缺点:簇数目k需要事先给定,但非常难以选定;初始聚类中心的选择对聚类结果有较大的影响;不适合于发现非球状簇;对噪声和离群点数据敏感。

图4-5 KMeans算法初始聚类中心的选择

4.KMeans方法的变种

有许多KMeans算法的变种,区别在于初始k个平均值的选择、相异度的计算、计算聚类平均值的策略。例如处理分类数据,k-众数方法,用众数代替簇的平均值;采用新的相异度度量;采用基于频率的方法更新簇众数;混合处理分类和数值数据:k-原型方法(k-prototype);将k-均值和k-众数方法综合起来。K-Medoids:用中心点(位于簇最中心位置的对象)而不是簇中对象的平均值作为参考点。