浅述双聚类算法
两步聚类中文版详解

目录第一节摘要 (2)第二节介绍 (2)第三节统计方法 (3)第四节两步聚类方法的分析 (3)第五节案例研究 (7)第六节输入 (7)第七节输出 (8)第八节讨论 (10)第九节结论 (11)第一节摘要本文利用SPSS两步聚类的方法将现有的数据分为三个集群以分析银行客户的信息。
对于我们的案例研究,这个方法是完美的,因为与其他经典聚类方法相比,两步聚类方法采用混合数据(包括连续和分类变量),它也发现了最优数量的集群。
两步聚类方法创建三个客户的配置文件,最大的一组包括最有资历(与银行合作时间悠久)的客户,其信用卡申请的目的是教育或者公司业务。
第二组主要包括拥有房产的客户,但主要是失业,他们信用卡申请的目的在于再培训或者添置家庭用品。
第三组主要是包括那些拥有未知属性的人,他们申请额度的目的在于购买汽车、添置电视或者教育。
本文所涉及的研究目的主要在于便于本行更好的管理以加强公司的利润空间。
第二节介绍在不同的领域中,不同的应用程都序可以使用聚类算法。
然而,大多数的这些算法只处理数值数据和分类数据。
然而,现实世界的数据可能包含数值和分类属性。
两步聚类的方法是SPSS中解决这个问题的一个途径之一。
在本文中,我们打算从一个银行提供的公共数据集中使用两部聚类的方法来确定银行客户的资料。
该方法的优势在于可以确定适当数量的集群,所以我们的目标是找到这个概要文件的数量,有效地管理现有的和可能存在的客户。
在下面几节中,我们介绍两步聚类的方法和案例研究中的输入、输出和结果的分析。
第三节统计方法数据分组(或数据集群)是一种方法,可以形成具有类似特征的类的对象。
集群通常是与分类混淆,但有一个主要的区别,即分类时,对象被分配到预定义的类,而在集群的情况下,必须定义这些类。
我们预计数据时使用集群技术自然得分组到不同的类别。
集群类别的物品有很多共同的特点,例如,客户、事件等等。
如果问题是复杂的,在聚类数据前,其他数据挖掘技术也可以应用(如神经网络和决策树)。
二步聚类算法

二步聚类算法二步聚类算法是一种常用的数据分析方法,它能够将数据集划分为不同的簇,使得簇内的数据点相似度较高,而簇间的数据点相似度较低。
本文将介绍二步聚类算法的基本原理、流程和应用。
一、二步聚类算法的基本原理二步聚类算法是一种层次聚类算法,它基于迭代的思想,通过反复执行两个步骤来完成聚类过程。
这两个步骤分别是:初始化和更新簇。
1. 初始化:首先,从数据集中随机选择k个样本作为初始聚类中心,其中k为预先设定的簇的数量。
这些初始聚类中心将作为每个簇的代表。
2. 更新簇:对于每个数据点,计算其与各个簇中心的相似度,并将其分配给最相似的簇。
然后,根据分配结果重新计算每个簇的中心,即将簇中所有数据点的均值作为新的簇中心。
重复执行上述两个步骤,直到簇中心不再发生变化或达到预定的迭代次数为止。
最终得到的簇中心和分配结果即为最终的聚类结果。
二步聚类算法的具体流程如下:1. 初始化:从数据集中随机选择k个样本作为初始聚类中心。
2. 更新簇:计算每个数据点与各个簇中心的相似度,并将其分配给最相似的簇。
然后,重新计算每个簇的中心。
3. 判断停止条件:判断簇中心是否发生变化或达到预定的迭代次数。
4. 若满足停止条件,则输出最终的聚类结果;否则,返回步骤2继续执行。
三、二步聚类算法的应用二步聚类算法广泛应用于各个领域的数据分析任务中,如市场分析、社交网络分析、图像处理等。
1. 市场分析:通过对消费者的购买行为数据进行聚类,可以识别出不同的消费者群体,从而为企业提供精准的营销策略。
2. 社交网络分析:通过对社交网络中的用户关系数据进行聚类,可以发现用户之间的社区结构,从而为社交网络平台提供个性化推荐和社区管理等功能。
3. 图像处理:通过对图像特征进行聚类,可以将相似的图像归为一类,实现图像检索和图像分类等任务。
四、总结二步聚类算法是一种常用的数据分析方法,它通过迭代的方式将数据集划分为不同的簇,使得簇内的数据点相似度较高,簇间的数据点相似度较低。
twostep聚类算法

