基于r语言多种聚类算法演示平台毕业设计论文管理资料.docx
- 文档编号:9406408
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:78
- 大小:850.37KB
基于r语言多种聚类算法演示平台毕业设计论文管理资料.docx
《基于r语言多种聚类算法演示平台毕业设计论文管理资料.docx》由会员分享,可在线阅读,更多相关《基于r语言多种聚类算法演示平台毕业设计论文管理资料.docx(78页珍藏版)》请在冰豆网上搜索。
基于r语言多种聚类算法演示平台毕业设计论文管理资料
本科毕业设计论文
题目:
基于R语言的多种聚类算法演示平台开发
作者姓名徐天宇
指导教师陈晋音教授
专业班级自动化1104
学院信息工程学院
提交日期2015年5月28日
浙江工业大学本科毕业设计论文
基于R语言的多种聚类算法演示平台开发
作者姓名:
徐天宇
指导教师:
陈晋音副教授
浙江工业大学信息工程学院
2015年6月
DissertationSubmittedtoZhejiangUniversityofTechnology
fortheDegreeofBachelor
ClusteringAlgorithmsDemonstrationPlatformbasedonRstudio
Student:
TianyuXu
Advisor:
JinyinChen
CollegeofInformationEngineering
ZhejiangUniversityofTechnology
June2015
浙江工业大学
本科生毕业设计(论文、创作)任务书
专业____自动化____班级____1104____学生姓名/学号徐天宇/201103120423__
一、设计(论文、创作)题目:
基于R语言的多种聚类算法演示平台
二、主要任务与目标:
基于R语言平台实现多种聚类算法,包括基于划分的聚类算法kmeans等,基于密度的聚类算法DBSCAN等,并设计实现各种算法的演示平台,可视化界面调用各个测试数据集,完成聚类并利用图和表等形式演示聚类效果。
三、主要内容与基本要求:
主要内容:
(1)分析现有聚类算法的分类及其代表算法,及其解决的关键问题分析;
(2)基于R语言的各种聚类算法的实现和性能演示;(3)实验验证模型及粒子群优化算法的有效性。
基本要求:
(1)分析现有聚类算法及其优缺点;
(2)自主设计基于R语言的各种聚类算法实现和调试;(3)编写程序实现交互式演示平台,完成各种聚类算法的性能比较和演示;(4)仿真实验利用UCI数据集验证平台对各个聚类算法的演示和效率评价。
四、计划进度:
(1)2014年12月至2015年2月:
完成文献调研、综述撰写和2篇外文文献翻译;
(2)2015年3月:
基于R语言的聚类算法开发和设计;(3)2015年4月:
编程实现前台可视化交互演示平台,并演示聚类算法的效率评价;(4)2015年5月:
完成实验总结并撰写毕业论文,准备答辩。
五、主要参考文献:
[1]ZhuQun,ZhangYu-Hong,HuXue-Gang,LiPei-Pei.Adouble-window-basedclassificationalgorithmforconceptdriftingdatastreams[J].ActaAutomaticaSinica,2011,37(9):
1077-1084[2]HassaniM,SpausP,GaberMM,SeidlT.Density-basedprojectedclusteringofdatastreams[J].In:
Proceedingofthe2012ScalableUncertaintymanagement,BerlinHeidelberg,Springer,2012311-324.[3]HuangDC,ShenXQ,LuYH.Doublek-nearestNeighborsofHeterogeneousDataStreamClusteringAlgorithm[J].JournalofComputerScienceandTechnology,2013,40(10):
226-230.[4]YangCY,ZhouJ.Aheterogeneousdatastreamclusteringalgorithm[J].ChineseJofComputers,2007,30(8):
1364-1371.[5]AggarwalCC,YuPS.Aframeworkforclusteringmassivetextandcategoricaldatastreams[J].In:
Proceedingofthe6thSIAMInternationalConferenceonDataMining.Bethesda,2006:
477-481.
任务书下发日期2014年12月26日
设计(论文、创作)工作自2015年12月26日至2015年6月8日
设计(论文、创作)指导教师
学科(方向)负责人
主管院长
基于R语言的多种聚类算法演示平台开发
摘要
聚类分析是模式识别、数据挖掘、机器学习中的很重要的一类方法,它是将数据集按照某种指导思想划分成一些簇的过程。
由于聚类问题的重要性,近50年提出了各种各样的算法,又因为聚类问题属于一个病态问题,聚类算法的效果和实际数据对象有很大的相关性,目前还没有一个算法可以很好的解决所有的聚类问题,不同的算法有各自不同的优缺点。
为了新算法的开发需要,以及为了解决特定聚类问题的需要,开发一个包含多种聚类算法的可演示可扩展的平台将非常有价值,本文利用R语言实现了包含6个典型聚类算法和7个典型数据集的聚类算法演示平台,主要工作如下:
(1)为了类比不同类型的聚类算法性能,本文实现了基于划分的k-means、AP算法、基于密度的DBSCAN,和基于层次的AGNES、基于粒子群的聚类算法以及先进的FDP算法。
(2)利用Rstudio公司开发的shiny包实现交互式演示平台,实现良好用户交互性,并对以上6种典型聚类算法和7个典型数据集展开聚类演示,动态比较聚类过程,并分析性能优劣。
(3)基于实现的聚类算法和演示平台,本文实现了基于聚类分析的NBA篮球运动员类型分类和球队球员结构分类的应用,验证了所实现聚类算法的有效性。
关键词:
聚类算法,演示平台,Rstudio,NBA球员聚类
THEDEVELOPMENTOFCLUSTERINGALGORITHMSDEMONSTRATIONPLATFORMBASEDONRSTUDIO
ABSTRACT
CluseringanalysisisonekindofimportantmethodsinPatternRecognition,DataMiningandMachineLeaning.Specifically,itisaprocessthatdividedatasetintoseveralclustersaccordingtosomeidea.Theresultsdivisionshouldmakedataobjectsinthesameclusterassimilaraspossiblebutdataobjectsindifferentclustersasdissimilaraspossible.IfwetaketheproposeofK-meansalgorithmasthestartofresearchclusteringanalysis,wehavestudieditfor50years.Inthepast50years,thousandsofalgorithmshavebeenproposedbecausetheimportanceofclusteringanalysis.Butthereisagreatcorrelationbetweentheperformanceofacluseringalgorithmsandclusteringdatasetsitselfbecauseitisaill-posedproblem.Itdoesnothaveanalgorithmcansolvealltheclusteringproblemswell.Eachclusteringalgorithmhasitsownprosandcons.Inordertodevelopnewalgorithmsandchoseaproperalgorithmtosolveaspecificproblem,developmentademonstrableandscalableplatformcanbeveryuseful.Thispaperachievesthatkindofplatformwith6typicalalgorithmsand7typicaldatasets.
Thefirstchapterofpaperintroducesthestudybackground,meaning,meansandframe.Thesecondchapterintroducesthealgorithmsusedintheclusteringalgorithmsdemonstrationplatform,includingtheK-means,affinitypropagationofpartitionningmethods,theDBSCANofdensity-basedmethod,theAGNESofhierarchicalmethods,PSObasedclusteringalgorithmandtheFDPalgorithmwhichispublishedonjournalSciencein2014.ThethirdchapterintroducestheimplementationofdemonstrableplatformwithshinydevelopedbyRstudioandcomparesthealgorithmsintroducedinthesecondchapter.ThefourthchapterintroducestheclassificationofNBAplayersbyclusteranalysis.Thefifthchaptersummarizesthepaperandgiveexpectation.
KeyWords:
clusteringanalysis,demonstrationplatform,Rstudio,NBAplayercluster
AGNES算法7
参考文献37
第1章绪论
聚类分析的背景
聚类分析的背景
随着传感和存储技术的进步以及像互联网搜索、数字成像、视频监控等技术应用的迅猛发展,产生了大量的数据,而且大部分的数据数字化的存储在电子介质中,这给自动化数据分析、分类和检索技术的发展提供了巨大的可能。
同时,不仅是可利用的数据的量大量增长,类型也增多了(文本、图像、视频),包括E-mail、博客、交易数据以及数以亿计的网页每天产生数TB的新数据,而且这类数据都是松散的。
数据数量和类别两方面的增长迫切需要自动理解、处理和概括数据的方法的进步。
数据分析方法可以概括为主要的两类:
(i)探索性的或描述性的,指研究者没有事先明确的模型或假设但是想理解数据的大体特征和结构。
(ii)验证性的或推理性的,指研究者想要验证适用于可用数据的假设/模型。
在模式识别中,数据分析设计预测建模:
给定一些训练数据,我们想要预测未知测试数据的行为。
这个任务也叫“学习”,通常分为两类(i)有监督的,(ii)无监督的。
第一种只涉及有标签的数据,而第二种只涉及无标签的数据[1]。
本文研究的聚类正属于无监督学习中很重要的一种,它可用于数据探索和描述。
聚类分析的定义
数据聚类或者说聚类分析的目标是发现一系列模式、点或者对象的天然的分组情况。
Webster(Merriam-Webster在线字典,2008)将聚类分析定义为“关于通过定量比较多重特性发现群体中的个体是否属于不同的组别的一种统计分类方法。
”
聚类的公式化描述:
数据集
中包含k个簇,簇数目k可能是先验已知的,也可能需要在聚类过程中确定,k个簇
需要满足如下条件:
a)
b)
c)
上述三个条件的含义是:
每个簇至少包含一个数据元素,任何一个数据元素属于且只属一个簇。
从集合论角度讲,聚类结果实际上是对集合D的一个划分。
当然这里不考虑模糊聚类,对于模糊聚类,一个数据元素可以属于多个簇,以隶属度加以区分。
聚类分析的一般过程
聚类分析的过程一般包括特征提取与选择、相似性度量、聚类算法、聚类有效性检验四个部分。
其中聚类有效性检验贯穿在整个聚类分析过程之中[2]。
如图2所示。
图1-1聚类分析的过程
特征提取与选择是聚类分析的基础,这又和具体用于解决的问题息息相关。
对于同样一组对象采用不同的特征聚类,结果可能是完全不同的,只有选择和提取合适的特征,聚类过程才能得到所需要的结果。
相似性度量是聚类分析的非常重要的基础。
选择不同的相似度度量方法,某种程度上决定了使用什么样的聚类算法。
常见的相似性度量主要是“距离”度量、角度度量和相关系数。
聚类算法的选择和使用是聚类分析的核心步骤,聚类算法以选择了特征之后的数据集、算法的参数为输入,以包含簇标的数据集为输出。
聚类算法的性能、聚类算法和问题的匹配程度某种程度上决定了整个聚类分析过程的成败。
聚类的有效性检验可以说是一种反馈机制,根据有效性检验结果,需要对聚类的其它三个环节进行调整,从而获得满足问题要求的聚类结果。
聚类分析的作用
聚类分析旨在无类别标签的训练样本条件下,根据数据本身的特征分布提炼出数据的内在的模式或结构。
总的来说它主要有三个作用[1-3]。
1)聚类本身是人类学习的一种重要方式。
在没有人指导的情况下,人类可以根据自己的实践经验总结,对不同的事物进行分门别类。
对于某些2维数据人类自己可以通过观察对其进行分类,但对于更高维数据人类就束手无策了。
借助聚类分析可以通过计算机运行一定算法对更高维数据进行分门别类,从而拓展人类对数据的认知。
2)有时获得数据的类别信息还不是人类的最终目的。
数据中的一些更深入的模式信息还需要进一步挖掘。
面对复杂的数据和问题,在聚类的结果上运用其它的数据挖掘技术,不仅可以提高其它挖掘方法的效率,而且可以提高其挖掘的可靠性。
3)聚类分析还可以用于孤立点的检测。
有时进行聚类分析不是为了将相似的对象聚集在一起,而是为了将某个异常的对象从数据集中分离出来。
比如可用于检测工业控制中由多个变量引起的异常[4]。
聚类算法的国内外发展现状
聚类分析的主要研究对象是聚类算法,也是本文研究的主要对象。
在过去的50多年,人们持续不断的研究聚类算法,提出和发表了大量的聚类算法,它大致的分类如图1所示[5]。
图1-2聚类算法分类[5]
由于聚类问题是一个病态问题,目前为止提出的包括以上算法在内的算法都只能解决一部分的聚类问题。
问题对象的改变,很多算法就不再适用,或者性能很差。
所有算法在可伸缩性、算法效率、处理不同类型属性的能力、发现任意形状的簇、输入参数数量最小化、初始敏感性、高维性、处理噪声能力、可解释性等方面存在或多或少的问题[6-7]。
聚类算法演示平台研究目的和意义
随着硬件产能的提升,传感器、存储器的大量应用,积累了大量的可用于数据分析的数据。
人们提出了各种各样的聚类问题,针对这些聚类问题,又相应的提出了各种各样的聚类算法。
一方面,这些算法都只能解决某一类问题,针对一个具体的聚类问题,人们面临大量的可选择的聚类算法,这往往令人无所适从,由此带来很大的工作量。
另一方面,开发一个新的聚类算法往往需要和已有的典型聚类算法进行比较。
开发一个可扩展其它算法,带有针对典型数据集的演示功能的聚类算法演示平台可以很好的解决这两个问题,势必给聚类问题的解决,聚类算法的研发带来很大的帮助。
本论文的主要工作就是基于R语言开发这样一个具有实用价值的多种聚类算法演示平台。
论文框架
论文第一章介绍聚类问题的背景与意义以及论文的目的和框架。
第二章主要介绍多种聚类算法演示平台用到的聚类算法,包括基于划分的k-means、AP算法、基于密度的DBSCAN、和基于层次的AGENS、基于粒子群的聚类算法以及发表在14年science杂志上的FDP算法。
第三章主要介绍利用Rstudio公司开发的shiny包实现交互式演示平台以及利用该平台对第二章提到的算法进行比较分析。
第四章介绍基于聚类分析的NBA篮球运动员位置分类。
第五章对本文的研究情况进行总结并展望。
聚类算法研究工具——R语言和Rstudio
R语言是一个有着强大统计分析及作图功能的软件系统,在GNU下免费发行,最先由RossIhaka和RobertGentleman共同创立,现在由R开发核心小组(RDevelopmentCoreTeam)维护,他们的开发完全出于自愿、工作努力负责,将全球优秀的统计应用软件打包提供给我们共享。
2014年用户成为成长最快的语言之一,已经在数据挖掘的各个领域得到成功应用。
R的开源免费和统计背景使得R和其它语言相比在处理数据、学习聚类方面有很大优势。
Rstudio是由Rstudio公司开发的R语言集成开发环境(IDE)。
它包括支持直接运行代码的控制台和语法高亮编辑器,以及用于画图、查看历史记录、调试和工作空间管理的工具。
它有商业版本和开源版本两个。
实测表明是一个用于R语言开发的极棒开发环境。
第2章多种聚类算法研究
本章介绍本文开发的多种聚类算法演示平台用到的六种聚类算法,包括基于划分的k-means算法、基于密度的DBSCAN算法、基于层次的AGNES算法、基于优化的粒子群聚类算法和分别在07年和14年发表在science杂志上的AP算法和FDP算法。
通过学习这些算法的相关文献,将它们总结如下。
k-means算法
k-means算法是典型的基于划分的聚类算法。
基于划分的方法在给定的含有n个数据对象的数据集上,构建k个划分,往往是首先创建一个初始划分,然后采用一种迭代重定位技术,尝试通过对象在划分间移动来不断改进划分。
在这个迭代过程中,k-means优化以下误差平方和准则函数作为改进目标。
假设n个样本
分为k类,对
和
,定义:
则矩阵
具有如下性质:
设
表示第j类中所包含的样本个数,则
设
表示第j类的中心,则
所以第j类的类内差异为
那么,整体类内差异(误差平方和准则)为
k-means算法的具体步骤如表2-1
表2-1k-means算法
⏹初始化:
随机选择k个数据元素作为k个簇的均值
⏹循环,直到k个均值都不再变化为止:
⏹输出
AP算法
AffinityPropagation(AP)聚类算法[8-9]是Frey等人2007提出的一种聚类算法,提出以来,一直受到研究领域的广泛关注。
从类型上看,它也是一种基于划分的算法。
AP算法本质上是一种基于因子图的信念传播和最大化算法。
它根据N个数据点之间的相似度进行聚类,这些相似度可以是对称的,即两个数据点互相之间相似度一样(如欧式距离);也可以是不对称的,即两个数据点互相之间的相似度不等。
这些相似度组成N×N的相似度矩阵S(其中N为N个数据点)。
可见AP算法对数据点之间相似度的度量非常的宽泛,不像kmeans一样仅使用欧式距离作为相似度度量。
但是本文聚类算法演示平台用到的AP算法仍然以欧式距离作为相似度度量方式。
AP算法事先不需要指定聚类数目,而是将所有数据点都作为潜在的聚类中心,称之为exemplar,并以S的对角线上的N个值
作为每个数据点能否成为聚类中心的评价标准,并称之为参考度(preference),数据点i参考度越大,成为聚类中心可能性越大。
参考度是AP算法用到的唯一一个人为参数,在没有先验知识的前提下,通常每个数据点的参考度相同,且根据相似度的分布取值,该参数的大小很大程度上影响了最终簇数目的多少,preference越大,簇数目越多。
AP算法中传递两种类型的消息:
从点i发送到候选聚类中心k的数值消息
和从候选聚类中心k发送到i的数值消息
。
这里
反映k点作为i点的聚类中心是否合适,而
反映i点选择k作为其聚类中心的意愿程度。
两者分别被称为吸引度和归属度。
和
越强,则k点作为聚类中心的可能性越大,AP算法通过迭代而不断地更新每个点的吸引度和归属度,直到产生m个高质量的exemplar,同时将其余的数据点分配到相应的簇中。
根据作者提供的matlab代码,AP算法的具体步骤如表2-2。
表2-2AP算法
⏹初始化:
先计算N个点之间的相似度值,构成矩阵S,选取preference(一般取S的均值);设置一个最大迭代次数,令
。
⏹循环,直到达到最大迭代次数或者聚类结果多次迭代不变:
⏹输出
的位置,把这些i作为聚类中心。
然后将其它点依次赋值给最近的聚类中心。
AGNES算法
AGNES(AgglomerativeNesting)算法是凝聚层次聚类算法。
基于层次的算法将数据对象组成一颗聚类的树,根据层次分解是自底向上生成还是自顶向下生成,层次的聚类方法可以分为凝聚的和分裂的。
由于分裂的层次聚类算法,复杂度高,可伸缩性差,本文选择更常用的凝聚聚类算法AGNES加入算法演示平台。
AGNES算法中心思想:
首先将每个样本看成一个簇,然后根据一定连接方式(是一种簇间相似度的衡量方式)将最相似的簇合成一个簇,这个过程迭代进行直到满足一定终止条件。
在这里首先介绍不同的连接方式下簇间相似度的度量方式。
(1)单连接
两个簇之间的距离由两个簇所有连接中最短的那个决定:
(2)全连接
两个簇之间的距离由两个簇所有连接中最长的那个决定:
(3)平均连接
两个簇之间的距离由两个簇的所有连接的平均长度决定:
在以上连接方式的基础上,给出AGNES算法如表2-3。
表2-3AGNES算法
⏹初始化:
每个样本作为一个单独的簇,
每个簇的样本数
计算任意两个样本之间的距离,构成相异度矩阵
,簇数目
。
⏹循环,直到聚类终止条件为止:
寻找距离矩阵D中上三角矩阵元素的最小值
删除簇
和
增加新的簇
根据单连接方式更新距离矩阵D
⏹输出:
剪枝后得到,簇
。
上述的终止条件可以是预定簇数目、距离阈值(因为越往后簇间的距离越大)、最优聚类(某种准则)。
本文的多种算法演示平台,以预定簇数目为终止条件。
DBSCAN算法
DBSCAN算法是典型的基于密度的聚类算法。
基于密度的聚类算法有不一样的聚类思路和相似度衡量方式,这样的相似度度量方式有利于发现各种形状的簇,其主要思想是以空间中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 语言 多种 算法 演示 平台 毕业设计 论文 管理 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)