关于《k-means算法在流式细胞仪中细胞分类的应用》的学习笔记总结

k-means算法在流式细胞仪中细胞分类的应用之学习总结

关键字:流式细胞仪,T淋巴细胞,k-means聚类,数据挖掘应用php

1、课题简介html

随着信息技术和计算机技术的迅猛发展,人们面临着愈来愈多的文本、图像、视频以及音频数据,各行各业的信息系统数年来收集了海量数据,并且这些数据还在以指数级增加着。这给咱们带来方便的同时,也给我获取有效信息加大了难度。过多无用的信息必然会产生信息距离和有用信息的丢失[1]。为帮助用户从这些大量数据中分析出其间所蕴涵的有价值的知识,数据挖掘(Data MiningDM)技术应运而生[2]。它能开采出潜在的模式,找出最有价值的信息,指导商业行为,生产控制,或辅助科学研究[3]。数据挖掘技术出现于20世纪80年代后期,在90年代发展迅速,其理论与应用研究已成为国内外的研究热点[4-5]与此同时,聚类做为数据挖掘的主要方法之一,也愈来愈引发人们的关注。算法

迄今为止,聚类尚未一个学术界公认的定义。事实上,聚类是一个无监督的分类,它没有任何先验知识可用。没有任何一种聚类技术能够广泛适用于揭示各类多维数据集所呈现出来的多种多样的结构[6]聚类是一个将数据集划分为若干组或簇的过程,使得同一类的数据对象之间的类似度较高,而不一样类的数据对象之间的类似度较低。聚类问题的关键是把类似的事物汇集在一块儿,适合探讨样本间的内部关系[3]。1967年,MacQueen[7]首次提出了K均值聚类算法(K-means算法)。该方法虽然不能用于类别属性的数据,但对于数值属性的数据,它能很好地体现聚类在几何和统计学上的意义。在对大型数据集聚类时,K-means算法也比层次聚类算法快得多。迄今为止,不少聚类任务都选择该经典算法或其变种。shell

流式细胞技术(FCM)是70年代发展起来得一种快速对单细胞定量分析的新技术。它借鉴了荧光显微镜技术,同时利用了荧光染料、激光技术、单抗技术以及计算机技术的发展,将荧光显微镜的激发光源改成激光,使之具备更好的单色性与激发效率,于是大大提升了检测灵敏度,同时将固定的标本台改成流动的单细胞悬液,用计算机进行数据处理,于是大大提升了检测速度与统计精确性,并且能从同一个细胞中能够同时测得多种参数[8]。流式细胞仪是采用流式细胞术的典型仪器,它能迅速的对单个细胞及其群体的化学物质的含量与种类做出分析,对含指定化学物质的细胞进行分离提纯,在一些有关实验室和医院应用普遍[9]。近年来FCM不只在生物医学与临床检验学中获得了长足发展,并且拓展到生物学的各个领域,微生物学中涉及医学、发酵和环保等的诸多领域,并且它仍是细胞学研究中必不可少的工具之一。编程

在流式细胞仪中使用细胞标志示踪物质为荧光标记物鉴定和分离细胞群和亚群是其很是重要的一个应用,具备深远的意义。例如在免疫学,淋巴细胞是正常机体免疫系统功能最重要的一大细胞群,在免疫应答过程当中,未梢血淋巴细胞发育成为功能不一样的亚群。各亚群的数量和功能产生异常时,就能致使机体免疫紊乱并产生病理变化[10]。淋巴细胞亚群分析已成为检测细胞免疫和体液免疫功能的重要指标,而FCM能够同时检测一种或几种淋巴细胞膜表面分子(分化群抗原),将不一样的淋巴细胞亚群数量的测定来监控病人的免疫状态,指导治疗[11]。对于细胞亚群百分含量的分析,咱们通常用单参数直方图、二维散点图、密度图、等高图和三维图来分析结果。而用于显示数据的几种形式的散点图,还可经过设门的方法区分指定的细胞亚群[8-9]。流式细胞术对淋巴细胞亚群的这种鉴定分析已成为医院中最快速、准确和可靠常规检测技术。框架

如今数据聚类分析已经成为一个很是活跃的研究课题,可是用聚类的方法对流式细胞仪中检测到的细胞分类数据进行分析还不多有人研究。本课题就是以标记荧光团的标准微球(T淋巴细胞)为实验对象,由流式细胞仪获得各细胞的荧光光谱,而后基于此荧光光谱利用MATLAB编程分析,用K-means聚类算法实现不一样特性细胞的准确分类。机器学习

2、研究方法ide

研究K-means算法在流式细胞仪中细胞分类的应用,关键是用该算法挖掘出荧光光谱中的有效信息并创建起荧光光谱与细胞分类的正确映射关系。本课题将基于采用FCM对荧光标记的T细胞进行检测而获得的CD3-8-45-4分子的荧光光谱数据,对该数据实施预处理后以K-means算法构建聚类模型,并用MATLAB编程仿真实现细胞亚群分类。而后依据仿真结果是否聚类良好,不断改进该算法,直到取得比较满意的结果。下面给出课题中涉及到流式细胞术、T淋巴细胞亚群和K-means算法等的原理与方法等信息。函数

流式细胞术(FCM工具

FCM是一种快速检测分析单个粒子多物理特性的高技术,一般指细胞经过激光束时在液流中的特性,即粒子的的大小,密度,或是内部结构,以及相对的荧光强度。经过光电系统记录细胞的散射光信号和荧光信号能够得知细胞特性。FCM分析中前向散射光反映颗粒的大小;侧向散射光反映颗粒内部结构复杂程度、表面的光滑程度;荧光反映颗粒被染上荧光部分数量的多少,根据其标记的抗原分子不一样,即反映了不一样抗原分子的表达状况[12]。本课题主要研究荧光标记的T淋巴细胞的荧光光谱来实现细胞亚群分类。

1)流式细胞仪结构与工做流程

在流式细胞仪中,细胞被传送到液流中的激光照射区。下图1为流式细胞仪结构示意图。任何存在于悬液中的直径为0.2-150微米的粒子或细胞都适用于流式分析。在实际工做中,用实体组织进行流式细胞分析每每是不可能的,分析以前必须对其进行分解。被液滴包绕的粒子称为细胞液柱,当粒子通过激光照射区时,经过激光激发产生散射光。含有荧光的粒子就会表现出其荧光特性。散射光和荧光由光路系统(相应的透镜,滤片和探测器)收集。分光器和滤光片引导散射光和荧光至相应的探测器,把光信号转换为电信号。单个粒子经过其表现出的光散射和荧光属性,经过列表模式(List mode)完成数据采集,并对样本中的细胞亚群进行分析[13]。图2为其工做的基本流程。

 

图1 流式细胞仪结构示意图

 

图2 流式细胞仪基本流程

2)荧光

荧光物质吸取符合其波长范围的光能量,内部电子受激上升到高能级,而后受激电子迅速衰落回基态,释放过剩能量成为光子,这种能量转换生成的光称为荧光。可以激发荧光物质的波长范围称为激发光谱。荧光物质的发射波长范围叫作发射光谱。光源的谱线愈接近被激发物质的激发光谱的峰值,所产生的荧光信号愈强。并且由于更多的能量消耗在吸取转换而不是荧光转换中,因此发射光波长要高于激发光波长。通常的流式细胞仪只装有一个激光光源(488nm),可测出三个荧光强度(FL),即FL1FL2FL3,大型的流式细胞仪装有两个或三个激光光源(488nm633nm325nm),可测出6FL。目前的流式细胞仪大多采用488nm氩离子激光器,由于488nm的激光器可以激发一种以上的荧光。每种荧光染料会产生特定波长的荧光和颜色,经过波长选择通透性滤片,可将不一样波长的散射光和荧光信号区分开,送入不一样的光电倍增管[14](见图1)。本课题FCM实验采用的就是488nm的氩离子激光器,检测到的三个通道分别是FL1:53610nm,FL2:59010nm,FL3:62010nm。

在对单克隆抗体进行检测时,抗体上标记荧光,而后抗体与被测抗原特异结合,结合后的抗原抗体复合物经过流式细胞仪时就能检测到特异荧光。选择不一样的单抗及染料就可同时测定一个细胞上的多个不一样特征。当细胞标记了多色荧光,被激发光激发后,获得的荧光信号可根据须要进行组合分析。至于荧光染料的选择,咱们能够

① 根据流式细胞仪能检测的通道数来选,对每一个通道只选择一种荧光染料,各个通道之间的荧光染料能够随意搭配。好比FACSCalibur经常使用四色搭配:FITCPEPerCPAPC

② 根据抗原表达强弱合理来选,高表达的抗原可用荧光不太强的染料,低表达的抗原则用荧光更强的染料。如CD4-FITCCD25-APCFoxp3-PE

③ 根据荧光波谱间光谱重叠部分的大小来选,对重叠较小的荧光染料进行组合,同时须要正确的调节补偿。

3)T淋巴细胞

人体内的淋巴细胞并非功能单一的群体,但其在光学显微镜下的形态基本上是同样的,都是以至密的核及少许细胞质组成的小而圆的细胞为特征,所以要对其进一步的分类观察就不能采用形态学的方法,而是要对其表面标志的检测。包括对T细胞、B细胞和NK细胞及其有关亚群的检测,实质上是对其相应的表面标志进行检测,据此能够创建起相应的细胞计数方法,以判断机体的免疫水平[15]。经常使用于鉴定和检测淋巴细胞表面标志的是分化抗原簇(cluster of defferentiationCD)。CD抗原的鉴定和检测依赖与其相应的单克隆抗体,国际制定了细胞分化抗原的CD统一编号,统一把识别同一抗原的两种以上的单抗划分为同一抗体组。T淋巴细胞表达CD3B细胞表达CD19CD20NK细胞表达CD56CD16,不表达CD3。利用各类单克隆抗体与淋巴细胞表面抗原结合,再配多色荧光染料,便可以把淋巴细胞区分为各亚群。

T淋巴细胞是参与机体细胞免疫并起主导调节做用的一组免疫细胞。外周血中成熟的T淋巴细胞主要属于TCRαβ+T细胞,全部的T细胞均有共同的标志性抗原,通常认为是CD3分子,不一样功能的T细胞亚群又有各自的标志性抗原。现有多种分类方法将T细胞分红不一样的亚群:按CD4/CD8表达不一样可分为CD4+和CD8+两个亚群;按TCRT细胞抗原受体)分子不一样可分为TCRαβ和TCRγδT细胞;按免疫功能不一样可分为辅助性和抑制性T细胞;按对抗原的应答不一样可分为初始T细胞、抗原活化过的T细胞、记忆性T细胞[16]。文献[15]中则给出,根据T细胞的免疫效应和表面CD分子表达,至少能够将T细胞分为:CD3+CD4+CD8-辅助性T细胞(help T cellTh)、CD3+CD4-CD8+细胞毒性T细胞(cytotoxic T cellTcCTL)和CD4+CD25+调节性T细胞(regulartory T cellTrTreg)等几组亚群。

T淋巴细胞及亚群的检测结果能够解释一些疾病发病机理,对患者的免疫功能和预后作出判断以及指导治疗。这些疾病主要包括:①病毒感染性疾病;②肿瘤性疾病;③自身免疫性疾病;④器官移植患者;⑤其余免疫缺陷或异常的患者。下面表1列出了T淋巴细胞亚群检测中一些指标的正常参考值及临床意义。本课题中主要检测CD3CD8CD45CD4的荧光强度以对T淋巴细胞进行亚群分类。

表1 T淋巴细胞部分CD抗原的参考值及临床意义

指标

正常范围

临床意义

CD3

60~80%

CD3降低常见于:①恶性肿瘤;自身免疫性疾病,如系统性红斑狼疮、类风湿关节炎等;先天性免疫缺陷病,艾滋病;接受放疗、化疗或者使用肾上腺皮质激素等免疫抑制剂。

CD3上升则见于甲亢、淋巴细胞性甲状腺炎、慢性活动性肝炎、重症肌无力和器官移植排斥反应等。

CD4

35~55%

CD4淋巴细胞减小常见于恶性肿瘤、遗传性免疫缺陷病、艾滋病、应用免疫抑制剂的患者。

CD8

20~30%

CD8淋巴细胞增多常见于自身免疫病,如SLE、慢性活动性肝炎、肿瘤及病毒感染等

CD4/CD8

1.4~2.0

CD4/CD8﹤1.4常见于:①免疫缺陷病,如艾滋病的比值常小于0.5恶性肿瘤;再生障碍性贫血,某些白血病;某些病毒感染,急性巨细胞病毒感染;其它,SLE肾病、传染性单核细胞增多症、骨髓移植恢复期等。

CD4/CD8﹥2.0常见于自身免疫性疾病,如系统性红斑狼疮、类风湿关节炎、I型糖尿病等。此外还可用于监测器官移植的排斥反应,若移植后CD4/CD8较移植前明显增长,则可能发生排异反应。

CD56

 

某些病毒感染早期、长期使用干扰素及其干扰的诱导物,骨髓移植后、习惯性流产等可增高CD56。

恶性肿瘤特别是中晚期伴转移的肿瘤,免疫缺陷病及使用免疫抑制剂等可下降CD56。

2 K-means算法

K-means算法(K均值聚类算法)是一种动态聚类方法,由James MacQueen1976年提出,但算法自己思想就已经由Stuart Lloyd1957年给出。它是一种获得最普遍使用的基于划分的聚类算法,把n个对象分为k个簇(cluster),以使簇内具备较高的类似度,类似度的计算根据一个簇中对象的平均值来进行[17]。它与处理混合正态分布的最大指望算法(Expectation-maximization algorithmEM)很类似,由于他们都试图找到数据中天然聚类的中心。但前者倾向于寻找空间范围容易比较的簇,然后者则容许该簇拥有各类形态。

聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签Y的,也就是说样例中已经给出了分类[18]。在监督学习中,标签信息协助机器学习同类样本之间存在的共性,在预测时只需断定给定样本与哪一个类别的训练样本最类似便可。而聚类的样本中却没有给定Y,只有特征X。在非监督学习中,再也不有标签信息的指导,遇到一维或二维数据的划分问题,人用肉眼就很容易完成,可机器就傻眼了。不过对于高维多组样本数据,用机器学习划分显然更现实。设计算法让机器来完成将全部样本分红若干个簇,而且每一个簇中的样本具备更高的类似度,这就是聚类分析算法的终极目标。

