一种集合聚集k-means法的数据库实现方法与流程

文档序号:37774326发布日期:2024-04-25 11:00阅读:9来源:国知局
一种集合聚集k-means法的数据库实现方法与流程

本发明属于数据库,具体涉及一种集合聚集k-means法的数据库实现方法。


背景技术:

1、k-means属于数据挖掘中聚类的一种方法。数据挖掘就是从大型数据库的数据中提取人们感兴趣的知识。这些知识是隐含的、事先未知的、潜在的、有用的信息。包括分类、关联、预测、聚类分析、趋势分析、偏差分析和相似性分析及结果的可视化。

2、其中的“聚类分析”(clustering?analysis)是根据事物的特征对其进行聚类或分类,通过聚类或分类可以发现其中的规律和模式。聚类或分类以后,样本数据就转化为类集。同一类的样本数据具有相似的变量值,不同类的样本数据的变量值不具有相似性。

3、k-means++只是对初始选取质心的步骤进行优化,其他无变化。简单来说就是尽量选择很不同的样本作为初始质心。

4、k-means法经典的应用案例就是对成百上千n维的样本进行聚合??梢越嗨频幕治桓龃?,不相似的划分为不同簇。对每一维进行数字化,最终会对应到欧式空间的点,通过点的距离进行聚合。

5、问题是:仍旧是同一类对象,只有一个属性,但这个属性是集合(相同元素组成一个集合),这些集合可能是离散的(比如一组geohash组成的集合,见“注1”),也可能是连续的(比如一个时间段组成的集合)。怎样衡量集合之间的相似性,从而进行聚合?

6、现有技术中,比较相似的有以下三篇论文:

7、1)一种结合jaccard距离度量的高效k-means文档聚类算法(an?efficient?k-means?algorithmintegrated?with?jaccard?distance?measure?for?documentclustering),拉哈娜.费尔多斯(raihana?ferdous),计算机科学硕士,特伦托大学,2009年首届亚洲喜马拉雅山国际互联网会议,2009年1月6日。

8、k-means法的第一步是要选择质心,一种流行的方法是随机选取样本中的k个点作为质心,但这一过程并不保证选取最大不同文档作为k-means的质心,这篇论文提出了方法,使用jaccard距离测量计算最相异的k个文件为k个聚类的质心,从而提升了聚类性能。

9、2)基于多维相似度和jaccard-kmeans聚类的可扩展新闻推荐;

10、吕梅莲、秦振、曹一鸣、刘志超、王梦星;

11、北京邮电大学网络与交换技术国家重点实验室,北京100876;

12、文档历史:2013年7月30日收到,2014年4月26日接受;

13、关键词:新闻推荐、相似度计算、聚类;

14、为了解决新闻推荐中的可扩展性问题,提出了一种可扩展的新闻推荐方法。该方法包括多维相似度计算、jaccard-k-means快速聚类。采用多维相似度计算方法计算用户间的综合相似度,综合考虑了新闻内容的内容特征、用户的行为以及这些行为发生的时间。该聚类方法首先计算上述多维相似度,然后利用各维度生成多个聚类中心,并根据内聚性对聚类结果进行评价。

15、3)k均值聚类与稳健聚类的比较研究;comparative?study?of?k-means?androbust?clustering;沙希.夏尔马,拉姆.拉尔.亚达夫;国际高级计算机研究杂志,第三卷,第三期,2013年9月。

16、本文首先研究了两种类型的聚类。第一类k-means聚类是分区聚类的一部分;第二类聚类稳健类聚类是层次聚类的一部分,该聚类使用jaccard系数代替距离度量,找到数据或文档的相似性进行聚类。显示了两者的比较,后者比前者更好。表明在有些情况下jaccard距离是很有效的武器。

17、注1:geohash:在地球上,通常人们使用一对经纬度坐标来表示一个点??梢岳斫鈍eohash是一种算法思想,就是把经纬度坐标,用一串数字字母串表示(数字0-9、26个字母去掉a、i、l、o,一共32个数字字母)。geohash的位数越多,表示的范围越小,位数越少,表示的范围越大。

18、现有技术只能处理同维度对象之间的聚合,这是因为它符合欧式空间的距离公式,可以很容易得到距离的度量。


技术实现思路

1、为了克服现有技术的不足,本发明提供了一种集合聚集k-means法的数据库实现方法,首先计算集合之间的距离;然后将业务表和距离表同步到oracle数据库,通过pl/sql编程来完成聚集,并与业务表关联得到最终结果。本发明方法能使得用户能够从大量繁杂的、无规律的数据中得到有规律的事实、知识,能够迅速聚焦目标,极大地提升了用户的工效。