twostep聚类算法两步聚类算法(Two-Step Cluster)是一种聚类方法,它主要包含两个步骤:预聚类(pre-clustering)和聚类(clustering)。
在预聚类步骤中,使用一个快速的聚类算法将数据集划分为若干个较小的子集,也称为“网格”。
这个聚类算法通常选择K-means算法,因为它既快速又适用于处理连续变量。
同时,需要选择适当的簇的数量。
在聚类步骤中,使用密度连接方法(Density Linkage)来合并预聚类中的网格。
在这个过程中,需要选择合适的连接方式和合并的阈值。
两步聚类的优点是它可以处理不同类型的变量,包括连续变量和离散变量。
此外,它还可以处理缺失值,因为它使用了一种基于概率模型的方法来估计缺失值。
以上是两步聚类的基本介绍,如需了解更多信息,建议查阅专业书籍或论文。
两步聚类的算法流程如下:1. 预聚类:* 将数据集分成K个子集,每个子集称为一个网格。
这个过程可以使用K-means算法实现。
* 在每个网格中,计算每个数据点到网格中心的距离,并将该数据点标记为该网格的成员。
2. 聚类:* 对于每个网格,找到该网格中所有其他网格的距离,并计算它们的平均距离。
* 将平均距离小于某个阈值的所有网格合并成一个新的网格。
这个过程可以通过计算所有网格间的最小距离来实现。
* 重复步骤2,直到所有的网格都合并成一个大的聚类。
3. 结果评估:* 对于每个聚类,计算其内部密度(即聚类内所有数据点之间的平均距离)。
* 如果某个聚类的内部密度低于某个阈值,则将该聚类进一步拆分为两个或更多的子聚类。
* 重复步骤3,直到所有的聚类都满足内部密度要求。
4. 结果输出:* 将最终的聚类结果作为输出。
需要注意的是,两步聚类的效率和效果取决于预聚类的质量和聚类算法的选择。
因此,在实际应用中,需要根据数据集的特点和实际需求选择合适的预聚类算法和聚类算法。
同时,也需要根据实际情况选择合适的阈值和参数。
两步聚类方法

2.1 分割聚类算法
分割聚类方法是一种基于原型的聚类
方法,其本质是首先从数据集中随机地选择 几个对象作为聚类的原型,然后将其他对象 分别分配到由原型所代表的最相似,也就是 距离最近的类中。分割聚类方法通过迭代控 制策略对原型不断地进行调整,从而使得整 个聚类得到优化。
根据所采用的原型的不同,分割聚类方 法主要包括 k-means 和 k-medoid 两大类算 法。这里主要介绍 k-means 算法。
(1)采用相关系数进行差异度的计算, 取ε=0.9,MinPts=1,采用 DBSCAN 算法对 这 50 个对象进行聚类,结果共聚 6 类,其 中有 3 个异常类,见图 1 至图 3,这 3 个类 都分别只有一条数据,这三条数据是异常 值。
(2)将异常值的两条记录从数据库中排 除出去,形成新的待聚类对象集 D1。
4.2 DBSCAN 算法
DBSCAN 算法的主要思想为:如果一 个对象在其半径为ε的邻域内包含至少 MinPts 个对象,那么该区域是密集的。为了 确定这样的密集区域,该算法涉及有关密度 的一系列定义,从而根据这些定义来确定密 集区域,也就是确定各个类,并隔离出异常 值。这些定义包括:
定义 1 ε-邻域:对于一个给定的对象, 其半径为ε的邻域成为该对象的ε-邻域。
(2)根据距离“中心”最近的原则, 寻找与个对象最为相似的类,将其他对象分 配到各个相应的类中;
(3)在完成对象的分配之后,针对每 一个类,计算其所有对象的平均值,作为该 类的新的“中心”;
(4)根据距离“中心”最近的原则, 重新进行所有对象到各个相应类的分配;
(5)返回步骤(3),直到没有变化为 止。
4.3 DBSCAN 算法的特点
基于基因表达数据的双向聚类算法的综述