K-means算法主要解决的也是这个问题。以下图3所示,咱们能够看到,在图的左边有一些点,咱们用肉眼能够看出来有四个点群,可是咱们怎么经过计算机程序找出这几个点群来呢?好比假设宇宙中的星星能够表示成三维空间中的点集,聚类的目的是找到每一个样本X潜在的类别Y,并将同类别Y的样本X放在一块儿。好比上面的星星,聚类后结果是一个个星团,星团里面的点相互距离比较近,星团间的星星距离就比较远了。

 

3 K-means要解决的问题

 

1)基本步骤

K-means方法是预先给定一系列N维向量,和一个聚类数目的变量k而后将这些向量聚为k类。其基本步骤[19]是

(1)任意选择k对象做为初始的簇中心;

(2)repeat

(3)      根据与每一个中心的距离,将每一个对象赋给“最近”的簇;

(4)      从新计算每一个簇的平均值;

(5)until  再也不发生变化

算法很简单,但不少复杂算法的实际效果或许都不如它,并且它的局部性较好,容易并行化,对大规模数据集颇有意义。算法的时间复杂度为O(tkmn),空间复杂度为O((m+k)n),其中,t为迭代次数,k为簇的数目,m为记录数,n为维数

 

图4 K-means基本步骤示意图

该算法的基本步骤能够用上面的图4来表示[20]。从上图能够看到,ABCDE是图中的五个点,而灰色的点是咱们的种子点,也就是咱们要用来找点群的初始中心点。这里有两个种子点,因此k取为2。其算法能够表述为

(1)随机在图中取k(这里k=2)个种子点。

(2)而后对图中的全部点求到这K个种子点的距离,假如点Pi离种子点Si最近,那么Pi属于Si点群。(上图中,咱们能够看到AB属于上面的种子点,CDE属于下面中部的种子点。)

(3)接下来,咱们要移动种子点到属于他的“点群”的中心。(见图上的第三步。)

(4)而后重复第(2)和第(3)步,直到种子点没有移动(咱们能够看到图中的第四步上面的种子点聚合了ABC,下面的种子点聚合了DE。)

3)具体描述[21]

k-means聚类问题中,给定m个训练样本划分红k个类簇(),没有了类别标签Y其准则函数形式以下

 

其中c为样本的簇分配状况,μ为簇的质心,为样本对应的簇的中心。这里准则函数计算的是全部样本点与其对应的簇中心点的距离平方和,使准则函数最小的簇划分则为最优的聚类。

这里的准则函数不是凸函数,找到全局最优解是不可能的,可是能保证它收敛到局部最优解。首先,更新样本所属的簇时,老是选择与其最近的簇中心点,导致在每次迭代过程都是非递增的,那么在准则函数J也是非递增的。其次,簇中心点被更新为簇中全部样本的均值时也能保证J是非递增的,能够经过准则函数J对第j个簇中心点μj求偏导(j≤k)并令其为0,即,获得簇中心点更新规则:簇的最小化准则函数的中心点是簇中各点的均值。

对于给定训练样本,该算法能够具体描述以下(采用欧氏距离)

(1)随机从X中选取k个聚类中心点为

(2)重复下面过程直至收敛

{

对于每一个样本,计算其应该属于的簇

 

对于每一个簇,从新计算其中心

 

}

(3)返回μ,c

k是咱们事先给定聚类的簇数,表明k个簇中与样本距离最近的那个类,表明咱们对属于同一个样本中心点的猜想。算法的外循环嵌套两个内循环,外循环完成准则函数的计算使收敛,内层循环完成两个工做:一是将每一个样本划分到与其最近的类簇中;二是将属于同一个类簇的样本均值做为新的类簇中心。

5)注意问题[22]

(1)k值的选取

K-means算法中k是事先给定的,这个k值的选定是很是难以估计的。不少时候,事先并不知道给定的数据集应该分红多少个类别才最合适。这也是K-means算法的一个不足。常见的有的算法有

① 与层次聚类结合的方法[19]首先采用层次凝聚算法决定结果粗的数目,并找到一个初始聚类,而后用迭代重定位来改进该聚类。

② 稳定性方法[23]对一个数据集进行2次重采样产生2个数据子集,再用相同的聚类算法对2个数据子集进行聚类,产生2个具备k个聚类的聚类结果,计算2个聚类结果的类似度的分布状况。2个聚类结果具备高的类似度说明k个聚类反映了稳定的聚类结构,其类似度能够用来估计聚类个数。采用此方法试探多个k,找到合适的k值。

③ 系统演化方法[23]将一个数据集视为伪热力学系统,当数据集被划分为k个聚类时称系统处于状态k。系统由初始状态k=1出发,通过分裂过程和合并过程,系统将演化到它的稳定平衡状态k0,其所对应的聚类结构决定了最优类数k0。系统演化方法能提供关于全部聚类之间的相对边界距离或可分程度,它适用于明显分离的聚类结构和轻微重叠的聚类结构。