2、本发明解决其技术问题所采用的技术方案如下:

3、步骤1:计算集合之间的距离;

4、集合是由元素组成的,元素不能重复;

5、用a表示集合,a的基数用|a|表示,|a|的含义在离散集合的情形下,是元素的个数,在一维连续集合的情形下,|a|是区间长度,对于时间区间来说,就是时长;

6、集合a、b的交集,用anb表示,是属于a且属于b的元素组成的集合;

7、集合a、b的并集,用aub表示,是属于a或属于b的元素组成的集合;

8、a与b之间的相似性,用jaccard相似性度量:

9、j_sim(a,b)=|anb|/|aub|

10、就是a与b的交集的基数除以a与b的并集的基数,j_sim(a,b)值在0与1之间;如果a、b完全相同,那么|anb|=|aub|,j_sim(a,b)=1,即:a、b完全相同,相似性为1,1就是完全相同;如果a、b没有相同元素,那么|anb|=0,j_sim(a,b)=0,即:a、b完全不同,相似性为0,0就是完全不同;

11、j_sim(a,b)越靠近1,表明a、b越相似;j_sim(a,b)越靠近0,表明a、b越不同;即a、b越相似,距离越??;a、b越不同,距离越大;

12、a与b之间的距离定义如下:

13、j_dist(a,b)=1-j_sim(a,b)

14、即:距离就是相似性对于1的补数;

15、步骤2:将业务表和距离表同步到oracle数据库,通过pl/sql编程来完成聚集,并与业务表关联得到最终结果;

16、将两两实体entity在特征feature下的集合属性set的距离同步到oracle,通过数据库的编程性,利用k-means的编程,完成聚合;

17、表tab_cm_k_means03存聚类的每一步结果;

18、表tab_cm_k_means_b、tab_cm_k_means_c、tab_cm_k_means_d存储中间的结果,将中间结果更新到tab_cm_k_means03中;

19、表tab_cm_sets_distance存储每两个样本之间的距离;

20、步骤2-1:表tab_cm_k_means03初始质心选择;

21、步骤2-2:将样本划归为不同的簇,存到临时表tab_cm_k_means_b中;

22、将其他非质心样本距离每个簇质心的距离,查询tab_cm_sets_distance表,按最近距离将其划归为那个簇;

23、步骤2-3:表tab_cm_k_means03样本所属簇的更新;

24、将tab_cm_k_means_b信息更新到tab_cm_k_means03;

25、步骤2-4:重新选择每一簇的质心,存到临时表tab_cm_k_means_c中;

26、在每个簇内,根据样本距离同一簇内其他样本距离的平方和的最小值,重新选择每一簇的质心;

27、步骤2-5:计算前后两次质心的距离及簇内代价函数,存到临时表tab_cm_k_means_d中;

28、步骤2-6:经过计算后对表tab_cm_k_means03质心置换,非随机选??;

29、步骤2-7:将样本划归为不同的簇,存到临时表tab_cm_k_means_b中;

30、将其他非质心样本距离每个簇质心的距离,查询tab_cm_sets_distance表,按最近距离将其划归为那个簇;

31、步骤2-8:表tab_cm_k_means03样本所属簇的更新;

32、将tab_cm_k_means_b信息更新到tab_cm_k_means03;

33、步骤2-9:重新选择每一簇的质心,存到临时表tab_cm_k_means_c中;

34、在每个簇内,根据样本距离同一簇内其他样本距离的平方和的最小值,重新选择每一簇的质心;

35、步骤2-10:计算前后两次质心的距离及代价函数,存到临时表tab_cm_k_means_d中;

36、步骤2-11:判断前后质心没发生变化或后次代价函数不小于前次代价函数,在步骤2-8得到的tab_cm_k_means03即为最终结果;否则重复步骤2-5到步骤2-10。

37、优选地,所述代价函数就是每个样本距离所属簇质心距离平方和;代价函数是总的代价函数,如果限制在簇的范围内,就是簇内代价函数;对于每个簇,计算簇内代价函数,再将所有簇的结果加起来就是总的代价函数;

38、代价函数的目标是最小化所有样本到其所在簇的质心的距离平方和,以使得聚类结果更准确和可靠。

39、本发明的有益效果如下:

40、本发明方法能使得用户能够从大量繁杂的、无规律的数据中得到有规律的事实、知识,能够迅速聚焦目标,极大地提升了用户的工效。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
imtoken助记词怎么填-imtoken钱包没有收益-imtoken矿工费太贵了-im钱包官网:token.im