基于基因表达数据的双向聚类算法的综述作者:冯艳霞陈艳楠来源:《科技风》2017年第26期摘要:随着基因芯片和DNA微阵列等高通量、短读取、低成本检测技术的发展,从而产生了丰富的基因表达数据。
对这些数据进行有效的分析已经成为后基因组时代的研究重点。
一般的聚类是根据数据的全部属性将数据聚类,这种聚类方式称为传统聚类。
传统聚类只能寻找到全局信息,无法找到局部信息,而大量的生物学信息就隐藏在这些局部信息中。
为了更好地在数据矩阵中搜索局部信息,人们提出了双聚类概念,这种算法从思想上有别于传统的聚类算法,它主要强调在聚类时基因和条件的同时性。
目前比较成熟的双聚类算法大约有十七种左右。
基于此本文简要调研了现有的三种具有代表性的双聚类算法,系统的分析了每种算法的设计步骤,算法原理,操作环境以及应用。
这对于不同的基因数据如何选择更加合适的双聚类算法和软件提供了一定的指导。
关键词:聚类分析;双聚类算法;基因表达谱分析;生物信息学对基因表达谱数据的分析是生物信息学的研究热点和难点。
分析目的是从数据矩阵中找出相似性结构,结构类型包括全局模型和局部模式。
对基因表达谱数据的分析通常使用聚类分析的思想。
聚类分析是模式识别和数据挖掘中普遍使用的一种方法。
基本思想是在多元变量间定义距离或相似系数,以此来确定多元变量关系,在基因表达谱分析中,这个多元变量就是基因向量和条件向量。
通过聚类可得到一组或多组共表达基因,在每组内基因的表达谱非常类似,具有相似的表达模式。
目前对基因表达分析的聚类有传统聚类技术和已经提出来的双聚类技术。
传统聚类技术的目的是,在微阵列数据分析的背景下,将在特定条件下具有相似表达模式的一组基因聚类成一团簇或从其他非结构化微阵列数据集识别这些聚类体。
这种聚类算法虽很有用,但还是不足以处理一般的基因表达分析问题,比如(1)难以消除噪声问题对聚类效果的影响;(2)很难精确地反映基因间的紧密关系;(3)只能找到整个数据集的全局信息。
关于两步聚类分析方法的理论和应用研究综述

