一种改进的双向聚类算法及其在销售分析中的应用摘要:传统聚类认为每个对象与所有属性均有关系,只是将对象进行聚类,为了克服这一不足,提出基于合并双聚类模型(MergeBiClusterModel,MBCM)的算法,采用将对象和属性同时进行聚类,找出与一组属性有关的相近对象。实验证明,该方法更为快速,能够得到更加精确的结果。关键词:数据挖掘;双向聚类;合并双聚类模型中图法分类号:TP391文献标识码:A:1001-3695(2007)010251041引言??应用数据挖掘技术,从海量数据中发现有价值的信息。聚类是将一组个体按照相似性原则归为若干类别。同时,聚类分析可以作为一个单独的工具以发现数据库中数据分布的一些深入的信息,并且概括出每一类的特点。在市场研究领域,聚类分析是市场细分、寻找不同目标市场及其人员特征非常简单而又非常有效的方法。通过分析,将某些特征相似的消费需求找出来以形成不同的细分市场,从而针对不同的细分市场制定出企业的市场营销策略。??目前常用的聚类方法是基于所有属性比较的聚类,用相似度量函数确定相似程度,将对象进行类别的划分。例如,文献[1]先将客户的消费模式分布于平面区域,利用群体将客户聚类,再采用递归算法收集聚类结果。在这些聚类中,将对象分成若干类。但对于有些情况则不能满足,如某些属性对有些对象不起作用,在这些情况下,需要考虑与对象相关的属性。如果将对象在不同属性下的取值看作一个矩阵,基于此矩阵,根据对象和属性同时聚类,这样可以找出其中满足条件的各个小矩阵,即由对象子集和属性子集组成的聚类,这个过程称为双向聚类[3~8]。Hartigan在1973年最早介绍了“同时聚类”这个概念[3],之后Mirkin在文献[4]提出了类似的概念,如“盒式聚类”、“双向聚类”的概念。文献[6]对基因表达数据的聚类中引用了双聚类概念,从原始矩阵中依次产生满足条件的δBiCluster,从中分析相似的基因表达行为,用参数H判定是否为聚类,采用添加/删除行/列的方式求出一个聚类,按照同样的方法得到k个聚类。文献[7]的判定方法与文献[6]类似,在删除时考虑行的平均值与所有元素的平均值是否大于给定的阈值。文献[8]进一步改进了双向聚类的算法,提出FLOC算法,第一阶段随机产生给定数目的聚类,第二阶段再对这些随机产生的k个聚类改进为满足条件的聚类。添加/删除任意的行/列,通过计算新的聚类的行列相乘得到的偏差值,判断是否满足条件阈值,从而得到初始聚类的扩展聚类。但FLOC算法首先产生的初始聚类是随机的,很不精确;其次反复偏差值的计算以及迭代才能找到近似的各个满足条件要求的聚类,这样既影响了准确率又影响了效率。??针对这些问题,本文对双向聚类算法进一步作了改进,并提出了基于合并双聚类的模型(MergeBiClusterModel,MBCM)。对聚类的判断不再是行列的剩余值的计算,而仅仅判断列上的差值,通过合并模型将产生的符合条件的小聚类进行扩展,无需迭代准确快速找到符合条件的所有聚类。应用到销售市场分析中,将某些特征相似的消费对象找出来,对相关的产品实行对应的营销策略。它是对传统的聚类方法的改进,传统方法只是将距离相近对象聚为一类,无法找到对象与属性一致性关系的数据。我们的目标就是从大量的数据中找到符合一致性关系的多个聚类,在这些聚类中的对象对应的是属性的子集上的相似。这种算法具有较高的时间复杂度,得出的结果更精确。??2相关概念??设一个含有n个对象:O=(o??1,o??2,…,o??n),m个属性:C=(c??1,c??2,…,c??m)组成的矩阵,每一个数据项c??ij代表对象i在第j个属性上的值。??提取三组数据,表示三个用户对四件产品使用的满意度打分,1为最低分,10为最高分。o??1=(1,2,4,2),o??2=(2,3,5,6),o??3=(4,5,7,10),我们可以看出三组数据的联系紧密,如图1所示。??可以看出,三条曲线在前面三个位置处变化趋势相同,虽然三个用户对这四个产品的打分是不同的,但从这几组数据可看出他们对前三个产品有内在联系的观点。得到的满足条件的聚类可以用图2中的三张表格形象地表示。图2(a)是一种特殊情况,即不同的对象在几个条件下的评定值相同。图2(b)显示了一个对象在几个不同的地区评定值相同,而另外的对象在这几...