欢迎来到天天文库
浏览记录
ID:27931456
大小:944.00 KB
页数:19页
时间:2018-12-07
《sas与聚类分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.1聚类分析介绍1.1基本概念聚类就是一种寻找数据之间一种内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作聚类。处于相同聚类中的数据实例彼此相同,处于不同聚类中的实例彼此不同。聚类技术通常又被称为无监督学习,因为与监督学习不同,在聚类中那些表示数据类别的分类或者分组信息是没有的。通过上述表述,我们可以把聚类定义为将数据集中在某些方面具有相似性的数据成员进行分类组织的过程。因此,聚类就是一些数据实例的集合,这个集合中的元素彼此相似,但是它们都与其他聚类中的元素不同。在聚类的相关文献中,一个数据实例有时又被称为对象,因为现实世界中的一个对象可以用数据实例来描述。同时
2、,它有时也被称作数据点(DataPoint),因为我们可以用维空间的一个点来表示数据实例,其中表示数据的属性个数。下图显示了一个二维数据集聚类过程,从该图中可以清楚地看到数据聚类过程。虽然通过目测可以十分清晰地发现隐藏在二维或者三维的数据集中的聚类,但是随着数据集维数的不断增加,就很难通过目测来观察甚至是不可能。 1.2算法概述目前在存在大量的聚类算法,算法的选择取决于数据的类型、聚类的目的和具体应用。大体上,主要的聚类算法分为几大类。-.. 聚类算法的目的是将数据对象自动的归入到相应的有意义的聚类中。追求较高的类内相似度和较低的类间相似度是聚类算法的指导原则。一个聚类算法的优劣可
3、以从以下几个方面来衡量:(1)可伸缩性:好的聚类算法可以处理包含大到几百万个对象的数据集;(2)处理不同类型属性的能力:许多算法是针对基于区间的数值属性而设计的,但是有些应用需要针对其它数据类型(如符号类型、二值类型等)进行处理;(3)发现任意形状的聚类:一个聚类可能是任意形状的,聚类算法不能局限于规则形状的聚类;(4)输入参数的最小化:要求用户输入重要的参数不仅加重了用户的负担,也使聚类的质量难以控制;(5)对输入顺序的不敏感:不能因为有不同的数据提交顺序而使聚类的结果不同;(6)高维性:一个数据集可能包含若干维或属性,一个好的聚类算法不能仅局限于处理二维或三维数据,而需要在高维空
4、间中发现有意义的聚类;(7)基于约束的聚类:在实际应用中要考虑很多约束条件,设计能够满足特定约束条件且具有较好聚类质量的算法也是一项重要的任务;-..(8)可解释性:聚类的结果应该是可理解的、可解释的,以及可用的。1.3聚类应用在商业上,聚类分析被用来发现不同的客户群,并且通过购买模式刻画不同的客户群的特征。聚类分析是细分市场的有效工具,同时也可用于研究消费者行为,寻找新的潜在市场、选择实验的市场,并作为多元分析的预处理。在生物上,聚类分析被用来动植物分类和对基因进行分类,获取对种群固有结构的认识。在地理上,聚类能够帮助在地球中被观察的数据库商趋于的相似性。在保险行业上,聚类分析通过
5、一个高的平均消费来鉴定汽车保险单持有者的分组,同时根据住宅类型,价值,地理位置来鉴定一个城市的房产分组。在因特网应用上,聚类分析被用来在网上进行文档归类来修复信息。在电子商务上,聚类分析在电子商务中网站建设数据挖掘中也是很重要的一个方面,通过分组聚类出具有相似浏览行为的客户,并分析客户的共同特征,可以更好的帮助电子商务的用户了解自己的客户,向客户提供更合适的服务。2kmeans算法2.1基本思想划分聚类算法是根据给定的个对象或者元组的数据集,构建个划分聚类的方法。每个划分即为一个聚簇,并且。该方法将数据划分为个组,每个组至少有一个对象,每个对象必须属于而且只能属于一个组。[1]该方法
6、的划分采用按照给定的个划分要求,先给出一个初始的划分,然后用迭代重定位技术,通过对象在划分之间的移动来改进划分。为达到划分的全局最优,划分的聚类可能会穷举所有可能的划分。但在实际操作中,往往采用比较流行的k-means算法或者k-median算法。2.2算法步骤k-means算法最为简单,实现比较容易。每个簇都是使用对象的平均值来表示。步骤一:将所有对象随机分配到个非空的簇中。步骤二:计算每个簇的平均值,并用该平均值代表相应的值。步骤三:根据每个对象与各个簇中心的距离,分配给最近的簇。-..步骤四:转到步骤二,重新计算每个簇的平均值。这个过程不断重复直到满足某个准则函数或者终止条件。
7、终止(收敛)条件可以是以下任何一个:没有(或者最小数目)数据点被重新分配给不同的聚类;没有(或者最小数目)聚类中心再发生变化;误差平方和(SSE)局部最小。 SASkmeans实现主要是通过procfastclus过程实现,示例如下: procimportdatafile="E:SAScars.txt"out=carsdbms=dlmreplace; delimiter='09'x; getnames=yes;run; procp
此文档下载收益归作者所有