关于两步聚类分析方法的理论和应用研究综述关于两步聚类分析方法的理论和应用研究综述摘要:两步聚类分析方法是近年来才发展起来的聚类方法的一种,它主要用于处理解决海量数据,复杂类别结构时的聚类分析问题,尤其是连续变量和离散变量的混合数据。
它分为两大步骤,包括预聚类和正式聚类。
在实践中主要解决群体划分、用户或消费者行为细分等问题。
但是目前在国内,由于该方法使用范围较小,且缺乏较为详细的介绍,本文就该方法的理论和应用方面作一具体的介绍。
关键字:两步聚类分析方法分层聚类市场细分 BIC准则一、引言聚类分析是依照研究对象的个体特征,对其进行分类的多元统计分析方法。
具体说来就是,将一批样本或变量的诸多特征按照在性质上的亲疏程度,在没有先验知识的情况下进行自动分类,产生多个分类结果。
在聚类分析中,我们常用的聚类方法有快速聚类和层次聚类。
其中层次聚类容易受到极值的影响,并且计算复杂速度慢不适合大样本聚类;快速聚类虽然速度快,但是其分类指标要求是定距变量,而实际研究中,有很多的定类变量,如性别、学历、职业、重复购买的可能性等多个与研究目的紧密相关的指标无法直接参与运算,而大大限制了它的使用范围。
在此情况下,两步聚类法作为一种较为综合的聚类方法,并能解决上述问题,成为近几年比较常用的方法之一。
法与其他传统的聚类技术有显著的区别,它拥有如下三个有利特征:1、能用于处理基于分类变量和连续变量的聚类问题;2、能自动选择聚类数;3、能高效处理大规模数据量的文件。
二、基本原理两步聚类分析法采用似然距离度量来处理离散变量和连续变量。
并且,模型中的每项连续变量都假设为正态分布状态,每项离散变量都假设为多项分布状态。
在这种假定下,两步聚类按照两个步骤完成聚类。
首先,通过构建和修改聚类特征树对记录进行初步归类;然后,对这些初步分类的结果再次进行聚类,由于此时的预聚类的数量要远远小于原始数据的数量,在这一阶段使用传统的聚类方法就可以处理了。
基于特征词袋的双聚类算法
从预处理后的文本中提 取特征,采用特征词袋 模型表示文本。
实验设置
聚类算法
采用基于特征词袋的双聚类算法,将文本数据 分为两个聚类。
聚类评价指标
采用聚类纯度、F1分数和轮廓系数等指标对聚 类结果进行评价。
参数设置
根据实验数据集的特点,选择合适的参数,如特征词袋的大小、相似度阈值等 。
实验结果分析
使用K-means算法对特征词袋进行 聚类,得到K个簇。
生成子簇
对每个簇内的文档进行再次聚类,使 用层次聚类或DBSCAN等方法生成 子簇。
结果输出
输出最终的聚类结果,包括每个子簇 的标签和对应的文档列表。
算法复杂度分析
时间复杂度
算法的时间复杂度主要取决于第一次K-means聚类的复杂度,为O(nlogn),其中n为数据集中的文档数量。第二 次聚类的复杂度取决于具体的聚类方法,但通常不会超过O(n^2)。
1 2
聚类效果分析
通过对比不同聚类算法的聚类效果,发现基于特 征词袋的双聚类算法在实验数据集上具有较好的 聚类效果。
参数敏感性分析
分析算法参数对聚类效果的影响,发现特征词袋 的大小和相似度阈值对聚类效果有较大影响。
3
应用场景分析
基于特征词袋的双聚类算法适用于文本分类、主 题建模、信息检索等领域,具有广泛的应用前景 。
特征提取和聚类算法的结合
02
特征提取是机器学习中的重要步骤,将特征提取与聚类算法相
结合,可以提高聚类的准确性和稳定性。
双聚类算法的提出和发展
03
双聚类算法是一种新型的聚类算法,旨在同时对数据集进行行
和列的聚类,以发现更具有意义的聚类结果。
研究意义
解决传统聚类算法的局限性
双聚类算法
双聚类算法是一种用于数据挖掘和模式识别的聚类方法,它可以同时对数据点和特征进行聚类。
与传统的聚类算法不同,双聚类算法可以识别数据点和特征之间的相关性,从而更好地理解数据的内在结构。
在双聚类算法中,数据集被表示为一个矩阵,其中行表示数据点,列表示特征。
该算法的目标是找到一组双聚类,即一组同时聚类数据点和特征的子集。
这些双聚类可以帮助发现数据集中的潜在模式和关联性。
常见的双聚类算法包括:
BiMax:BiMax算法使用基于统计的方法来发现数据集中的双聚类。
它通过在数据矩阵中选择具有高方差的子集来进行搜索,并通过评估每个子集的相关性来确定最佳双聚类。
Spectral Co-Clustering:这是一种基于谱聚类的双聚类算法。
它通过将数据矩阵转化为图形表示,并在图上执行谱聚类来发现双聚类。
Plaid:Plaid算法通过对数据进行二值化和基于布尔代数的操作来发现双聚类。
它通过最小化数据矩阵与生成的布尔矩阵之间的差异来确定最佳双聚类。
xMotif:xMotif算法是一种基于模式发现的双聚类算法。
它使用模式树来表示数据集,并通过扫描模式树来发现具有高置信度的双聚类。
这些算法在不同的数据集和应用领域中具有不同的性能和适用性。
选择适当的双聚类算法取决于数据的特征和任务的要求。
两类聚类算法的改进及其应用研究
两类聚类算法的改进及其应用研究两类聚类算法的改进及其应用研究摘要:聚类算法在数据挖掘和机器学习领域中起着重要的作用。
本文介绍了两类常用的聚类算法——K-means聚类算法和DBSCAN聚类算法,并对它们的改进方法及应用进行了探讨。
通过对聚类算法的改进,可以提高聚类效果,提升算法的准确性和效率,使其在实际应用中具有更广泛的应用前景。
一、引言聚类算法是数据挖掘领域中的一项基础工具,其主要目的是将相似的数据对象归为同一类别,从而实现对数据的分析和挖掘。
在实际应用中,聚类算法具有广泛的应用,如市场细分、社交网络分析、医学影像分析等领域。
目前,K-means聚类算法和DBSCAN聚类算法是两种非常常见且具有代表性的聚类算法。
本文将分别对这两种算法进行介绍,并探讨它们的改进方法及应用研究。
二、K-means聚类算法及其改进1. K-means聚类算法原理K-means算法是一种基于样本之间距离度量的聚类算法。
其原理是通过不断迭代的方式,将数据集中的样本划分为K个簇,使得同一簇内的样本之间的距离尽可能小,不同簇之间的样本距离尽可能大。
2. K-means聚类算法的改进方法为了提高K-means算法的聚类效果,研究者们提出了许多改进方法。
其中,主要包括以下几个方面:(1)初始聚类中心的选择:K-means算法对初始聚类中心的选择非常敏感。
有些初始聚类中心的选择方法容易陷入局部最优,导致算法无法收敛到全局最优解。
因此,研究者们提出了许多初始聚类中心的选择方法,如随机选择、K-means++等。
(2)聚类结果评估指标:为了评价聚类结果的好坏,研究者们提出了多种评估指标,如轮廓系数、DB指数等。
通过选取合适的评估指标,可以更好地评估和比较不同的聚类结果。
(3)聚类中心的更新策略:K-means算法在每次迭代中,都需要更新聚类中心的位置。
研究者们提出了多种聚类中心的更新策略,如直接取样本的均值、加权平均等。
通过合理选择更新策略,可以提高算法的准确性和效率。
浅述双聚类算法
浅述双聚类算法摘要:双聚类(Biclustering )算法在数据挖掘中是一个新兴的算法,对于矩阵类型的数据,其聚类效果很好。
本文浅述了双聚类算法的基本特点,并提出了用迭代的双聚类算法对未知的数据进行分类,并对一组数据进行了测试,其分类表现不错。
关键词:双聚类;数据挖掘;迭代;分类双聚类基础的可以定义为:给定矩阵M ,寻找到矩阵M 的多个子矩阵A ,对于每一个A 满足其指定条件进行聚类,最后得到需要的子矩阵B 。
双聚类方法可在以下一个或者多个问题下使用:1.仅仅是一小部分基因参与的有趣的细胞作用过程的聚类。
2.对于一部分特定条件下的细胞作用过程体现为活跃的。
3.单个基因可以在多重维度路径下并且全局限制条件对其没限制,可以是活跃的也可以是不活跃的。
因此,对于双聚类也得遵循下面约束:1.基因簇按给定特定的部分条件能够被聚类出来。
2.聚簇的条件按基因子集能够被清晰定义。
3.聚簇不是被独占的和/或全体占有的:一个基因/条件可以属于一个簇或者都不属于在一个子集的条件/基因下。
一.基本分类 双聚类是应用各种算法得到在条件子集下具有共同表达模式的基因子集。
得到的双聚簇一般具有以下几种样式: 1.常值型:即得到的双聚簇中基因的表达水平为一个常数,如表1.a 2.行或者列为一个常数:即在一个双聚簇中,每个基因的表达水平为一个常量,或者再一个条件下的所有基因的表达水平为一个常量。
如表1.b 和表1.c 。
3.一致性变化:在一个双聚簇中,基因间得表达水平相差一个常量,双聚簇表1.e 中的基因之间的表达水平成倍数关系。
表1 聚类结果发展至今,双聚类的各种启发式算法已经有很多了,但是总体来说,双聚类算法可以分成以下五类:1.结合行与列的迭代聚类法。
2.分离和攻克法。
3.贪心迭代搜索。
4.双聚簇穷举法。
5.分配参数鉴别法。
在基因表达矩阵中给定特定条件子集下去发现一个基因群子集所存在的相似度表达模式时,一般的聚类算法是无法实现的,但是此时用双聚类算法中的OP-Cluster 算法就可以得出在特定条件子集下的基因群子集的相似长度,利用这个就可以计算出其相似度,最后把他们聚类成一个子矩阵(带权值的双向图)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅述双聚类算法
发表时间:2019-08-15T15:37:14.173Z 来源:《信息技术时代》2018年12期作者:肖志军
[导读] 双聚类(Biclustering)算法在数据挖掘中是一个新兴的算法,对于矩阵类型的数据,其聚类效果很好。
本文浅述了双聚类算法的基本特点,并提出了用迭代的双聚类算法对未知的数据进行分类,并对一组数据进行了测试,其分类表现不错。
(玉林师范学院计算机科学与工程学院,广西师范大学)
摘要:双聚类(Biclustering)算法在数据挖掘中是一个新兴的算法,对于矩阵类型的数据,其聚类效果很好。
本文浅述了双聚类算法的基本特点,并提出了用迭代的双聚类算法对未知的数据进行分类,并对一组数据进行了测试,其分类表现不错。
关键词:双聚类;数据挖掘;迭代;分类
双聚类基础的可以定义为:给定矩阵M,寻找到矩阵M的多个子矩阵A,对于每一个A满足其指定条件进行聚类,最后得到需要的子矩阵B。
双聚类方法可在以下一个或者多个问题下使用:1.仅仅是一小部分基因参与的有趣的细胞作用过程的聚类。
2.对于一部分特定条件下的细胞作用过程体现为活跃的。
3.单个基因可以在多重维度路径下并且全局限制条件对其没限制,可以是活跃的也可以是不活跃的。
因此,对于双聚类也得遵循下面约束:1.基因簇按给定特定的部分条件能够被聚类出来。
2.聚簇的条件按基因子集能够被清晰定义。
3.聚簇不是被独占的和/或全体占有的:一个基因/条件可以属于一个簇或者都不属于在一个子集的条件/基因下。
一.基本分类
双聚类是应用各种算法得到在条件子集下具有共同表达模式的基因子集。
得到的双聚簇一般具有以下几种样式:
1.常值型:即得到的双聚簇中基因的表达水平为一个常数,如表1.a
2.行或者列为一个常数:即在一个双聚簇中,每个基因的表达水平为一个常量,或者再一个条件下的所有基因的表达水平为一个常量。
如表1.b和表1.c。
3.一致性变化:在一个双聚簇中,基因间得表达水平相差一个常量,双聚簇表1.e中的基因之间的表达水平成倍数关系。
表1 聚类结果
发展至今,双聚类的各种启发式算法已经有很多了,但是总体来说,双聚类算法可以分成以下五类:1.结合行与列的迭代聚类法。
2.分离和攻克法。
3.贪心迭代搜索。
4.双聚簇穷举法。
5.分配参数鉴别法。
在基因表达矩阵中给定特定条件子集下去发现一个基因群子集所存在的相似度表达模式时,一般的聚类算法是无法实现的,但是此时用双聚类算法中的OP-Cluster算法就可以得出在特定条件子集下的基因群子集的相似长度,利用这个就可以计算出其相似度,最后把他们聚类成一个子矩阵(带权值的双向图)。
在双聚类算法中Cheng and Church算法是最具代表性的算法,他们认为双聚类搜索空间为2的m+n次方,其中m和n代表的是行和列,并且认为寻找所有双聚簇方阵是一个NP难题。
Cheng and Church 算法主要是通过贪婪算法来删除矩阵的行和列以达到想要的结果,他的算法最初描述如下:
定义:一个子矩阵 称为一个δ-bicluster,如果H(I,J)≤δ(δ≥0)。
一个bicluster的大小定义为S=|I|﹡|J|。
其中H(I,J)为A IJ的均方残差。
输入:基因表达水平矩阵A,预设值δ>0
输出:A IJ,其中H(A IJ)<δ
初始化:A IJ=A
While H(A IJ)>δ
计算删除每行和每列后的矩阵的H值,选择使H值减少幅度最大的行或者列,删除该行或者该列,返回A IJ,直到找不到这样的行或者列为止。
双聚类也可用于基因表达的进化演算上面去,在基因的进化演算中使用到双聚类的一个算法叫做SEBI算法,它可以发现双聚簇通过表达数据。
而且SEBI算法在进行数据集观察和实验时不需要设置参数,他可以在一个实验条件集中清晰的找出基因集合的上相似约束和下相似约束。
总的来说SEBI算法可以在基因表达数据中找出狡猾难寻的和扩大缩小后的模式。
双聚类运用的领域也是很广的,他不单单是用在我上面提到的基因表达上,因为他主要解决了基因表达问题,所以上面都是以这个为例子来说。
双聚类可以应用在生物上也可以应用在非生物学上,在生物学上很多学者都已经用大量的实验证实是相当有用的。
比如用微阵列技术收集酵母菌细胞和人类细胞,研究他们在特定条件下的基因表达等级。
在非生物学上的应用也很多,比如信息恢复,文本挖掘,协同过滤,数据库搜索,知识挖掘等方面都有广泛的应用。
Gaul and Schader在此中介绍了双聚类于市场调查的关联性,他们用数据基准阵列去封装营销中收集到的数据,然后通过双聚类算法来得出给定条件下的子矩阵,如此实现调查。
但是双聚类在对于边界噪声点比较多,实验效果差,或者是图形图像比较模糊的数据还是很难进行聚类的,这个同时也约束了他的使用范围。
我想这个可以通过结合模糊聚类的话可能可以解决一些问题。
而且微阵列通常不满足正态分布,因此在数据分析上面也有一定的局限性。
我认为微阵列的不足可以尝试使用贝叶斯算法统计来试试。
二.相关工作
可以尝试用双聚类算法对未知的数据进行分类。
如在生物信息中有矩阵类型的数据,行表示样本,列代表基因,那么这类数据是可以用双聚类算法对其进行归类和划分的。
算法会用到迭代对类别进行区分。
使用威斯康辛乳腺癌数据集,有569个样本,30个基因,分为两类/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data,以上是数据地址。
算法步骤如下:
输入:数据矩阵M,残基选择的阈值H,基因占总样本的比为T。
输出:多个子矩阵。
1.计算矩阵M的残基,如果小于H,直接输出,否则进入
2.(直接输出就是分为一类了)
2.找出行或者列中残基最大的,进行删除,直到子矩阵M1的残基小于H为止。
3.对M1进行行或者列的增加,计算与当前矩阵行或者列对应的行或者列的残基,把最小的进行增加,直到预判增加后子矩阵M2的残基大于H,则最后这一行或者列不添加。
4.对找出的子矩阵M2进行基因占比计算,小于T则终止(第一个就小于T则说明应全部归为一类或者T的选择不合适或者算法不适用这数据),大于T则在原始矩阵M中删除M2所包含的列(样本)得到
M3。
5.迭代地对M3进行2-4.
6.直到出现小于T,则判定无其他分类,剩余的归为一类。
用了准确率,召回率,支持数,这三个指标来衡量分类准确性。
表2 结果
precision recal support
10.941 1.000272
2 1.0000.932197
上表结果可以看出分类的准确性是比较高的,都达到了90%以上。
三.总结
双聚类在生物上的发展是有很大很大的空间的,当然在其他领域上也是一样,这是一个很广很实用的方法,而且现在也只是双聚类发展的起步,他将会在以后的研究中迅速发展起来,更加全面更加实用。
参考文献
1]Y.Cheng and G.M.Church.“Biclustering of expression data”.In Proc.ISMB’00,pages 93–103.AAAI Press,2000.
作者简介:肖志军(1975-),男,江西崇义人,高级工程师,硕士,主要研究方向:数据挖掘,人工智能。