聚类算法
1. 概述
聚类分析实现原理 聚类分析原理步骤
聚类分析实现原理 聚类分析原理步骤
聚类分析实现原理 聚类分析原理步骤
K-means聚类算法也称k均值聚类算法,是集简单和经典于一身的基于距离的聚类算法。它采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为类簇是由距离靠近的对象组成的,因此把得到 紧凑且的簇作为最终目标。
2. 算法核心思想
K-means聚类算法是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误平方和局部最小。
3. 算法实现步骤
1、首先确定一个k值,即我们希望将数据集经过聚类得到k个。
2、从数据集中随机选择k个数据点作为质心。
3、对数据集中每一个点,计算其与每一个质心的距离(如欧式距离),离哪个质心近,就划分到那个质心所属的。
4、把所有数据归好后,一共有k个。然后重新计算每个的质心。
5、如果新计算出来的质心和原来的质心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),我们可以认为聚类已经达到期望的结果,算法终止。
6、如果新质心和原质心距离变化很大,需要迭代3~5步骤。
4. 算法步骤图解
上图a表达了初始的数据集,设k=2。在图b中,我们随机选择了两个k类所对应的类别质心,即图中的红色质心和蓝色质心,然后分别求样本中所有点到这两个质心的距离,并标记每个样本的类别为和该样本距离最小的质心的类别,如图c所示,经过计算样本和红色质心和蓝色质心的距离,我们得到了所有样本点的轮迭代后的类别。此时我们对我们当前标记为红色和蓝色的点分别求其新的质心,如图d所示,新的红色质心和蓝色质心的位置已经发生了变动。图e和图f重复了我们在图c和图d的过程,即将所有点的类别标记为距离最近的质心的类别并求新的质心。最终我们得到的两个类别如图f。
K-means术语:
簇:所有数据的点,簇中的对象是相似的。
质心:簇中所有点的中心(计算所有点的中心而来)
5. K-means算法优缺点
优点:
1、原理比较简单,实现也是很容易,收敛速度快。
2、当结果簇是密集的,而簇与簇之间区别明显时, 它的效果较好。
3、主要需要调参的参数仅仅是簇数k。
缺点:
1、K值需要预先给定,很多情况下K值的估计是非常困难的。
2、K-Means算法对初始选取的质心点是敏感的,不同的随机种子点得到的聚类结果完全不同 ,对结果影响很大。
3、对噪音和异常点比较的敏感。用来检测异常值。
4、采用迭代方法,可能只能得到局部的解,而无法得到全局的解。
聚类分析的分析原理是什么。
聚类分析是研究“物以类聚”的一种科学有效的方法。做聚类分析时,出于不同的目的和要求,可以选择不同的统计量和聚类方法。
系统聚类是目前应用最为广泛的一种聚类方法,其基本思想是:先将待聚类的n个样品(或者变量)各自看成一类,共有n类;然后按照实现选定的方法计算每两类之间的聚类统计量,即某种距离(或者相似系数),将关系最为密切的两类合为一类,其余不变,即得到n-1类;再按照前面的计算方法计算新类与其他类之间的距离(或相似系数),再将关系最为密切的两类并为一类,其余不变,即得到n-2类;如此下去,每次重复都减少一类,直到所有的样品(或者变量)都归为一类为止。
聚类热图原理
聚类热图原理是将个体样品或者对象变量按相似程度距离远近划分类别,使得同一类中的元素之间的相似性比其他类的元素的相似性更强。目的在于使类间元素的同质性化和类与类间元素的异质性化。其主要依据是聚到同一个数据集中的样本应该彼此相似,而属于不同组的样本应该足够不相似。
阐述聚类分析的意义
与多元分析的其他方法相比,聚类分析是很粗糙的,理论尚不完善,但由于它成功地应用于心理、经济、、管理、医学、地质、生态、、气象、考古、企业决策等,因此成了多元分析的重要方法,统计包中都有丰富的软件,对数据进行聚类处理。
深入浅出介绍聚类分析
聚类分析是生信分析中常用的工具,在转录组分析中经常用到。聚类分析将表达模式相似的基因聚类在一起,以基因集的形式进行后续分析,今天我给大家介绍其相关原理。
聚类方法有很多,常用的有以下几个:
下图的例子展示的是,异表达基因集的聚类热图。
多是基于R语言heatmap.2函数绘制(gplots程序包),该函数默认使用的聚类方法是计算欧式距离(Euclidean Distance)进行层次聚类(Hierarchical Cluster)。
这个图的是什么意思呢?我们来解释一下。
首先,我们先明确下什么是欧式距离(Euclidean Distance):
欧式距离,也称欧几里得距离,是衡量空间的两个点之间的距离,
(1) 二维平面,两点a(x1,y1),b(x2,y2) 欧式距离的计算公式为:
(2) 三维空间,欧式距离的计算公式为:
(3) n维空间,欧式距离的计算公式为:
那么,体现在基因表达量的矩阵上,则如下:
(1) 首行为样本名;
(2) 首列为基因名;
(3) 数字则为基因在相应样本中的表达量(一般使用标准化后的表达量矩阵)
Gene1与Gene2的欧式距离为:
Gene1与Gene3的欧式距离为:
Gene1与Gene4的欧式距离为:
计算出所有基因两两之间的欧式距离之后,就可以进行聚类啦:
Cluster之间的聚类,则有3种方法:
R语言中hclust函数的默认方法为最长距离法(complete-linkage)。
以上的聚类过程即称之为 层级聚类 。
层级聚类一般伴随着 系统聚类图 ,系统聚类图分支的长短也体现Cluster形成的早晚,分支越短,形成的越早,基因表达模式也越相近。
聚类分析将基因划分为不同的基因,用于反映不同实验条件下样品异表达基因的变化模式。
功能相关的基因在相同条件下通常具有相似的表达模式,例如被共同的转录因子调控的基因,或其产物构成同一个蛋白复合体的基因,或参与相同生物学过程的基因。对这些基因集进行分析往往可以获得比单基因分析更为可靠的结果。