④ 基于Canopy的初始划分方法[24]Canopy算法经常用来对初始数据作一个粗略的划分,它的结果能够为以后的聚类提供帮助,好比对K-Means来讲提供k值,另外还能很好的处理孤立点。基于Canopy的聚类算法将聚类过程分为两个阶段,第一阶段选择简单、计算代价较低的方法计算对象类似性,将类似的对象放在一个子集中,这个子集被叫作Canopy。经过一系列计算获得的若干Canopy之间能够是重叠的,但不会存在某个对象不属于任何Canopy的状况,能够把这一阶段看作数据预处理。第二阶段在各个Canopy内使用传统的聚类方法(K-means),不属于同一Canopy的对象之间不进行类似性计算[25]。划分后结果图见下图5所示。

还有的经过类的自动合并和分裂,获得较为合理的类型数目k,例如ISODATA算法[26];根据方差分析理论,应用混合F统计量来肯定最佳分类数,并应用了模糊划分熵来验证最佳分类数的正确性[27]。还有使用一种结合全协方差矩阵的RPCL算法(它的思想是:对每一个输入而言,不只竞争获胜单元的权值被修正以适应输入值,并且对次胜单元采用惩罚的方法使之远离输入值),并逐步删除那些只包含少许训练数据的类[28-30]

 

图5 Canopy聚类划分结果图

(2)初始质心的选取

K-means算法中,首先须要根据初始聚类中心来肯定一个初始划分,而后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的很差,可能没法获得有效的聚类结果,这也成为K-means算法的一个主要问题。基本方法是随机的选取初始质心,可是这样簇的质量经常不好。对于该问题的解决,如下列出一些常见方法[31]

① 屡次运行,每次使用一组不一样的随机初始质心,而后选取具备最小SSE(偏差的平方和,即前面的准则函数)的簇集。这种策略简单,可是效果可能很差,这取决于数据集和寻找的簇的个数。

② 取一个样本,并使用层次聚类技术对它聚类。从层次聚类中提取k个簇,并用这些簇的质心做为初始质心。该方法一般颇有效,但仅对下列状况有效:(1)样本相对较小,例如数百到数千(层次聚类开销较大);(2k相对于样本大小较小。

③ 随机地选择第一个点,或取全部点的质心做为第一个点。而后,对于每一个后继初始质心,选择离已经选取过的初始质心最远的点。使用这种方法,确保了选择的初始质心不只是随机的,并且是散开的。可是,这种方法可能选中离群点。此外,求离当前初始质心集最远的点开销也很是大。为了克服这个问题,一般该方法用于点样本。因为离群点不多(多了就不是离群点了),它们多半不会在随机样本中出现。计算量也大幅减小。

④ 二分K均值是基本K均值算法的直接扩充,它基于一种简单想法:为了获得k个簇,将全部点的集合分裂成两个簇,从这些簇中选取一个继续分裂,如此下去,直到产生k个簇。带分裂的簇有许多不一样的选择方法,能够选择最大的簇,选择具备最大SSE的簇,或者使用一个基于大小和SSE的标准进行选择。咱们一般使用结果簇的质心做为基本K均值的初始质心,对结果簇逐步求精,由于最终的簇集并不表明使SSE局部最小的簇。

还有的采用前面提到的基于Canopy的聚类算法,划分后相似上图5所示;采用遗传算法(GA)进行初始化,之内部聚类准则做为评价指标[32-33];以及提出最近邻K均值、极远邻K均值和自适应K均值3种优化算法[34]和基于个体轮廓系数自适应地选取优秀样本的方法[35]优化初始中心的算法。K-Means++算法[36]也能很好地初始化质心。

(3)距离的度量

为了将点归到最近的簇里,咱们须要邻近度(proximity)来量化所考虑的数据的“最近”概念[31]。而相异度(dissimilarity)或类似度(similarity)就是咱们用来描述它的两个量,咱们首先要考虑如何定量计算两个可比较元素间的邻近度,咱们必须在数学上对它们进行定量定义。

设,其中XY是两个元素项,各自具备n个可度量特征属性,那么XY相异度(类似度)定义为:,其中R为实数域[37]。也就是说相异度(类似度)是两个元素对实数域的一个映射,所映射的实数定量表示两个元素的相异度(类似度),咱们一般采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚相当系到分类的正确与否。聚类分析主要针对的数据类型包括区间标度变量、二元变量、标称变量、序数型变量、比例标度型变量,以及由这些数据类型组合成的复合型变量。针对这些数据类型的距离度量方法也各类各样,但定义的距离函数必定要知足必定条件[19]

下面给出标量的相异度的经常使用计算方法[38-40]

① 欧几里得距离(Euclidean Distance)

 

欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。其意义就是两个元素在欧氏空间中的集合距离,由于其直观易懂且可解释性强,被普遍用于标识两个标量元素的相异度。

② 曼哈顿距离(Manhattan Distance

 

从名字就能够猜出这种距离的计算方法了。想象你在曼哈顿要从一个十字路口开车到另一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而由于曼哈顿距离名称的来源,曼哈顿距离也称为城市街区距离(City Block distance)

③ 闵可夫斯基距离(Minkowski Distance)

 

闵氏距离不是一种距离,而是一组距离的定义。λ能够随意取值,能够是负数,也能够是正数,或是无穷大。当λ取1时,它就是曼哈顿距离;当λ取2时,它就是欧几里得距离;当λ取无穷时,它就是切比雪夫距离。这三个公式的求中心点有一些不同的地方,咱们看下图(第一幅图中λ在0~1之间)

 

图6基于三种距离公式的逼近中心的方式示意图

上面这几个图的大意是他们是怎么逼近中心的,第一个图以星形的方式,第二个图以同心圆的方式,第三个图以菱形的方式[20]。另外还有马氏距离(Mahalanobis Distance)、兰氏距离(Canberra Distance)等一些距离的定义,这里再也不详谈。

而对于向量,一种流行的作法是用两个向量的余弦度量,即余弦类似度(cosine similarity),其度量公式为[31]

 

其中与分别表示XY的欧几里得范数,夹角余弦取值范围为[-1,1]。夹角余弦越大,表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时,夹角余弦取最大值1。当两个向量的方向彻底相反时,夹角余弦取最小值-1。另外还有Jaccard系数、广义Jaccard系数和相关性等类似性度量方法。

(4)距离的标准化

前面算法的具体描述中使用的就是欧几里得距离,这样计算标量相异度的方式有一点问题,就是取值范围大的属性对距离的影响高于取值范围小的属性。若是样本有多个属性,并且属性不在同一个定义域内,则有必要对样本数据进行预处理,防止某些值很大的属性在计算距离时占主导优点,最经常使用的就是标准化处理(standardization)。

一种方法是使得每一个属性均值为0,方差为1,即为自标准化[41]。假设样本集X的均值(mean)m,标准差(standard deviation)s,那么X的“标准化变量”表示为

 

通过简单的推导就能够获得间的标准化欧氏距离(Standardized Euclidean distance)的公式

 

若是将方差的倒数当作是一个权重,这个公式能够当作是一种加权欧氏距离(Weighted Euclidean distance)

另一个经常使用的解决方法就是将各个属性值按比例映射到相同的取值区间,这样是为了平衡各个属性对距离的影响。通常都将数据都映射到[0,1]空间,而后再计算距离[39]。对于样本集X,最大值和最小值分别是Xmax和Xmin,那么映射公式为

 

前面两种标准化方法都容易受到孤立点的影响。特别是前者的均值和标准差受的影响很大,后者只有孤立点是最大最小值时才影响极大。一般对于自标准化,咱们用中位数(即中间值)替代均值,用绝对标准差替代标准差,以减少影响[31]

传统的聚类算法,如K-meansFCM等,都假设样本的特征属性对每一个类别是同等重要的。然而,事实上,不一样的属性对于不一样的类别的贡献却极可能是不一样的。文献[31]介绍了一种经过对每一个属性以贡献加权的距离度量方法,而文献[41]也给出了聚类前特征选择或梯度降低法来区别各特征属性的权重的方法,并详细说明了特征空间属性加权模糊核聚类算法。

(5)质心的计算

距离度量无论是采用欧式距离仍是采用余弦类似度,基本K-means算法中簇的质心都是取其均值,即向量各维取平均便可,然而这样却容易使该算受到孤立点的影响。当聚类的样本点中有孤立点时,在计算类簇质点的过程当中会受到干扰,形成所得质心点和实际质心点位置误差过大,从而使类簇发生“畸变”。

为了解决该问题,K-medoids算法(K中心点算法)提出了新的质点选取方式,用类中位置最中心的对象(中心点)来代替对象的平均值做为参考点,但它还是基于最小化全部对象与参照点之间的相异度之和的原则来执行的[38]。在K中心点算法中,每次迭代后的质点都是从聚类的样本点中选取,而选取的标准就是当该样本点成为新的质点后能提升类簇的聚类质量,使得类簇更紧凑。该算法使用绝对偏差标准来定义一个类簇的紧凑程度。若是某样本点成为质点后,绝对偏差能小于原质点所形成的绝对偏差,那么K中心点算法认为该样本点是能够取代原质点的,在一次迭代重计算类簇质点的时候,咱们选择绝对偏差最小的那个样本点成为新的质点。所以,与K-means算法相比,当存在噪声和孤立点数据时,它能更健壮而不容易受极端数据的影响。但在时间复杂度上,该算法约为О(n2),执行代价比后者要高得多[19]

(6)算法的终止条件

算法的终止条件能够有三种:

① 准则函数值的变化小于一个阈值;

② 类簇中心在必定范围内再也不变化;

③ 达到指定的迭代次数T

对于准则函数而言,使用不一样的距离度量,它的形式和最终目的不相同。当采用欧式距离时,目标函数通常为最小化对象到其簇质心的距离的平方和,以下式

 

当采用余弦类似度时,目标函数通常为最大化对象到其簇质心的余弦类似度和,以下式

 

(7)空簇的处理

若是全部的点在指派步骤都未分配到某个簇,就会获得空簇。若是这种状况发生,则须要某种策略来选择一个替补质心,不然的话,平方偏差将会偏大。一种方法是选择一个距离当前任何质心最远的点。这将消除当前对总平方偏差影响最大的点。另外一种方法是从具备最大SSE的簇中选择一个替补的质心。这将分裂簇并下降聚类的总SSE。若是有多个空簇,则该过程重复屡次。另外,编程实现时,要注意空簇可能致使的程序bug[31]。

(8)孤立点的识别

使用平方偏差标准时,孤立点(outlier,也称离群点)可能过分影响所发现的簇。具体地说,当存在孤立点时,结果簇的质心(原型)可能不如没有孤立点时那样有表明性,而且SSE也比较高。正由于如此,提早发现孤立点并删除它们是有用的[31]。然而,应当意识到有一些聚类应用,不能删除孤立点:当聚类用来压缩数据时,必须对每一个点聚类;在某些状况下(如财经分析),明显的孤立点(如商业诈骗,偷税漏税等)可能正是最令感兴趣的点。一个明显的问题是如何识别孤立点。基于计算机的孤立点的探测方法,能够大体分为三类:统计学方法,基于距离的方法和基于偏离的方法[193136]。常见的k-mediods算法就能在必定程度上消除掉孤立点和噪声的影响。

(9)收敛的时间复杂度

K-means算法框架能够看出,该算法须要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,所以当数据量很是大时,算法的时间开销是很是大的。因此须要对算法的时间复杂度进行分析、改进,提升算法应用范围。有的提出用三角不等式[42]或树形结构[1743]等对K-means进行加速的算法,以减小没必要要的距离计算。还有的从该算法的时间复杂度进行分析考虑,经过必定的类似性准则来去掉聚类中心的侯选集。另外,若是咱们在初始化类簇中心的时候就遵循“使同一个类簇中的数据尽量类似,而不一样类簇间的样本彼此离得越远越好”的原则,从样本分布的最边缘开始选取类簇中心的,以免类簇中心被初始化到数据较为密集的地方,这样就大大下降算法收敛须要的迭代次数,也可减少时间复杂度[21]。

(10)指派的问题

K-means算法的一大特色是每一个样本只能被硬性分配(hard assignment)到一个类或簇中,这种方法不必定是最合理的,但聚类自己就是一个具备不肯定性的问题。如图7a所示,实际状况中的类或簇极可能存在重叠的状况,那么重叠的部分的归属就颇具争议了;或者给定一个新样本集,如图7b),即存在其中的样本点到某些簇中心的距离相等或接近的状况,咱们又该怎么办?若是咱们采用几率的方法[31],像高斯混合模型(Gauss Mixture ModelGMM)[44-46]那样给出样本属于每一个类簇的几率值,或采用模糊理论,像FCM算法[32-3341]能从必定程度上反映聚类的不肯定性就更合理了。上面图5Canopy聚类划分也能解决这个问题。

                                                                                     

图7 (a)簇重叠;(b)点到某些簇的距离相等

(11)数据的属性

k-means算法是在数据挖掘领域中广泛应用的聚类算法,它只能处理数值型数据,而不能处理分类属性型数据[18],例如表示人的属性有:姓名、性别、年龄、家庭住址等属性。而k-modes算法就可以处理分类属性型数据,它是对k-means算法的扩展。k-modes算法采用模式来代替类的平均值,采用新的相异性度量方法来处理分类性质的数据,采用基于频率的方法来修改聚类的模式[31]k-modes算法能直接处理分类型属性并产生聚类模型,并且对于大型数据集仍有很高的效率[47-48]。综合两种方法就能够处理有数值类型和分类类型属性的数据,即k-prototypes方法[49]

 本文中公式相关文献或连接中都很容易找到,因为输入比较麻烦,在此省略。略表歉意!

参考文献

1.王立伟.数据挖掘研究现状综述.图书与情报,2008(5)41~46

2.王慧中,彭安群.数据挖掘研究现状及发展趋势.工矿自动化,2011(2)29~32

3.王桂芹,黄道.数据挖掘技术综述.电脑应用技术,2007(69)9~14

4.李菁菁,邵培基,黄亦潇.数据挖掘在中国的现状和发展研究.管理工程学报,2004(3)10~15

5.Tipawan SilwattananusarnKulthidaTuamsuk.Data Mining and Its Applications for Knowledge ManagementA Literature Review from 2007 to 2012.International Journal of Data Mining & Knowledge Management Process2012(9)13~24

6.孙吉贵,刘杰,赵连宇.聚类算法研究.软件学报,2008(1)48~61

7.J. MacQueen.Some methods for classification and analysis of multivariate observations.Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability,1967(1)281~297

8.宋平根,李素文.流式细胞术的原理和应用.北京:北京师范大学出版社,1992

9.M. R. MelamedT. LindmoM. L. MendelsohnFlow Cytometry and SortingNew YorkJohn Wiley and Sons1990

10.曹雪涛.医学免疫学.北京:人民卫生出版社,2013

11.张瑞华,王进,兰文君.流式细胞术及其在生物医学领域中的应用.山东轻工业学院学报,2011(8)20~24

12.张艺.流式细胞仪构成与工做原理.医疗设备信息,2005(8)25~26

13.J. Paul Robinson.Flow Cytometry.Encyclopedia of Biomaterials and Biomedical Engineering2004630~640

14.瑞菲尔·努纳兹.流式细胞术原理与科研应用简明手册.北京:化学工业出版社,2005

15.王兰兰,吴建民.临床免疫学与检验.北京:人民卫生出版社,2007

16.http://en.wikipedia.org/wiki/T_cell

17.http://en.wikipedia.org/wiki/K-means_clustering

18.邵峰晶,于忠清.数据挖掘原理与算法.北京:中国水利水电出版社,2003

19.韩家炜,坎布尔.数据挖掘:概念与技术.北京:机械工业出版社,2001

20.http://coolshell.cn/articles/7779.html

21.http://www.cnblogs.com/jeromeblog/p/3425919.html

22.http://blog.csdn.net/qll125596718/article/details/8243404#

23.王开军,李健,张军英,过立新.聚类分析中类数估计方法的实验比较.计算机工程,2008(5)198~199

24.Andrew McCallumKamal NigamLyle H. Ungar.Efficient Clustering of High-Dimensional Data Sets with Application to Reference Matching.Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining.2000169~178

25.http://www.cnblogs.com/vivounicorn/archive/2011/09/23/2186483.html

26.杨小明,罗云.ISODATA算法的实现与分析.采矿技术,2006(6)66~68

27.孙才志,王敬东,潘俊.模糊聚类分析最佳聚类数的肯定方法研究.模糊系统与数学,2001(3)89~92

28.李昕,郑宇,江芳泽.用改进的RPCL算法提取聚类的最佳数目.上海大学学报,1999(10)409~413

29.谢皝,张平伟,罗晟.基于RPCL的模糊关联规则挖掘.计算机工程,2011(10)44~46

30.魏立梅,谢维信。聚类分析中竞争学习的一种新算法.电子科学学刊,200022(1)13~18

31.Pang-Ning TanMichael SteinbachVipin Kumar.数据挖掘导论.北京:人民邮电出版社,2011

32.吴香庭.基于遗传算法的K-means聚类方法的研究.青岛:山东科技大学,2010

33.张逸清.基于遗传算法的K-MEANS聚类改进研究.重庆:重庆大学,2006

34.王秀芳,王岩.优化K均值随机初始中点的改进算法.化工自动化及仪表,2012(10)1302~1304

35.张靖,段富.优化初始聚类中心的改进k-means算法.计算机工程与设计,2013(5)1691~1694

36.http://en.wikipedia.org/wiki/K-means%2B%2B

37.http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html

38.李雄飞,李军.数据挖掘与知识发现.北京:高等教育出版社,2003

39.http://www.cnblogs.com/heaad/archive/2011/03/08/1977733.html

40.陈燕.数据挖掘技术与应用.北京:清华大学出版社,2011

41.杨杰,姚莉秀.数据挖掘技术及其应用.上海:上海交通大学出版社,2011

42.Charles Elkan.Using the Triangle Inequality to Accelerate k-Means.2003

43.V. RamasubramanianKuldip K. Paliwal.Fast K-Dimensional Tree Algorithms for Nearest Neighbor Search with Application to Vector Quantization Encoding.IEEE Transactions on Signal Processing1992(3)518~531

44.http://en.wikipedia.org/wiki/Mixture_model#Gaussian_mixture_model

45.http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html

46.http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

47.Miguel Á. Carreira-perpiñán,Weiran Wang.The K-Modes Algorithm for Clustering.2013(4)

48.Rishi Syal,Dr V. Vijaya Kumar.Innovative Modified K-Mode Clustering Algorithm.International Journal of Engineering Research and Applications20122(4):390~398

49.Zhexue Huang.Clustering large data sets with mixed numeric and categorical values.In The First Pacific-Asia Conference on Knowledge Discovery and Data Mining1997:21~34

相关文章
相关标签/搜索