5 f, M; Y4 v% f5 K, u$ K聚类模型: # [& E5 T) b6 D 聚类分析是数据挖掘的重要研究内容与热点问题。其由来已久,国外可以追溯到亚里士多德时代。在中国,很久之前便流传着“物以类聚,人以群分”的聚类思想。从而可知聚类是一个非常古来的问题,它伴随着人类社会的产生与发展而不断深化。人们通过事物之间的区别性与相似性来认识与改造世界,将相似的对象聚集到一起。聚类便是按照某种相似性度量方法对一个集合进行划分成多个类簇,使得同一个类簇之间的相似性高,不同类簇之间不相似或者相似性低。同一类簇中的任意两个对象的相似性要大于不同类簇的任意两个对象。从学习的角度来看,聚类中事先并不需要知道每个对象所属的类别,即每个对象没有类标进行指导学习,也不知道每个簇的大小,而是根据对象之间的相似性来划分的,因此聚类分析属于一种无监督学习方法,又被称为“无先验知识学习方法”。其目的是在数据中寻找相似的分组结构和区分差异的对象结构。目前,聚类算法已经被广泛应用于科学与工程领域的方方面面,如在电子商务上进行消费群体划分与商品主题团活动等;在生物信息学上进行种群聚类,便于识别未知种群以及刻画种群结构等;在计算机视觉上应用聚类算法进行图像分割、模式识别与目标识别等;在社交网络上进行社区发现等;在自然语言处理中进行文本挖掘等。常见的聚类方式有以下几种:4 f" m4 ?8 ]0 p. e w9 q* R
' i& w1 J# j `1. 基于划分的聚类算法 / f5 l9 l8 f# _' {, W, j 基于划分的聚类算法是指基于欧式距离将各个对象划分到对应的簇中。主要的代表算法有:K-means、K-mediods、FK-means、K-modes、K-prototype、EM算法、CLARANS等; . p8 C) K5 v3 a" A o; b6 T( {3 v5 [2 k; p( s: ?+ U
2. 基于层次的聚类算法 6 `) o; L+ g3 P/ P 基于层次的聚类算法可分为两大类,一种是自底向上,一种是自顶而下。自底向上策略是使用凝聚方法进行聚类,该方法最初是将每个点作为一个簇,使用某些准则对簇不断地进行合并,直到满足某个终止条件,便得到了聚类的所有簇;而自顶而下策略是使用分裂方法进行聚类,该方法最初是将所有点都作为一个簇,不断使用某些准则对簇进行分裂,直到所有对象都自成一个簇或者满足某个终止条件,这样便得到了各个簇,层次方法在每个过程中所得到的簇可以构成一棵聚类树。另外,可以在聚类过程中同时结合凝聚与分裂方法。层次凝聚的代表算法是AGNES(Agglomerative Nesting)算法,层次分裂的代表算法是DIANA(Divisive Analysis)算法,以及凝聚与分裂相结合的BIRCH、CURE等; " v: m0 d* \' P# R1 s $ o R) d: R& |. f3. 基于图论的聚类算法 . m. N7 K- y. r0 @! s0 O6 [8 j; I 基于图论的聚类算法首先将样本对象构造成一张图,每个对象为图的一个顶点,对象之间的关系(相似度)作为图顶点之间的边值。然后,采用图论的方法对图进行划分而形成多个子图,每个子图便是一个簇,使得子图内部相似性大,子图间相似性小,称为图划分聚类。划分的准则有:最小割集(Minimum-cut)准则、率切(Ratio-cut)准则、规范切(Normalized-cut)准则、最小最大切(Min-max-cut)准则等,基于图论的聚类又称为谱聚类(Spectral Clustering),其基本思想是利用样本数据的相似矩阵(一般是Laplacian矩阵或Laplacian的变换矩阵)进行特征分解后得到的特征向量进行聚类。根据划分准则可以将谱聚类分为两大类:规范化谱聚类(Normalized Spectral Clustering)与非规范化谱聚类(Unnormalized Spectral Clustering),其主要区别在于输入的Laplacian矩阵是否进行了规范化,如最小割集与率切准则是非标准化准则,规范切与最小最大切准则则是规范化准则。在谱聚类算法中使用最广泛的是Ng与Jordan等人提出的基于规范切的谱聚类算法; , q( `! Q; n9 W5 E% m! h5 y' T7 A 7 w( G0 h1 D# K: F- y% D+ a4 F4. 基于密度的聚类算法% e5 G% I' A2 n3 N0 ]) n: g
基于密度聚类算法不是基于距离的而是基于密度的。对象的密度是指以这个对象为中心,单位体积内对象的个数。该类聚类算法使得类簇内的密度大,类簇间的密度小。这样,基于密度聚类便能克服基于距离的算法只能发现“圆形簇”的缺点。其根据对象集合构成的空间的密度差异,将每个类簇看成是:由低密度区域分割开的高密度区域。该类型的算法的一个主要方向是如何去对高低密度区域进行定义。常见的有DBSCAN、OPTICS、DENCLUE、CBFSAFODP等算法;5 x' A$ q$ @' Z" o3 X
" }8 e7 y7 ?; {5 {2 ^3 i9 {% w
5. 基于网格的聚类算法 - e6 H* {0 ?0 O* D 基于网格的聚类算法,首先将数据空间划分成有限个单元的网格结构,每个单元作为基本处理单元,这种方法的一个突出优点便是处理速度快,它与数据本身的对象个数无关,只与把这些对象分成多少个网格有关,代表算法有STING、CLIQIUE等算法; % n, J! H8 k+ w- E- V4 @; y2 n j8 ~+ L- x4 i4 c/ A# q* b
6. 基于模型的聚类算法1 g6 H! F' H5 g
基于模型聚类是假定每一个类簇都是一个模型,然后去寻找能够拟合这个模型的簇,每一个模型反映的是数据对象在样本空间中的密度分布,其潜在假定就是:目标数据集是由一系列的概率分布所决定的。基于模型主要有两类方法:基于统计学的方法与基于神经网络的方法。基于统计学方法有COBWeb雨Auto-class算法,基于神经网络的有CL、LVQ、SOFM等算法。 ' @9 O$ v7 k( Q. Q 使用聚类算法对设备故障类型或者设备状态进行聚类,以便发现类似的设备故障以及设备状态等。: g/ `, ?! F. S; b3 W8 n2 N
8 [: r+ P0 N5 C( t& \
关联规则挖掘: : [/ l+ G( r5 j 关联规则挖掘是指:给定一个数据集T,每条记录有多个特征,从这些记录中找出所有支持度大于等于最小支持度support>=min_support,置信度大于等于最小置信度confidence>=min_confidence的规则Xs->Ys。其形式话的定义:两个不相交的非空集合Xs、Ys,如果Xs->Ys,就说Xs->Ys是一条规则。例如,啤酒与尿布的故事,它已成为了关联规则挖掘的经典案例,{啤酒}->{尿布}就是一条关联规则。支持度support的定义为:support{Xs->Ys}为集合Xs与集合Ys中的项在同一条记录中出现的次数除以总记录的个数。置信度confidence的定义为:confidence{Xs->Ys}为集合Xs与集合Ys中的项在同一条记录中出现的次数除以集合Xs中的项共同出现的次数。支持度和置信度越高,则说明规则越强。关联规则挖掘就是挖掘出具有一定强度的规则集合,即该规则集合中的每条规则的支持度要大于等于最小支持度,置信度要大于等于最小置信度。常见的关键规则挖掘算法有Apriori、FP-growth、GSpan等算法。 9 q/ R8 |' o9 `
可以使用关联规则挖掘算法来对设备故障进行监控与预测,以便找到故障发生的关键原因与因素。 * q3 k8 R6 C( u( ~6 n3 D6 [ % C) i; f. V4 y! B5 `) \( v% c; e( I9 O8 i: m- H! c