Spark MLlib中的K-means算法使用Map分布式读取数据集,并存储在内存里。计算时,用Map键值对表示随机挑选出来的k个聚类中心,Spark的驱动器节点负责把数据发送到各个工作节点,以实现具体的计算任务。Spark MLlib不同于传统的机器学习工具,它提供了简单易用的API,特别是Spark能够高效地处理大数据,并且在迭代计算时具有较强的优势。......
2023-11-21
特异数据在整个数据集中占的比例很小,第3.1节的构架中有大量的冗余运算。设某一属性的所有值的数据集为S,其平均值为Smean。如果事先根据距离将S进行聚类,那么大类(其中数据个数多的类)中的数值成为特异的可能性就会很小,质心(类中数据的平均值)距Smean较近的类中的数值成为特异的可能性也会很小。第3.1节的构架精确地计算出了所有属性与记录的特异因子,而用户关心的只是特异值排序在前面的很少一部分属性与记录的特异因子值,对于排序在后面的特异因子值可以采用不精确的计算方法。根据这些想法,提出一种基于聚类的全局特异数据挖掘方法。
给定一个数据集D,D是由属性和记录组成的二维关系表。数据集的结构如表3.1所示。首先,一个百分数λ需要由用户给出。λ表示数据集D中特异数据占的比例,可以是用户预测D中有≤λ×|D|个特异数据或用户希望能找出前λ×|D|个特异值。另外,还需要设置一个聚类系数k,其值为2或3或4,可由用户指定,默认k=2。k的意义将在后面说明。构架仍由挖掘特异属性和挖掘特异记录两个层次构成。
在属性层次,首先,将每个属性按距离进行聚类;之后,计算每个属性聚类的反特异因子,并将属性聚类分成可能成为特异的类和不可能成为特异的类;最后,计算属性的特异因子并排序,指定前λ×|D|属性为特异的。
设某一属性的所有值的集合为S,其平均值为Smean。从原则上讲可以采用任何基于距离的聚类算法对S进行聚类,采用的聚类算法的效果好,可以减少后续的计算量。为了时间效率,使用的是一种类似于Squeezer算法[111]和文献[112]中聚类算法的简单聚类算法,称SimC(Simple Cluster),如图3.2所示。SimC算法思想简单,运行效率高。虽然聚类的结果并不优秀,但后面的实验将证明,SimC有效地支持了本章的构架。
图3.2 SimC聚类算法
可以看出,k是控制聚类半径Cd的。k越大,Cd越小,产生的类越多,同时每个类更精细。设S经聚类生成{C1,C2,…,Cη}η个类。现在根据式(3.9)计算每个类的特异因子,记为CPF(Cj)。式中,|Cj|表示类Cj中元素的个数。
显然,CPF越小的类,其中的元素是特异数据的可能性越小。将η个类按CPF由大到小的顺序排序,设排序后的顺序为:C1′,C2′,…,Cη′。再设置一个阈值,称红蓝界RBB,并且,k是之前设定的聚类系数。从C1′开始累计类中元素个数,设当累计到Cjr′时结果第1次大于或等于RBB,则称C1′,C2′,…,Cjr′为红类;Cjr+1′,Cjr+2′,…,Cη′为蓝类。
计算每个属性的特异因子PF时,红类中的元素将作为单个的值参加运算,也会有自己的PF值,蓝类将整个类参加运算,类中的元素共用一个PF值。设经聚类和分类后,类的序列为:C1′,C2′,…,Cjr′,Cjr+1′,Cjr+2′,…,Cη′,且红类为前jr个,所有红类中元素总个数的和为nr,属性PF值新的计算方法如式(3.10)~式(3.12)。
由式(3.10)~式(3.12)可以计算出表3.1中全部属性的PF值。计算记录的RPF时,对式(3.3)稍作变动,变为式(3.13),从先横向再纵向变到先纵向再横向。因为有大批属蓝类的属性有相同的PF值,式(3.3)的计算就可大大简化。
从聚类开始,经过前面的计算,可以得到每个属性的PF值和每个记录的RPF值。与第3.1节的构架不同的是,这里不需要p和pr来判断属性和记录的特异性,因为用户指定了λ,所以将PF从大到小排序,RPF从大到小排序,分别指定前λ×|D|个为特异的即可。
对于二维关系表的属性a1,a2,…,am的处理,与第3.1节类似。如果aj是表的主键,它是用来标识记录的,不需要计算其PF值;如果aj是表的外键,那么它是另一个表的主键,其PF值由那张表的RPF来确定;只有aj是表的一般属性时,才有必要计算其PF值。
对于不能区分等级的文本属性值,在聚类时可以简单地将具有相同值的聚为一类;计算类的CPF时,使用公式;计算两个值的距离时,按相同为0,不同为1的原则进行;计算属性PF时,只使用式(3.12)按类计算,其余的计算均可照常进行。
在使用式(3.13)计算整个记录的RPF(Xi)时,用户可以调节βj来控制各属性的权。为避免属性自身值的不平衡而给RPF造成的影响,计算RPF前应对属性的PF进行标准化(当然也可以采用将属性标准化的方法)。因为计算PF的标准差σ的时间复杂度是O(n2),可以采用式(3.14)来进行PF的标准化。其中,PFjmax和PFjmin分别是属性aj的PF值中的最大值和最小值。
根据新的构架,将特异计算过程总结为算法,称为CpecuFind算法,如图3.3所示。
图3.3 CpecuFind算法
有关数据挖掘算法及在视频分析中的应用的文章
Spark MLlib中的K-means算法使用Map分布式读取数据集,并存储在内存里。计算时,用Map键值对表示随机挑选出来的k个聚类中心,Spark的驱动器节点负责把数据发送到各个工作节点,以实现具体的计算任务。Spark MLlib不同于传统的机器学习工具,它提供了简单易用的API,特别是Spark能够高效地处理大数据,并且在迭代计算时具有较强的优势。......
2023-11-21
Zhong Ning等人提出了一种基于距离的全局特异数据挖掘的构架[101]。其中,Mj和σj分别代表aj所有PF值的均值和标准差。Pr=RPF均值+γ×RPF的标准差(3.4)可以看出,此构架是基于距离的,并且找到的特异数据是全局的。从式(3.1)得出,属性xij和xkj间的距离d是后续计算的基础。由前述可知,此构架可以处理各类属性值,并且可以处理多个相关数据集的特异挖掘问题。......
2023-06-16
聚类分析发现强相关的对象组,而特异检测发现不与其他对象强相关的对象。图3.8K-means聚类方法与CpecuFind发现特异数据能力ROC曲线K-means聚类;CpecuFind表3.6K-means与CpecuFind发现特异数据能力ROC曲线面积对比上述对比说明,只简单地以簇类大小和对象与类心距离来评估对象的特异程度结果很粗糙,其评价特异数据的能力远不如Cpecu Find方法。......
2023-06-16
RNN算法对标准层次聚类的合并准则和相似度度量做了相应的改进,从而降低了其复杂度,使其更适用于大规模的数据集。当合并最近邻对得到一个新的簇时,需要重新计算该簇与其他各个簇的相似度,如果通过平均值的距离来度量两个簇的距离,其计算复杂度仅为O,但是由于本书采用的是平均距离,则需要通过更为有效的方法进一步降低复杂度。对于低维数据,还可以通过更为有效的最近邻搜索技术进一步降低复杂度。......
2023-06-28
4)探查例外或特异数据。在数据集中,一些数据或对象与其中其他数据或对象显著不同,则称为特异数据或特异对象。在这些应用中,发现特异数据成为挖掘的目标。其中,基于统计的方法,主要是利用数据的分布特性计算特异数据的特征,采用不一致检验的方法挖掘数据。2)和3)的方法均从数据本身出发挖掘特异数据,本章将介绍基于密度的局部特异数据挖掘方法的思想和主要算法。......
2023-06-16
E.Knorr和R.Ng等在文献[109]中同时提出了一种基于网格构架的挖掘DB-outlier的方法。首先,全部的数据空间被分割成边长为l的网格。①如果Cx,y中的对象数>k,那么Cx,y中的所有对象均不是特异对象。M.M.Breuning等认为文献[106]中关注一个对象是否是特异的,而很多的应用中,给出一个对象的特异程度值更有意义。从[定义2.7]和[定义2.8]出发,M.M.Breuning等定义了一个度量对象p的特异程度的因子Local Outlier Factor,记为LOF[106]。......
2023-06-16
图9-4K-Means不适用的情况高斯混合模型具有比K-Means更好的灵活性。使用GMM,需要假设数据点是高斯分布,相对于环形的数据而言,这个假设的严格程度与均值相比弱很多。因此,每个高斯分布会被分配到单一的聚类簇。基于这些概率,我们为高斯分布计算了一组新的参数,这样就可以最大化集群中数据点的概率。......
2023-06-21
Mean-Shift聚类是一个基于滑窗的算法,其目的是尝试找到数据点密集的区域。算法9.2M ean-Shift聚类确定滑动窗口半径r,以随机选取的中心点为C、半径为r的圆形滑动窗口开始滑动。Mean-Shift聚类的优点如下:不同于K-Means算法,均值漂移聚类算法不需要知道有多少类/组。基于密度的算法相比于K-Means受均值影响较小。Mean-Shift聚类的缺点:窗口半径r的选择可能是不重要的。......
2023-06-21
相关推荐