王 玉,韩家新
(西安石油大学计算机学院,西安 710065)
体检报告是指对身体进行检查而生成的数据文档。它是将血液标本与抗凝剂均匀混合,经全自动血液细胞分析仪遵循相关制度进行检验得到的数据[1]。当体检报告中的数据高于或低于参考值时,此数据有助于医生分析病情,同时对患者起到警示作用。血清质谱数据是将血液传入质谱,并在粒子区域对其进行离子化,通过质荷比对进入质谱仪的粒子进行分离,对离子信号进行检测并记录峰强得到的[2]。体检报告与血清质谱数据都是使用血液样本通过不同的分析仪器得到的数据,通过数据挖掘得到质谱数据和体检数据之间的关联性。
关联规则是最常见的数据挖掘任务,可以用来构建推荐体系。通过收集到的用户使用、购买等数据,挖掘出相关性,形成知识,作为推荐的依据在电商广告、新闻推送等相关推荐场景应用。另一种对数据的挖掘,如气象因素分析、事故因素分析等通过过往数据总结规则。质谱数据和体检数据之间的关联意义也逐渐被研究人员看到。用关联规则算法对血清质谱数据和体检数据的属性进行挖掘,分析质谱数据与体检数据之间的对应关系,这对医学血液检测的发展有积极的意义。
血清数据是一组无序的连续性数据,在传统数据分析过程中,对于连续性数据的属性需要进行离散化。在当前数据分析中,关于数据离散化的方法有:聚类、等宽法、等频法。因为等宽法对离群点比较敏感,不均匀地分布数据;等频法可能将相同的数据分到不同的区间;聚类离散化适用于任意属性的数据集,可以灵活控制不同层次的聚类粒度。由于质谱数据高维且各属性维度不同的特点,使用聚类对数据进行离散化。
面对一组数据K={K1,K2,…,Kn},将这组数据分为m组(m<n),这样的过程被称为聚类。当前的主要聚类方法有[3]:
(1)基于距离的聚类:以空间中k个点为中心进行聚类,对最靠近它们的对象归类。该方法的优点是速度快、简单。
(2)层次聚类方法:主要基于二叉树的数据结构,它的优点是不需要预先估计当前数据有多少个类别,但在面对高维数据时速度降低。
(3)基于密度的聚类:具有任意形状簇的噪声鲁棒性[4],然而该方法在面对具有多种密度的簇的情况下,大部分基于密度的流数据聚类方法难以获得满意的聚类结果。
(4)基于谱图的聚类:在规则的数据集中效果比较明显。
(5)基于神经网络的聚类:通常用于识别检测,图像处理等领域,在无监督学习中学习效率比较低[5]。
质谱数据有维度高、不规则的特点,基于此特点,本文选择使用基于距离的改进K-means聚类对连续属性进行离散化。
关联规则算法是从大量数据中发现数据项集之间关联性,分析得出关联规则,对制定决策起到关键性作用。目前关联规则挖掘算法主要有:
(1)层次算法:是一种针对挖掘布尔型数据频繁项集的算法,它是比较经典的关联规则算法。
(2)搜索算法:指在读取数据集的时侯,对该数据集事务中的所有项目集进行整体规划处理。它需要计算出数据集中的所有数据项目集的支持数,候选项目集数量的庞大会导致计算效率明显下降。
(3)数据集划分算法:是将整个数据集分为多个可以存放在内存中进行处理的数据小块。
(4)抽样算法:通过对数据集抽样产生所需的样本数据集,然后针对样本数据集进行数据挖掘,一般适用于对挖掘效率要求较高,而对挖掘准确性要求不太高的关联规则数据挖掘[6]。
根据质谱数据及体检数据的特征分析,选用层次算法。其中的典型代表是Apriori和FP-Growth算法,使用Apriori算法分析血清质谱数据和体检数据关联规则,并且使用FP-Growth算法与Apriori算法对得出的关联规则进行验证。
K-means算法将一组有限数据集划分为多个簇的过程。簇中所有元素的均值为该簇的中心,即质心。随机选取初始质心之后,将每个数据分配到离它们最近的质心,生成n个簇,对于每个簇,重新计算该簇的质心并且将样本点重新分配给各簇,如此迭代,直到质心位置不再发生变化。
传统K-means方法主要采用随机选取初始质心的方式,但是这种方式会导致一个局部最优解的问题,即将一个比较大的簇分裂,同时将两个小的簇进行合并。由于K-means算法具有不稳定性,初始质心选择不同,结果也不同。
改进K-means算法中质心初始值采用等差方式进行选取,其中μi为第i个质心,a为数据中最大值,b为数据中最小值,n为质心个数。
根据公式(1),初始化质心μ={μ1,μ2,…,μk},计算当前对象与μ的距离dis(Xi,μj)。
式(2)中,μj( 1 ≤j≤k)表示第j个质心,Xt( 1 ≤t≤m)表示第t个属性,μjt表示第j个聚类的第t个属性。根据公式(2)可以获得距离矩阵Di s={dis1,dis2,…,disn},其中disi={dXiμ1,dXiμ2,…,dXiμk},依次将每个X分配到min(disi)所在的μ的簇中。簇内样本均值计算公式如下:
在聚类算法中,针对无标签数据集通常采用轮廓系数来评价聚类结果的好坏。由于原始血清质谱数据是没有真实标签的,因此主要通过轮廓系数来选择最优聚类结果。单个样本的轮廓系数公式如下:
每个样本的S值越接近1,代表聚类效果越好;越接近-1,代表聚类效果越差。通过计算每个样本的轮廓系数的均值Sˉ可判定离散化是否符合簇内差异小,簇外差异大的特点,即判定聚类效果好坏。
Apriori算法是通过连接产生候选项及其支持度然后通过剪枝生成频繁项集,它是一种基于二叉树逐层搜索的迭代方法[7]。对于一组可能具有关联性的事务,它所对应的集合表示为A={a1,a2,…,ai,…,an},n为样本数量。Ai中的全部项集表示为ai={b1,b2,…,bi,…,bm},m为每个样本的特征数量,bi为每个样本的每一项。说明原始数据集是一个n*m的数据集。
(1)频繁项集Lk={l1,l2,…,li,…,ln},n为候选项集的个数,li={b1,b2,…,bi,…,bn},k为频繁k项集;
(a)当k!=1时,k为频繁k项集,频繁项集中的每一项li都符合以下公式:
Conf i d ence为最小置信度,置信度代表了一个项集在数据集中出现的频繁程度。在一个样本中bi出现的条件下,则li出现的概率。Num(l1)为项集l1在数据集中出现的次数。
此外,谷祺教授还曾于1992~1993年在《辽宁财会》连续发表了十几篇有关资产评估的学术论文,对资产评估的理论与方法进行了系统论述,并就其中的一些核心问题提出了独到见解,对于完善资产评估学的学科体系做出了积极、有益的贡献。
(b)当k=1时,即为频繁1项集,频繁1项集中的每一项li都满足以下公式:
Frequency为最小频繁度。低于Frequency的项集在整个数据集中出现的次数太少,研究认为它所结合生成的频繁项集不具备普遍性,即对它进行剪枝处理。
(2)候选项集Ck={ }c1,c2,…,ci,…,cn,n为候选项集的个数,ci={ }b1,b2,…,bi,…,bk,k为候选k项集。L1,L2,…,LK-1中的频繁项集两两结合,生成候选项集di={ }b1,b2,…,bi,…,bq,若q=k,则di就是候选k项集ck。
(3)关联规则:利用已经搜集到的频繁项集,挖掘物品或者属性之间存在的内在关系。关联规则发现是指找出置信度大于等于Confident的规则。
实验室共收集到200人的血清样本及其体检数据。
3.1.1 血清质谱数据
每个样本包含十组血清质谱数据。以其中一个编号为#4的血清样本的前两组为例,如表1所示,为该样本的血清质谱数据。
表1 质谱数据样例
每组样本由Mass和Relative Intensity构成。Mass为质荷比(m/z:指离子质量与电荷数的比值);通过观察实验中的数据,发现质荷比数据分布在150~1500之间(这里取前八行展示),数据精度保留了小数点后6位。Relative Intensity为相对丰度,也叫相对强度,在同位素分离理论中常用来表示轻组分的含量,在研究代表质荷比的含量,它的数据精度保留了小数点后9位。
3.1.2 体检数据
每一行代表一个样本数据,编号与血清质谱数据的编号一一对应,每个样本数据包含基本信息样本和血液检测的基本检测项目共43项,即每条数据有43个属性。以前三组的体检数据为例,如表2所示,为该体检数据。
表2 体检数据样例
数据预处理技术是数据分析以及数据挖掘过程中非常重要的一环。数据预处理是指在对数据进行数据挖掘的主要处理工作之前,先对原始数据进行必要的清洗、集成、转换、离散、归约、特征选择和提取等一系列处理工作,达到挖掘算法进行知识获取要求的最低规范和标准[8]。
(1)首先将原始质谱数据进行转置,转换后的数据每列代表一种质荷比,它们的差值为0.1,每一行代表一组数据。
(2)每组质谱数据与体检数据一一对应,并将其合并。
(3)对数据中的缺失值进行处理。
质谱数据和体检数据的离散化在一定程度上决定了最终得出的关联规则。研究使用K-means算法和改进K-means算法对数据进行离散化,实验中选择将数据聚类为三个类簇。
分别得到两个算法的轮廓系数均值,K-means算法的值为0.785,改进K-means算法的Sˉ值为0.739。可知改进K-means算法更具备簇内差异小,簇间差异大的特点。所以选择改进K-means算法对数据进行离散化。离散化后的结果如表3所示:即聚类层面上的三类,偏低=0,偏正常=1,偏高=2。
表3 数据离散化
研究中使用Apriori算法和FP-Growth算法对于离散后的数据进行关联规则分析,设置Con f id ence的阈值为0.95。使用FP-Growth算法与Apriori算法对得出的聚类分析结果进行验证。对同时存在于两个算法中的关联规则进行保留,作为最终得到的关联规则。
为了实验结果的精确性,通过FP-Growth算法对基于聚类的Apriori算法得出的结果进行验证。基于聚类的Apriori算法得出的结果中,如果在FP-Growth算法得到的结果中也出现则保留。基于聚类的Apriori算法得出180516条关联规则,FP-Growth算法得出357711条关联规则,最终保留下来36980条关联规则。
从数量上看,血清质谱数据之间的关联规则是最多的,说明体检数据属性与属性之间有很强的关联性。从概率上来看,选取置信度大于95%的关联规则,研究生成的关联规则的置信度比较高。
以上实验得出的结果将关联规则可分为三类:体检数据的关联规则分析,血清质谱数据的关联规则分析,体检数据和血清质谱数据之间的关联规则分析。由于体检数据属性之间置信度高于95%的关联规则只有一个,所以不做分析。选取另两类关联规则结果的前十条进行阐述。
研究得出131031条质谱数据的关联规则。从整体上看,质谱数据之间的关联规则数量上是最多的,并且置信度也比较高。观察发现,质谱数据中有关联的属性都是距离较近的属性。也就是说,Mass质荷比的值相近的更有关联性;置信度较高的关联规则基本都平均分布在血清质谱数据的Mass质荷比为500~850的区间,说明质谱数据中Mass质荷比的值介于500~850之间的更有关联性。质谱数据之间的关联规则结果的前五条部分内容如表4所示。
表4 质谱数据mass值之间的关联规则
研究得出共有49484条体检数据和质谱数据之间的关联规则。表5为与Mass质荷比的值相关联的体检数据属性,选取置信度最高的五个属性进行展示。
表5 质谱数据Mass值与体检数据属性之间的关联规则
在质谱数据的Mass质荷比中,生成关联规则最多的520+0,与体检数据的属性之间的关联规则有18114项,占此类关联规则的36.6%,在与520+0关联的置信度前五条中的体检数据属性,有四个属性与肝脏功能相关;与809+0相关联的置信度前五条中的体检数据属性,有两个属性与贫血相关,两个属性与免疫相关;与688+0相关联的置信度前五条中的体检数据属性,有三个属性与贫血相关。
血清质谱数据的Mass质荷比与体检数据的属性的关联性非常强,置信度较高的关联规则比较平均地分布在血清质谱数据的Mass质荷比为介于500~850的区间,说明血清质谱数据的Mass质荷比介于500~850之间的数据无论是在与质谱数据本身的关联中,还是在与体检数据属性的关联中都有非常强的关联性。
将数据挖掘及关联规则分析技术应用于体检数据和血清质谱数据,深入挖掘了血清质谱数据质荷比之间,体检数据属性之间,质谱数据的质荷比与体检数据属性之间的关联规律,挖掘得到了体检数据和血清质谱数据的关联规则,为血液检验提供辅助诊断,促进医疗血液诊断的发展。