CN105808581B - 一种数据聚类的方法、装置及Spark大数据平台 - Google Patents
一种数据聚类的方法、装置及Spark大数据平台 Download PDFInfo
- Publication number
- CN105808581B CN105808581B CN201410849327.6A CN201410849327A CN105808581B CN 105808581 B CN105808581 B CN 105808581B CN 201410849327 A CN201410849327 A CN 201410849327A CN 105808581 B CN105808581 B CN 105808581B
- Authority
- CN
- China
- Prior art keywords
- matrix
- clustering
- data
- cluster
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于数字电视技术领域,提供了一种数据聚类的方法、装置及Spark大数据平台,所述方法包括:根据奇异值分解法SVD将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,并存储所述第一矩阵、第二矩阵和第三矩阵;读取所述第一矩阵、所述第二矩阵和所述第三矩阵,并将所述第一矩阵、所述第二矩阵和所述第三矩阵相乘,得到所述矩阵A中的数据;利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。本发明,将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,这三个矩阵的面积之和远远小于矩阵A的面积,因此在存储矩阵A时,只需存储第一矩阵、第二矩阵和第三矩阵,可以节省硬盘空间,减少资源消耗。
Description
技术领域
本发明属于数字电视技术领域,尤其涉及一种数据聚类的方法、装置及Spark大数据平台。
背景技术
随着现代通信技术的飞速发展以及多媒体电视的逐步普及,数字电视已经成为广大家庭获取信息的主要途径。技术的变革使得我们每天可以获取大量的电视用户行为数据,同时也面临着两方面的挑战:一方面是需要对这些繁杂数据进行实时解析与高效存储;另一方面是如何基于数据挖掘洞悉用户行为进而产生更高的经济效益。
但传统的数据存储与数据挖掘方法在分析应用中存在着以下的缺陷:由于电视用户行为数据存在较多的关联矩阵,当用户量不断增长、节目不断增加时,传统存储数据的矩阵大小就会出现几何式的增长,会占用大量的硬盘空间,增加资源消耗。
发明内容
本发明实施例提供了一种数据聚类的方法、装置及Spark大数据平台,旨在解决现有技术提供的数据聚类方法,进行聚类处理的数据的数据量非常庞大,占用大量的硬盘空间,增加资源消耗的问题。
一方面,提供一种数据聚类的方法,所述方法包括:
根据奇异值分解法SVD将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,并存储所述第一矩阵、第二矩阵和第三矩阵;
读取所述第一矩阵、所述第二矩阵和所述第三矩阵,并将所述第一矩阵、所述第二矩阵和所述第三矩阵相乘,得到所述矩阵A中的数据;
利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
进一步地,所述利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树,包括:
利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
进一步地,所述利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树,包括:
应用K-均值聚类算法对所述矩阵A中的数据进行分类处理,生成K个约束类;
将每一个约束类作为一个数据集,应用凝聚层次聚类算法对每一个数据集进行分类处理,生成K颗子聚类树;
将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
进一步地,所述利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树,包括:
根据所述矩阵A中的数据,生成弹性分布式数据集RDD;
对所述RDD数据集进行处理,生成K个第三聚类中心;
根据所述K个第三聚类中心,应用K-均值聚类算法对所述RDD数据集中的数据进行分类处理,生成K个约束类;
将所述K个约束类平均分配至每个集群的工作节点进行单个约束类的层次聚类,生成K颗子聚类树;
将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
进一步地,所述对所述RDD数据集进行处理,生成K个第三聚类中心,包括:
步骤A、利用Map操作,计算所述RDD数据集中的数据与K个第一聚类中心的距离MapRDD;
步骤B、利用Reduce操作,对所述MapRDD进行处理,生成K个第二聚类中心;
步骤C、确定所述K个第二聚类中心与所述K个第一聚类中心之间的距离;
步骤D、若所述距离大于预设阈值,则用所述第二聚类中心替代所述第一聚类中心,返回步骤A,直至迭代形成K个第三聚类中心。
另一方面,提供一种数据聚类的装置,所述装置包括:
矩阵分解单元,用于根据奇异值分解法SVD将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,并存储所述第一矩阵、第二矩阵和第三矩阵;
数据获取单元,用于读取所述第一矩阵、所述第二矩阵和所述第三矩阵,并将所述第一矩阵、所述第二矩阵和所述第三矩阵相乘,得到所述矩阵A中的数据;
聚类处理单元,用于利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
进一步地,所述聚类处理单元利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
进一步地,所述聚类处理单元,包括:
第一约束类生成模块,用于应用K-均值聚类算法对所述矩阵A中的数据进行分类处理,生成K个约束类;
第一子聚类树生成模块,用于将每一个约束类作为一个数据集,应用凝聚层次聚类算法对每一个数据集进行分类处理,生成K颗子聚类树;
第一聚类树生成模块,用于将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
进一步地,所述聚类处理单元,包括:
RDD数据集生成模块,用于根据所述矩阵A中的数据,生成弹性分布式数据集RDD;
第三聚类中心生成模块,用于对所述RDD数据集进行处理,生成K个第三聚类中心;
第二约束类生成模块,用于根据所述K个第三聚类中心,应用K-均值聚类算法对所述RDD数据集中的数据进行分类处理,生成K个约束类;
第二子聚类树生成模块,用于将所述K个约束类平均分配至每个集群的工作节点进行单个约束类的层次聚类,生成K颗子聚类树;
第二聚类树生成模块,用于将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
进一步地,所述第三聚类中心生成模块,包括:
第一距离确定子模块,用于利用Map操作,计算所述RDD数据集中的数据与K个第一聚类中心的距离MapRDD;
第二中心确定子模块,用于利用Reduce操作,对所述MapRDD进行处理,生成K个第二聚类中心;
第二距离确定子模块,用于确定所述K个第二聚类中心与K个第一聚类中心之间的距离;
第三中心确定子模块,用于若所述第二距离确定子模块确定的距离大于预设阈值,则用所述第二聚类中心替代所述第一聚类中心,并返回调用所述第一距离确定子模块,直至迭代形成K个第三聚类中心。
再一方面,提供一种Spark大数据平台,所述Spark大数据平台包括如上所述的数据聚类的装置。
在本发明实施例,将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,这三个矩阵的面积之和远远小于矩阵A的面积,因此在存储矩阵A时,只需存储第一矩阵、第二矩阵和第三矩阵,可以节省硬盘空间,减少资源消耗。后续,在对矩阵A进行聚类处理时,可以将三个矩阵相乘,得到三者之积,对三者之积进行聚类处理,以对数据进行分类,洞悉用户的行为,挖掘不同用户的内在价值,为后续的实时推荐与营销活动提供支撑。
附图说明
图1是本发明实施例一提供的数据聚类的方法的实现流程图;
图2是本发明实施例一提供的基于K-均值优化的层次聚类并行算法的执行过程示意图;
图3是本发明实施例二提供的数据聚类的装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,先根据奇异值分解法SVD将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,并存储所述第一矩阵、第二矩阵和第三矩阵;再读取所述第一矩阵、所述第二矩阵和所述第三矩阵,并将所述第一矩阵、所述第二矩阵和所述第三矩阵相乘,得到所述矩阵A中的数据;最后利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
以下结合具体实施例对本发明的实现进行详细描述:
实施例一
图1示出了本发明实施例一提供的数据聚类的方法的实现流程,详述如下:
在步骤S101中,根据奇异值分解法SVD将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,并存储所述第一矩阵、第二矩阵和第三矩阵。
在本发明实施例中,矩阵A中存储的是电视用户行为数据。
电视用户行为主要是指用户在观看电视过程中所呈现出来的规律,可以用某些特征量的统计值或特征量的关联关系定量或定性表示,每天的用户日志信息解析后会存在比较多的用户行为关联矩阵。
下面举例简单说明如下:首先,用矩阵A来表示一百万电视用户与五万部电影之间的关联性,在这个矩阵中每一行对应一个用户,每一列对应一部电影。
在矩阵A中,m=1,000,000,n=50,000;第i行,第j列的元素表示的是第i个用户观看第j个电影的时长(或其它处理加权值)。可以发现这个矩阵非常大,即有500亿个元素。
根据奇异值分解法SVD,可以得到下述全等公式:
Am*n=Um*n∑r*rVn*r
其中,U为左奇异向量单位正交矩阵,∑为奇异值对角阵,V为右奇异向量单位正交矩阵,r为矩阵A的秩(Rank),r<=n。
奇异值与矩阵特征值类似,在矩阵Σ中也是从大到小排列,而且奇异值的衰减速度特别快,在很多情况下,前10%甚至1%的奇异值的和占了全部的奇异值之和的99%以上了。也就是说,可以用前d大的奇异值来近似描述矩阵(这里取d=100,即前100个大奇异值),因此可以将矩阵A近似分解成三个小矩阵相乘,如下式所示:
A1,000,000*50,000≈U1,000,000*100∑100*100V50,000*100
其中,矩阵U为一百万乘以一百,矩阵∑为一百乘一百,矩阵V为五万乘以一百。这三个矩阵的面积之和(在存储观点来说,矩阵面积越小,存储量越小,三个矩阵的元素总数加起来总计为1.05亿,仅仅为矩阵A的五百分之一)要远远小于原始的矩阵A,如果想要压缩空间来表示原矩阵A,只需存储这三个矩阵:U、Σ、V就可以了。而且这三个矩阵都有非常清晰的物理含义:
第一个矩阵U中的每一行表示相关的一类电影,其中每个非零的元素表示的是这类电影中每个电影的重要性(相关性),数值越大越相关。
第二个矩阵∑表示用户与电影之间的相关性。
第三个矩阵V中的每一列表示同一电影中的一类用户,其中每个元素表示每个用户之间的相关性。
将矩阵A分解为矩阵U、矩阵∑和矩阵V后,存储矩阵U、矩阵∑和矩阵V在Spark大数据平台中。
在步骤S102中,读取所述第一矩阵、所述第二矩阵和所述第三矩阵,并将所述第一矩阵、所述第二矩阵和所述第三矩阵相乘,得到所述矩阵A中的数据。
在本发明实施例中,若需要对矩阵A中的数据进行分类处理,则Spark大数据平台先从自身的存储介质中读取矩阵U、矩阵∑和矩阵V,并将矩阵U、矩阵∑和矩阵V相乘,得到矩阵A中的数据。
在步骤S103中,利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
在本发明实施例中,利用聚类算法对步骤S102中计算得到的矩阵A中的数据进行分类处理,得到一颗聚类树。
具体的,可以采用传统的层次聚类算法对矩阵A中的数据进行分类处理,得到一颗聚类树。
层次聚类算法是一种常用的数据聚类的方法,但应用存在一定局限性。一方面,由于其算法使用距离矩阵,所以它的时间和空间复杂性都很高,数据量较大时会导致计算量几何式增加;另一方面,当它一旦一组对象合并后,它已做的处理便不能撤消和更改,如果某一步没有很好的进行合并,则可能会导致低质量的聚类效果。
优选地,在本发明实施例中,利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
具体的,所述利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树,包括以下步骤:
步骤1、应用K-均值聚类算法对所述矩阵A中的数据进行分类处理,生成K个约束类。
步骤2、将每一个约束类作为一个数据集,应用凝聚层次聚类算法对每一个数据集进行分类处理,生成K颗子聚类树;
步骤3、将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理的优点在于:既可以因使用K-均值聚类算法从数据集的全局特征得益,又可以从凝聚层次聚类算法所使用的局部特征得益。
上述两个问题的具体优化原理如下:
1)、首先K-均值聚类算法效率很高,基于K-均值聚类算法生成的约束类,再做凝聚层级聚类,可以降低凝聚层次聚类算法的算法复杂度,基于K-均值优化的层次聚类方法的聚类效率会较传统的凝聚层次聚类算法有比较大的提升。
2)、在生成约束类的过程中,由于K-均值聚类算法在计算中不断进行迭代,对于某一次分类错误的数据点会进行重新计算与分类,可以纠正某一次迭代中所出现的聚类错误,因此基于约束类的凝聚层次聚类算法可以避免低质量聚类的出现。
由于经典的数据聚类算法都是单机环境下的,当要处理的数据是海量数据时,不能很好的完成数据挖掘任务,所以需要将数据挖掘和其它技术结合实现挖掘算法的并行化,利用多机的资源,提高挖掘任务的效率。
优选地,在本发明实施例中,采用基于K-均值优化的层次聚类并行算法对矩阵A中的数据进行分类处理,得到一颗聚类树。
图2示出了基于K-均值优化的层次聚类并行算法的执行过程,其中,图2中示出的聚类中心为本发明实施例中的第一聚类中心,图2中示出的新的聚类中心为本发明实施例中的第二聚类中心。
具体的,基于K-均值优化的层次聚类并行算法包括以下实现步骤,:
步骤11、根据所述矩阵A中的数据,生成弹性分布式数据集RDD。
Spark大数据平台从分布式文件中读取矩阵U、矩阵∑和矩阵V,并将矩阵U、矩阵∑和矩阵V相乘,得到矩阵A中的数据,并根据所述矩阵A中的数据,生成弹性分布式数据集(Resilient Distributed Datasets,RDD)。
步骤12、对所述RDD数据集进行处理,生成K个第三聚类中心。
具体的,Spark大数据平台根据以下步骤对RDD数据集进行处理,生成K个第三聚类中心:
步骤21、利用Map操作,计算所述RDD数据集中的数据与K个第一聚类中心的距离MapRDD。
其中,所述K个第一聚类中心是随机从矩阵A中的数据抽取出的K个数据,将所述K个数据作为初始聚类中心。
步骤22、利用Reduce操作,对所述MapRDD进行处理,生成K个第二聚类中心。
步骤23、确定所述K个第二聚类中心与K个第一聚类中心之间的距离。
步骤24、若所述距离大于预设阈值,则用所述第二聚类中心替代所述第一聚类中心,返回步骤A,直至迭代形成K个第三聚类中心。
步骤13、根据所述K个第三聚类中心,应用K-均值聚类算法对所述RDD数据集中的数据进行分类处理,生成K个约束类。
步骤14、将所述K个约束类平均分配至每个集群的工作节点进行单个约束类的层次聚类,生成K颗子聚类树。
步骤15、将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
本实施例,将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,这三个矩阵的面积之和远远小于矩阵A的面积,因此在存储矩阵A时,只需存储第一矩阵、第二矩阵和第三矩阵,可以节省硬盘空间,减少资源消耗。后续,在对矩阵A进行聚类处理时,可以将三个矩阵相乘,得到三者之积,对三者之积进行聚类处理,以对数据进行分类,洞悉用户的行为,挖掘不同用户的内在价值,为后续的实时推荐与营销活动提供支撑。
另外,可以利用基于K-均值优化的层次聚类方法对矩阵A中的数据进行分类处理,既可以因使用K-均值聚类算法从数据集的全局特征得益,又可以从凝聚层次聚类算法所使用的局部特征得益,极大地提高了聚类质量。
此外,还可以基于K-均值优化的层次聚类并行算法对矩阵A中的数据进行分类处理,可以充分的利用多机资源,提高挖掘任务的效率。
本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
实施例二
图3示出了本发明实施例二提供的数据聚类的装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该数据聚类的装置可以是内置于Spark大数据平台中的软件单元、硬件单元或者软硬件结合的单元,该数据聚类的装置3包括:矩阵分解单元31、数据获取单元32和聚类处理单元33。
其中,矩阵分解单元31,用于根据奇异值分解法SVD将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,并存储所述第一矩阵、第二矩阵和第三矩阵;
数据获取单元32,用于读取所述第一矩阵、所述第二矩阵和所述第三矩阵,并将所述第一矩阵、所述第二矩阵和所述第三矩阵相乘,得到所述矩阵A中的数据;
聚类处理单元33,用于利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
具体的,所述聚类处理单元33利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
具体的,所述聚类处理单元33包括:
第一约束类生成模块,用于应用K-均值聚类算法对所述矩阵A中的数据进行分类处理,生成K个约束类;
第一子聚类树生成模块,用于将每一个约束类作为一个数据集,应用凝聚层次聚类算法对每一个数据集进行分类处理,生成K颗子聚类树;
第一聚类树生成模块,用于将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
具体的,所述聚类处理单元33包括:
RDD数据集生成模块,用于根据所述矩阵A中的数据,生成弹性分布式数据集RDD;
第三聚类中心生成模块,用于对所述RDD数据集进行处理,生成K个第三聚类中心;
第二约束类生成模块,用于根据所述K个第三聚类中心,应用K-均值聚类算法对所述RDD数据集中的数据进行分类处理,生成K个约束类;
第二子聚类树生成模块,用于将所述K个约束类平均分配至每个集群的工作节点进行单个约束类的层次聚类,生成K颗子聚类树;
第二聚类树生成模块,用于将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
具体的,所述第三聚类中心生成模块包括:
第一距离确定子模块,用于利用Map操作,计算所述RDD数据集中的数据与K个第一聚类中心的距离MapRDD;
第二中心确定子模块,用于利用Reduce操作,对所述MapRDD进行处理,生成K个第二聚类中心;
第二距离确定子模块,用于确定所述K个第二聚类中心与K个第一聚类中心之间的距离;
第三中心确定子模块,用于若所述第二距离确定子模块确定的距离大于预设阈值,则用所述第二聚类中心替代所述第一聚类中心,并返回调用所述第一距离确定子模块,直至迭代形成K个第三聚类中心。
本发明实施例提供的数据聚类的装置3可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种数据聚类的方法,所述方法用于对数字电视用户行为数据进行存储及分析,其特征在于,所述方法包括:
根据奇异值分解法SVD将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,并存储所述第一矩阵、第二矩阵和第三矩阵;并将所述第一矩阵、所述第二矩阵和所述第三矩阵存储于Spark大数据平台;
所述矩阵A存储电视用户行为数据;其中,所述矩阵A中每一行对应于一个用户,每一列对应于一部电影,且在所述矩阵A中第i行、第j列的元素表示第i个用户观看第j部电影的时长;
所述第一矩阵中的每行数据表示相关的一类电影;
所述第二矩阵表示用户与电影之间的相关性;
所述第三矩阵中每一列表示同一电影中的一类用户,其中每个元素表示每个用户之间的相关性;
读取所述第一矩阵、所述第二矩阵和所述第三矩阵,并将所述第一矩阵、所述第二矩阵和所述第三矩阵相乘,得到所述矩阵A中的数据;
利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树;
所述利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树,包括:
根据所述矩阵A中的数据,生成弹性分布式数据集RDD;
对所述RDD数据集进行处理,生成K个第三聚类中心;
根据所述K个第三聚类中心,应用K-均值聚类算法对所述RDD数据集中的数据进行分类处理,生成K个约束类;
将所述K个约束类平均分配至每个集群的工作节点进行单个约束类的层次聚类,生成K颗子聚类树;
将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
2.如权利要求1所述的方法,其特征在于,所述利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树,包括:
利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
3.如权利要求2所述的方法,其特征在于,所述利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树,包括:
应用K-均值聚类算法对所述矩阵A中的数据进行分类处理,生成K个约束类;
将每一个约束类作为一个数据集,应用凝聚层次聚类算法对每一个数据集进行分类处理,生成K颗子聚类树;
将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
4.如权利要求1所述的方法,其特征在于,所述对所述RDD数据集进行处理,生成K个第三聚类中心,包括:
步骤A、利用Map操作,计算所述RDD数据集中的数据与K个第一聚类中心的距离MapRDD;
步骤B、利用Reduce操作,对所述MapRDD进行处理,生成K个第二聚类中心;
步骤C、确定所述K个第二聚类中心与所述K个第一聚类中心之间的距离;
步骤D、若所述距离大于预设阈值,则用所述第二聚类中心替代所述第一聚类中心,返回步骤A,直至迭代形成K个第三聚类中心。
5.一种数据聚类的装置,所述装置用于对数字电视用户行为数据进行存储及分析,其特征在于,所述装置包括:
矩阵分解单元,用于根据奇异值分解法SVD将矩阵A分解成第一矩阵、第二矩阵和第三矩阵,并存储所述第一矩阵、第二矩阵和第三矩阵;并将所述第一矩阵、所述第二矩阵和所述第三矩阵存储于Spark大数据平台;
所述矩阵A存储电视用户行为数据;其中,所述矩阵A中每一行对应于一个用户,每一列对应于一部电影,且在所述矩阵A中第i行、第j列的元素表示第i个用户观看第j部电影的时长;
所述第一矩阵中的每行数据表示相关的一类电影;
所述第二矩阵表示用户与电影之间的相关性;
所述第三矩阵中每一列表示同一电影中的一类用户,其中每个元素表示每个用户之间的相关性;
数据获取单元,用于读取所述第一矩阵、所述第二矩阵和所述第三矩阵,并将所述第一矩阵、所述第二矩阵和所述第三矩阵相乘,得到所述矩阵A中的数据;
聚类处理单元,用于利用聚类算法对所述矩阵A中的数据进行分类处理,得到一颗聚类树;
所述聚类处理单元,包括:
RDD数据集生成模块,用于根据所述矩阵A中的数据,生成弹性分布式数据集RDD;
第三聚类中心生成模块,用于对所述RDD数据集进行处理,生成K个第三聚类中心;
第二约束类生成模块,用于根据所述K个第三聚类中心,应用K-均值聚类算法对所述RDD数据集中的数据进行分类处理,生成K个约束类;
第二子聚类树生成模块,用于将所述K个约束类平均分配至每个集群的工作节点进行单个约束类的层次聚类,生成K颗子聚类树;
第二聚类树生成模块,用于将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
6.如权利要求5所述的装置,其特征在于,所述聚类处理单元利用基于K-均值优化的层次聚类方法对所述矩阵A中的数据进行分类处理,得到一颗聚类树。
7.如权利要求6所述的装置,其特征在于,所述聚类处理单元,包括:
第一约束类生成模块,用于应用K-均值聚类算法对所述矩阵A中的数据进行分类处理,生成K个约束类;
第一子聚类树生成模块,用于将每一个约束类作为一个数据集,应用凝聚层次聚类算法对每一个数据集进行分类处理,生成K颗子聚类树;
第一聚类树生成模块,用于将所述K颗子聚类树作为聚类处理所产生的中间类,再应用凝聚层次聚类算法将所述K颗子聚类树合并成一颗聚类树。
8.如权利要求5所述的装置,其特征在于,所述第三聚类中心生成模块,包括:
第一距离确定子模块,用于利用Map操作,计算所述RDD数据集中的数据与K个第一聚类中心的距离MapRDD;
第二中心确定子模块,用于利用Reduce操作,对所述MapRDD进行处理,生成K个第二聚类中心;
第二距离确定子模块,用于确定所述K个第二聚类中心与K个第一聚类中心之间的距离;
第三中心确定子模块,用于若所述第二距离确定子模块确定的距离大于预设阈值,则用所述第二聚类中心替代所述第一聚类中心,并返回调用所述第一距离确定子模块,直至迭代形成K个第三聚类中心。
9.一种Spark大数据平台,其特征在于,所述Spark大数据平台包括如权利要求5至8任意一项所述的数据聚类的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410849327.6A CN105808581B (zh) | 2014-12-30 | 2014-12-30 | 一种数据聚类的方法、装置及Spark大数据平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410849327.6A CN105808581B (zh) | 2014-12-30 | 2014-12-30 | 一种数据聚类的方法、装置及Spark大数据平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808581A CN105808581A (zh) | 2016-07-27 |
CN105808581B true CN105808581B (zh) | 2020-05-01 |
Family
ID=56420425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410849327.6A Active CN105808581B (zh) | 2014-12-30 | 2014-12-30 | 一种数据聚类的方法、装置及Spark大数据平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808581B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354574A (zh) * | 2016-08-30 | 2017-01-25 | 浪潮(北京)电子信息产业有限公司 | 一种用于大数据K‑Mean聚类算法的加速系统和方法 |
CN106570173B (zh) * | 2016-11-09 | 2020-09-29 | 重庆邮电大学 | 一种基于Spark的高维稀疏文本数据聚类方法 |
CN106650799B (zh) * | 2016-12-08 | 2019-05-31 | 重庆邮电大学 | 一种电子证据分类提取方法及系统 |
CN106932184A (zh) * | 2017-03-15 | 2017-07-07 | 国网四川省电力公司广安供电公司 | 一种基于改进层次聚类的变压器故障诊断方法 |
CN109033084B (zh) * | 2018-07-26 | 2022-10-28 | 国信优易数据股份有限公司 | 一种语义层次树构建方法以及装置 |
CN111897888A (zh) * | 2020-08-17 | 2020-11-06 | 国网辽宁省电力有限公司沈阳供电公司 | 基于Spark框架和凝聚层次聚类算法的户变关系识别方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103389966A (zh) * | 2012-05-09 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 一种海量数据的处理、搜索、推荐方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003290537A1 (en) * | 2002-10-24 | 2004-05-13 | Duke University | Binary prediction tree modeling with many predictors and its uses in clinical and genomic applications |
-
2014
- 2014-12-30 CN CN201410849327.6A patent/CN105808581B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103389966A (zh) * | 2012-05-09 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 一种海量数据的处理、搜索、推荐方法及装置 |
Non-Patent Citations (1)
Title |
---|
Clustering Datasets With Singular Value Decomposition;Emmeline;《UMI数据库 查理斯顿大学研究生院硕士毕业论文》;20081130;第6-7页、17-19页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105808581A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808581B (zh) | 一种数据聚类的方法、装置及Spark大数据平台 | |
CN107292186B (zh) | 一种基于随机森林的模型训练方法和装置 | |
Li et al. | Unsupervised streaming feature selection in social media | |
US8849798B2 (en) | Sampling analysis of search queries | |
CN110941598A (zh) | 一种数据去重方法、装置、终端及存储介质 | |
CN112395500A (zh) | 内容数据推荐方法、装置、计算机设备及存储介质 | |
CN107247753B (zh) | 一种相似用户选取方法及装置 | |
CN110647995A (zh) | 规则训练方法、装置、设备及存储介质 | |
CN111177559A (zh) | 文旅服务推荐方法、装置、电子设备及存储介质 | |
US20160189171A1 (en) | Analysing topics in social networks | |
CN111611323A (zh) | 一种面向数据融合的迭代结构化多视图子空间聚类方法,设备及可读存储介质 | |
CN103095849A (zh) | 基于QoS属性预测和纠错的有监督Web服务发现方法及系统 | |
CN110472659B (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 | |
CN110264311B (zh) | 一种基于深度学习的商业推广信息精准推荐方法及系统 | |
CN117725437B (zh) | 一种基于机器学习的数据精准匹配分析方法 | |
CN113159211B (zh) | 用于相似图像检索的方法、计算设备和计算机存储介质 | |
CN106557483B (zh) | 一种数据处理、数据查询方法及设备 | |
CN109815736A (zh) | 一种数据库脱敏方法、装置及脱敏设备 | |
JP2001101227A (ja) | 文書分類装置および文書分類方法 | |
Gialampoukidis et al. | Probabilistic density-based estimation of the number of clusters using the DBSCAN-martingale process | |
CN116957041A (zh) | 压缩神经网络模型的方法、装置和计算设备 | |
WO2022213662A1 (zh) | 应用推荐方法、系统、终端以及存储介质 | |
US20220066988A1 (en) | Hash suppression | |
AKGÜL et al. | Forecasting TV ratings of Turkish television series using a two-level machinelearning framework | |
CN110866605B (zh) | 数据模型训练方法、装置、电子设备及可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |