欢迎访问CN论文网,主要提供代写硕士论文服务,以及了解代写硕士论文多少钱。网站地图

硕博执笔写作,后期辅助答辩

与国内800多家优秀期刊社合作

论文写作发表咨询热线18930620780
您当前的位置:CN论文网 > 软件工程硕士论文软件工程硕士论文

电商网站商品聚类分析中K-means算法的运用

发布时间:2019-05-07
  摘 要
  
  随着科技的进步,带给了人们很多便捷,现在的人们足不出户就可以在网上通过移动设备购买自己心仪的商品。但是,带给人们便捷的同时,也使我们处在了一个信息漫天飞的时代,我们想要从数据中找到有价值的数据真是难上加难。人们通常会使用聚类分析去对数据进行划分,这样很大程度地缩短了我们搜索信息的时间,K-means 算法就是其中比较常用的一种,但是 K-means 算法在处理一些特殊数据的时候还时常会暴露出其缺点。
  
  鉴于 k-means 算法存在的一些缺点,本文将从三个方面对 k-means 算法进行改进。(1)传统的 k-means 算法使用欧式距离去计算数据之间的差异性,(2)k-means 算法中 k 值的模糊性和主观性,(3)k-means 算法计算聚类中心不会去衡量类与类之间的联系,会被噪声数据影响且性能还不是很好。本文将采用改进的 k-means 算法去对数据集进行分类,改进后的算法将使用变异系数法去确定每个坐标的权重,以及通过人们比较认同的方式,对数据的坐标进行加权去验证上述变异系数法应用在计算数据之间距离的可行性。通过函数关系去确定 k值。通过计算类之间的距离,再去确定哪些类放在一起进行下一次聚类中心的计算。

电商网站商品聚类分析中K-means算法的运用
  
  使用变异系数法去计算数据之间的距离,能更加体现人们对于不同商品的侧重点,变异系数会通过科学的计算去计算出不同商品的每个变量的权重,从而使商品在聚类上达到最优的结果。通过函数关系去确认 K 值,这个函数是由类成员到各自中心点的距离和以及每个聚类中心到所有类成员中心(计算所有类成员的均值作为类成员中心)的距离和组成,当这个函数的值取到最小值时即:聚类最为合理,那么这个时候的 k 值就是理想的 k 值。优化寻找中心点的性能,主要是考虑了类与类之间可能存在的差异性比较大,那么对于差异性比较大的类不应该放在一起进行下一次中心点的计算,因为,差异性比较大,它们的中心点只会在它们类本身变化,而且这样做的好处就是,很大程度地减少了噪声数据对于正常数据的影响。
  
  关键字:   数据挖掘;聚类分析;k-means 算法;k 值;初始值。
  
  Abstract
  
  With the development of science and technology,it has brought a lot of convenience to people.Now people can purchase their favorite products online through mobile devices without leaving their homes.However,bringing convenience to people,at the same time it also puts us in an era of information explosionIt isdifficult for us to find valuable information form data.People usually use cluster analysis to divide the data, which greatly reduces the time we search information.The K-means algorithm is one of the more common ones,but the K-means algorithm deals with some special data. Sometimes it will expose its shortcomings.
  
  In view of the shortcomings of the k-means algorithm, the aim of the paper is to improve the k-means algorithm from three aspects:(1) The traditional k-meansalgorithm uses the Euclidean distance to calculate the difference between data, and (2) the k-value fuzziness and subjectivity of the k-means algorithm. (3) The k-means algorithm for calculating the cluster center does not measure the relationship between classes and classes, it is affected by noise data and performance is not very good. In this paper, the improved k-means algorithm will be used to classify the data. The improved K-means algorithm will use the coefficient of variation to determine the weight of each coordinate, and the weight of the data will be verified by the way people agree. The above coefficient of variation method is used to calculate the feasibility of the distance between data. The k value is determined by the functional relationship. By calculating the distance between classes, it is then determined which classes are put together for the next cluster center calculation. Using the method of variation coefficient to calculate the distance between the data, it can more embody the emphasis on different goods. The coefficient of variation will calculate the weight of each variable of the different commodity by scientific calculation, so that the product can reach the best result in the cluster. The K value is confirmed by the function relation, which is the distance sum from the class members to the respective center points and each cluster center to all class member centers (value of all class members as the class member center). When the value of the function is taken to the minimum, the clustering is the most reasonable,and the K value at this time is the ideal K value. In order to optimize the performance of the center point, it is mainly to consider the possibility that there may be a large difference between class and class. Then,the classes with larger differences should not be put together to calculate the next center point, because the difference is large and their center points will only change in their class itself,and the advantage of this is that it significantly reduces the impact of noise data on normal data.
  
  Keywords:  data mining;clustering analysis;k-means algorithm;K value;initial value。
  
  第 1 章 绪论。
  
  1.1 研究的目的和意义。

  
  随着社会的进步,人们生活水平的提高,人们越来越倾向于简单便捷的生活方式,尤其在信息爆炸的今天,想在网上购置一样自己真正需要的商品,真是难上加难。所以本文为了帮助用户在网上购置自己需要的商品,根据购买者的购物记录,以及浏览记录,给用户推荐他们最有可能需要或中意的商品。本文将采用聚类分析实现商品个性化推荐。
  
  随着社会高科技发展和现代人思维发散,商业模式越来越复杂化和数字化,在 2012 年阿里集团掌门人马云把数据定位为阿里未来的三大战略步骤之一,业内人士认为掌握大数据意味着掌握了更多的用户行为模式,就可以发掘出更多的商业价值[4]。所以说海量的数据是企业最重要的隐形资产之一,如何寻找数据的规律和信息,是未来的发展趋势。数据挖掘[1]就是这个时代的产物,它可以从大量的,无规则的,杂乱无章的数据中提取出或者挖掘出有用的,潜在的信息[2],而聚类分析作为数据挖掘的一个重要组成部分,它可以对一个数据集根据距离的不同或者数据之间的差异性进行分类。k-means 算法是聚类分析中最简单和最基础的聚类方法[3],所以 k-means 算法是聚类分析经常用到的一种算法。传统的k-means 算法虽然操作简单,理解容易,但是在处理一些“特殊”数据时也时常会暴露出致命的缺陷[4]。比如:在 k 值选取上具有模糊性和主观经验性,k 个初始中心点的随机选取对聚类结果有很大的影响。计算距离的方式一般采用欧氏距离进行计算,没有针对性,没有突出不同商品的侧重点。因为存在这些缺点,所以 k-means 算法只可以处理一些比较温和的数据集,应用场景比较单一。本文将会去改进其存在的一些问题,使其可以应用更多的场景。首先对计算数据之间距离的方式进行改进,本文将使用变异系数去计算数据变量的权重,这样的分类更加符合人们的分类方法。还有针对传统的 k-means 算法不会去计算类与类之间的关系,即使是类之间联系很小的数据还要放在一起进行下一次聚类中心的计算,这样会使得性能比较低。因为,类之间的联系比较小的数据,他们的数据中心只会在自身内部或者与其联系比较紧密的类之间变化。
  
  1.2 研究的历史和现状。
  
  数据挖掘是一门综合学科,被各个学者广泛研究并应用于管理学、医学、生物学等各个学科,在各个生活领域也得到了广泛的应用,如商业、体育、网络安全等领域都已经得到了有效的发展[6]。,作为数据挖掘比较重要的组成部分聚类分析,它是由 MacQueen[7]在 Cox[8]、Fisher[9]、Sebeslyendeng[10]等人的工作基础之上研究出来,并且通过了科学计算去验证其可行性。而 k-means 算法作为聚类分析比较常用的算法,就目前而言还没有得到很好的完善,但是人类在进步,人们总在试图去优化这个算法,使其可以适用于更多的场景,使其可以在聚类方面为人类做出更多的贡献。DBL[11]指数和 Dunn[12]指数是由 Davies-Bouldin 提出,这两个指数的诞生,很好地解决了 K-means 算法在收敛方面的不足,使一个类中的数据联系更加紧密。
  
  k 值选取对于聚类的结果影响很大,通过 K-means 去对数据集进行分类,如果 K 值选取比较离谱,那么就很难达到预期分类的效果。对于 k 值的选取,前人也是做了很多工作的如:MH[13]指数和 DB[11]指数的提出,这些指数函数是源于聚类函数的有效性,在这个基础之上李永森根据距离代价函数确定了准确 k值[14],提出了 k 值的确定可以通过距离代价函数。但是,此类函数也会受到噪声数据的影响,因此应用场景还是有限。
  
  对于初始中心点的选取,初始中心点的不同,不只是会导致聚类的结果不同[5],而且还会导致性能上比较差,正所谓一步错,步步错。所以初始中心点的选取不可以是随机的,需要通过科学的知识去确定。
  
  针对 K-means 算法存在的一些缺点,我们去加以完善,但是我们都只是一次性解决一个或者其两个缺点,而不能同时解决其存在的多个问题。这样的改进方式在一定程度上是可以使 k-means 算法比以前的应用场景更加广泛,但是,还是会对一些特殊数据处理不了。例如对于噪声数据,对于差异性比较大的数据集,也许多耗费很长的时间会得出一个聚类结果,但是没有去考虑类与类之间的联系,这将会使我们的工作更加繁琐。
  
  1.2.1 聚类分析的发展过程。
  
  聚类的基本概念是将一个数据集合分成几个簇(或组),使得划分到每个簇中的点彼此相似,但与其他簇(或组)中的点尽可能不相同[15]。聚类分析刚开始被定义的很极端,是一种“非此即彼”的方式来对一个数据或者事物进行划分。但是这种划分在现实生活中并不适用,因为这个世界除了科学计算是非黑即白的,其他领域或者事物都会因为侧重点的不同,对于同一个数据或者事物的评价也大相径庭。聚类通常作为一种无监督的学习过程,但是需要一套比较完善的评价体系来对你想要聚类的数据集进行划分[16]。目前对于正常数据即:差异性比较小且不存在噪声数据的划分通常有这几种划分如:K-平均[17],K-中心[18],CLARANS[19]等都是基于划分的聚类算法。
  
  BIRCH[20],CURE[21],CHAMELEON[22]等 都 是 基 于 层 次 的 聚 类 算 法 ,DBSCAN[23],OPTICS[24]等都是基于密度的聚类算法[32]。STING[29],CLIQUE 等都是基于网络的聚类算法。以上算法对于处理正常的数据无论是性能上还是结果上都能做到让人们满意。但是,一旦出现异常数据,这些没有进行优化的算法聚类出来的结果总是差强人意,并且在性能上还比较差,主要体现在聚类次数上。
  
  1.2.2 聚类分析。
  
  在电子商务中的应用研究现状电子商务,最早出现于美国克林顿政府于 1993 年的政府工作报告中对国家信息基础设施的描述[26],由于人们越来越倾向于在网上选购自己喜欢的商品。中国作为一个泱泱大国,使用网络去进行选购的人口比较众多,导致电子商务中存在着海量的数据。这些海量数据在人们搜索有价值的信息时,会让我们很多工作变得徒劳。而聚类分析就很好的解决了这一难题。它会将数据进行划分,差异性比较小的数据放在一起。这样无形中给人们在搜索信息时提供了便捷。
  
  但是,聚类分析还在不断地完善中,目前还没有哪种聚类分析算法可以对存在干扰数据的数据集进行很好的划分,因为针对不同的数据集干扰因素或者干扰因子是大相径庭的。就五大传统算法之一 K-means 算法而言,目前还是存在很多缺点,例如:初始中心点的选取、K 值的确定(不是根据人的主观意愿进行确认),噪声数据对其的影响,使得 K-means 算法只在处理比较正常的数据时能够达到人们的预期结果。鉴于此我们在聚类分析上还有许多工作要做。
  
  【由于本篇文章为硕士论文,如需全文请点击底部下载全文链接】
  
  1.3 论文结构和研究方法
  1.3.1 论文结构
  1.3.2 本文研究方法
  
  第 2 章 聚类和 k-means 算法基本知识
  
  2.1 聚类定义
  2.2 聚类的数据结构
  2.3 传统的 k-means 算法
  2.4 传统的 K-means 存在的缺点
  2.5 聚类评价和标准
  2.6 本章小结
  
  第 3 章 改进后的 k-means 算法及应用
  
  3.1 变异系数法确认权重
  3.1.1 变异系数法
  3.1.2 变异系数法加权欧式距离在电子商务中的应用
  3.2 本章小结
  
  第 4 章 对比改进后的 k-means 算法
  
  4.1 加权欧式距离性质
  4.2 证明改进算法的正确性
  4.3 本章小结
  
  第 5 章 具体的代码实现
  
  5.1 Bean 类
  5.2 具体实现类
  5.3 主类(main)
  5.4 本章小结
  
  第 6 章 k 值的确认和寻找中心点的性能优化
  
  6.1 问题的提出
  6.2 K 值的确定
  6.2.1 概念的定义
  6.2.2 优化 k 值的方法
  6.3 寻找中心点的性能优化
  6.3.1 问题提出
  6.3.2 具体做法
  6.3.3 修改后的算法流程
  6.3.4 核心代码及实验分析结果
  6.4 本章小结

  第 7 章 本文总结

  传统的 K-means 算法有着,简单、便捷的优点。但是,这个算法还存在一些缺点,目前只能处理比较温和的数据,对于数据比较特殊或者存在噪声数据的集合时,往往达不到理想的结果[50]。鉴于此本文重点针对传统的 k-means 算法存在的问题进行改进,以便可以将 k-means 尽可能多地应用到其他场景中去。传统的 k-means 算法在计算数据之间的距离时,使用的是欧式距离。但是,这种计算距离的方式没有考虑到不同的数据有着不同的特性,也就是没有考虑哪个变量对于数据更加重要。所以,本文采用变异系数去计算数据每个变量的权重,然后,再进行分类。本文为了证明上述做法的可行性,因此根据人们比较认同的一种方式去主观的给上述数据进行加权,然后,比较聚类结果的差异性。

  对于提高寻找聚类中心的性能,计算了类与类之间的联系,可以很好地排除噪声数据对于正常数据的影响,而且,进行下一次分类是通过判断,处于我们认为是联系比较紧密的正常数据,我们放在一起进行下一次遍历寻找聚类中心。

  对于确认 k 值,本文是用一个函数,来找出函数与 k 值的关系。因为,1)每个聚类中心到所有数据集的中心的距离和,2)每个类成员到各自聚类中心的距离和,因为这两个都是计算距离的,当这两个距离和为最小值,那么用于实验的数据集肯定完成了聚类,这个 k 值为最佳的 k 值。

  对于第五章的代码,加权系数是通过操作者手动输入的,所以,有太多的操作者的主观意识。希望后续对于改进 k-means 算法的研究者能够改进、优化此段代码。本文对于初始中心点的确认没有做出改进的地方,但是,初始的中心点从一定程度上影响着最终的聚类结果,所以希望后续对于改进 k-means 算法的研究者能够对于初始中心点的确定能够做出贡献!

  参考文献

点击下载全文