首页 基于R语言多种聚类算法演示平台毕业设计论文

基于R语言多种聚类算法演示平台毕业设计论文

举报
开通vip

基于R语言多种聚类算法演示平台毕业设计论文 本科毕业论文格式要求一、论文的结构与要求毕业设计(论文)包括以下内容(按顺序):本科论文包括封面、目录、标题、内容摘要、关键词、正文、注释、参考文献等部分。如果需要,可以在正文前加“引言”,在参考文献后加“后记”。论文一律要求打印,不得手写。1.目录目录应独立成页,包括论文中全部章、节和主要级次的标题和所在页码。2.论文标题论文标题应当简短、明确,有概括性。论文标题应能体现论文的核心内容、法学专业的特点。论文标题不得超过25个汉字,不得设置副标题,不得使用标点符号,可以分二行书写。论文标题用词必须规范,不得使用缩...

基于R语言多种聚类算法演示平台毕业设计论文
本科 毕业论文 毕业论文答辩ppt模板下载毕业论文ppt模板下载毕业论文ppt下载关于药学专业毕业论文临床本科毕业论文下载 格式要求一、论文的结构与要求毕业设计(论文)包括以下内容(按顺序):本科论文包括封面、目录、标题、内容摘要、关键词、正文、注释、参考文献等部分。如果需要,可以在正文前加“引言”,在参考文献后加“后记”。论文一律要求打印,不得手写。1.目录目录应独立成页,包括论文中全部章、节和主要级次的标题和所在页码。2.论文标题论文标题应当简短、明确,有概括性。论文标题应能体现论文的核心内容、法学专业的特点。论文标题不得超过25个汉字,不得设置副标题,不得使用标点符号,可以分二行书写。论文标题用词必须 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ,不得使用缩略语或外文缩写词(通用缩写除外,比如WTO等)。3.内容摘要内容摘要应扼要叙述论文的主要内容、特点,文字精练,是一篇具有独立性和完整性的短文,包括主要成果和结论性意见。摘要中不应使用公式、图表,不标注引用文献编号,并应避免将摘要撰写成目录式的内容介绍。内容摘要一般为200个汉字左右。4.关键词关键词是供检索用的主题词条,应采用能够覆盖论文主要内容的通用专业术语(参照相应的专业术语标准),一般列举3——5个,按照词条的外延层次从大到小排列,并应出现在内容摘要中。5.正文正文一般包括绪论(引论)、本论和结论等部分。正文字数本科不少于6000字,专科一般不少于5000字,正文必须从页首开始。*绪论(引论)全文的开始部分,不编写章节号。一般包括对写作目的、意义的说明,对所研究问题的认识并提出问题。*本论是全文的核心部分,应结构合理,层次清晰,重点突出,文字通顺简练。*结论是对主要成果的归纳,要突出创新点,以简练的文字对所做的主要工作进行评价。结论一般不超过500个汉字。正文一级及以下子标题格式如下:一、;(一);1.;(1);①。6.注释注释是对所创造的名词术语的解释或对引文出处的说明。注释采用脚注形式,用带圈数字表示序号,如注①、注②等,数量不少于10个,脚注少于10个的论文为不合格论文。7.参考文献参考文献是论文的不可缺少的组成部分,是作者在写作过程中使用过的文章、著作名录。参考文献应以近期发表或出版的与法学专业密切相关的学术著作和学术期刊文献为主,数量不少于6篇,参考文献少于6篇的论文成绩评定为不合格。产品说明、技术标准、未公开出版或发表的研究论文等不列为参考文献,有确需说明的可以在后记中予以说明。二、打印装订要求论文必须使用标准A4打印纸打印,一律左侧装订,并至少印制3份。页面上、下边距各2.5厘米,左右边距各2.2厘米,并按论文装订顺序要求如下:1.封面封面包括《广西广播电视大学关于毕业设计(论文)评审表》(封面、附录4)、《学生毕业设计(论文)评审表》(封2)、《广西广播电视大学关于毕业设计(论文)答辩申报表》(封3、附录5)。 2.目录目录列至论文正文的三级及以上标题所在页码,内容打印要求与正文相同。目录页不设页码。3.内容摘要摘要标题按照正文一级子标题要求处理,摘要内容按照正文要求处理。4.关键词索引关键词与内容摘要同处一页,位于内容摘要之后,另起一行并以“关键词:”开头(采用黑体),后跟3~5个关键词(采用宋体),词间空1字,即两个字节,其他要求同正文。5.正文正文必须从内容提要页开始,并设置为第1页。页码在页末居中打印,其他要求同正文(如正文第5页格式为“―5―”)。论文标题为标准三号黑体字,居中,单倍行间距;论文一级子标题为标准四号黑体字,居中,20磅行间距;正文一律使用标准小四号宋体字,段落开头空两个字,行间距为固定值20磅;正文中的插图应与文字紧密配合,文图相符,内容正确,绘制规范。插图按章编号并置于插图的正下方,插图不命名,如第二章的第三个插图序号为“图2—3”,插图序号使用标准五号宋体字;正文中的插表不加左右边线。插表按章编号并置于插表的左上方,插表不命名,如第二章的第三个插表序号为“表2—3”,插表序号使用标准五号宋体字。6、 参考文献按照GB7714—87《文后参考文献著录规则》规定的格式打印,内容打印要求与论文正文相同。参考文献从页首开始,格式如下:(1)著作图书文献序号 作者 《书名》,出版地:出版者,出版年份及版次(第一版省略)如:[4] 劳凯声 《教育法论》,南京:江苏教育出版社,2001(2)译著图书文献序号 作者 《书名》,出版地:出版者,出版年份及版次(第一版省略)(3)学术刊物文献序号 作者 《文章名》,《学术刊物名》,年卷(期)如:[5]周汉华 《变法模式与中国立法法》,《中国社会科学》,2000(1)(4)学术会议文献序号 作者 《文章名》,编者名,会议名称,会议地址,年份,出版地,出版者,出版年(5)学位论文类参考文献序号 作者 《学位论文题目》,学校和学位论文级别,答辩年份(6)西文文献著录格式同中文,实词的首字母大写,其余小写。参考文献作者人数较多者只列前三名,中间用逗号分隔,多于三人的后面加“等”字(西文加“etc.”)。学术会议若出版论文集者,在会议名称后加“论文集”字样;未出版论文集者省去“出版者”、“出版年”项;会议地址与出版地相同的省略“出版地”,会议年份与出版年相同的省略“出版年”。三、毕业设计(论文)装袋要求毕业设计(论文)是专业教学的重要内容,必须规范管理,统一毕业设计(论文)材料装袋要求:1、论文稿本。经指导的提纲,一稿、二稿和装订好的正稿。2、过程记录表。包括指导教师指导记录表,学生毕业设计(论文)评审表(答辩过程记录表)等;3、相关材料。法专业要求的其他材料,如法学社会调查 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 等。中国环境教育立法研究内容摘要摘要:目前,我国学术界对环境教育立法问题的研究还处于起步阶段,有关环境教育的法律规范也很不完善,影响和限制了我国环境教育的大力推行和良好普及,实质上是制约了我国解决环境问题的能力和可持续发展的进程。本文从环境问题的现状入手,阐释了环境教育立法的必要性和可行性,介绍了其他国家和地区的环境教育立法实践,在总结国内外先进经验的基础上,提出了对我国环境教育立法的构想。以期通过加强教育立法的途径,实现我国环境教育的普及,为改善解决我国环境问题的能力和可持续发展的进程创造条件。关键词:环境问题环境教育环境教育立法 一、环境问题、环境教育与环境教育立法(一)环境问题马克思说:“人靠自然界生活,这就是说,自然界是为了不致死亡而必须不断与之交往。所谓人的肉体生活和精神生活同自然界相联系,也就等于说自然界同自身相联系,因为人是自然界的一部分。” 生存与发展是人类社会最基本的主题。在人类与环境不断地相互影响和作用中,环境问题始终是伴随着人类的活动产生和发展的。不幸的是,在相当长的时期内,人类过分强调了作为自然主人的一面,夸大了人的主观能动性作用,忽视甚至忘却自然界的惩罚。环境问题并非始于今日,早在200年前的第一次工业革命时期就产生了环境问题。到了本世纪50年代,环境事件不断出现和加剧。到了70~80年代则出现了全球性的环境危机。目前全球人口正以每年9 000万的速度增长,预计到21世纪中期,世界人口将达到100亿。 人口无节制地增长,给地球的生态环境和有限的自然资源带来了沉重的压力。联合国列出了威胁人类生存的全球十大环境问题:全球气候变暖;臭氧层的损耗和破坏;酸雨蔓延;水资源危机;生物多样性减少;大气污染;有毒有害化学物质污染与危险废物越境转移;森林面积锐减;土地荒漠化;海洋污染。随着我国社会经济的迅速发展,环境保护与经济发展之间的矛盾日益凸显。20世纪最后几年有三件震撼国人的大事足以说明我国环境问题的严重性,已显示出环境破坏给人类带来的灾难性的报复。一是1997年创纪录(227天)的黄河断流;二是1998年的长江大水灾;三是2000年波及北京等地的频繁的沙尘暴。专家指出了目前困扰中国环境的十大问题。1、大气污染问题2004年我国二氧化硫排放量为1 995万吨,居世界第一位。据专家测算,要满足全国天气的环境容量要求,二氧化硫排放量要在现有基础上至少削减40%。此外,2004年中国烟尘排放量为1 165万吨,工业粉尘的排放量为1 092万吨。大气污染是中国目前面临的第一大环境问题。2、水环境污染问题中国七大水系的污染程度依次是:辽河、海河、淮河、黄河、松花江、珠江、长江,其中,42%的水质超过3类标准(不能做饮用水源),全国有36%的城市河段为劣质5类水质,丧失使用功能。大型淡水湖泊(水库)和城市湖泊水质普遍较差,75%以上的湖泊富营养化加剧,主要由氮、磷污染引起。3、垃圾处理问题中国全国工业固体废物年产生量达8.2亿吨,综合利用率约为46%。全国城市生活垃圾年产生量为1.4亿吨,达到无害化处理要求的不到10%。塑料包装物和农膜导致的白色污染已蔓延全国各地。(二)环境教育与环境问题的关系1、环境教育的发展历程环境教育的起源,一直可以追溯到19世纪末20世纪初的自然研究(Natural Study)。当时在学校开展自然研究的基本目的是教育学生通过亲身观察和参与,了解和评价自然环境。到20世纪上叶,人们认识到保护生态和自然环境的重要性,保护运动(Conservation movement)在社会中形成,学校教育在自然研究的基础上引入了自然保护的教育内容,这就是环境教育的萌芽。(1)国外环境教育的发展历程1972年在瑞典首都斯德哥尔摩召开的“世界人类环境会议”是环境教育发展的一个里程碑。为了响应斯德哥尔摩会议的第96条建议,联合国教科文组织和联合国环境规划署于1975年颁布了国际环境教育计划(IEEP),其目的是在环境教育领域内,促进经验和信息的交流、研究和实验、人员培训、课程和相应教材的开发及国际合作。1975年,在前南斯拉夫的贝尔格莱德召开的国际环境教育会议,通过了《贝尔格莱德宪章:环境教育的全球纲领》。该宪章根据环境教育的性质和目标,指出环境教育是“进一步认识和关心经济、社会、政治和生态在城乡地区的相互依赖性;为每一个人提供获得保护环境的知识和价值观、态度、责任感和技能;创造个人、群体和整个社会行为的新模式。”此后,《贝尔格莱德宪章》成为世界各国制定环境教育纲要与章程的重要依据之一。而环境教育的普及对环境相关法律的立法、执法都可起到相当大的辅助作用。大力开展环境教育,使环境意识特别是环境保护法律意识深入人心,使人们认识到环境问题不仅是社会问题,更是可以涉及到每个人切身利益和法律责任、社会责任的问题,认识到环境问题和法律责任的关系,更好地使环境保护法律成为预防环境问题发生的利剑,这样可以达到依法治理环境和人们自觉保护环境的目的。二、中国环境教育立法的必要性和可行性(一)中国环境教育立法的必要性当一种社会关系需要用立法来调整,说明这种社会关系的重要性。中国环境教育专门立法是否必要,则完全取决于以下前提:(1)环境教育的重要性;(2)环境教育立法对社会经济发展的重要作用。五、结论21世纪是环境世纪,公众的环境意识通过环境教育来建立。根据我国人口多,地区经济水平差异大,公民受教育程度不一的现状,要使公众的环境保护意识提高到一个比较高的水平,实现社会——经济——环境的协调发展,尽早达到国家的可持续发展目标,构建和谐社会,通过立法机关制定完善的、具有可操作性的《环境教育法》不失为一个有效的方法。希望对促进我国环境教育法律体系的建立提供一些有益的参考。 本科毕业设计论文 题目:基于R语言的多种聚类算法演示平台开发 Dissertation Submitted to Zhejiang University of Technology for the Degree of Bachelor Clustering Algorithms Demonstration Platform based on Rstudio Student: Tianyu Xu Advisor: Jinyin Chen College of Information Engineering Zhejiang University of Technology June 2015 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 3)其它 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 本科生毕业设计(论文、创作)任务书 专 业____自动化____ 班 级____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]Zhu Qun, Zhang Yu-Hong, Hu Xue-Gang, Li Pei-Pei. A double-window-based classification algorithm for concept drifting data streams [J]. Acta Automatica Sinica, 2011, 37(9):1077-1084 [2]Hassani M, Spaus P, Gaber M M, Seidl T. Density-based projected clustering of data streams [J]. In: Proceeding of the 2012 Scalable Uncertainty management, Berlin Heidelberg, Springer, 2012 311-324. [3] Huang D C, Shen X Q, Lu Y H. Double k-nearest Neighbors of Heterogeneous Data Stream Clustering Algorithm [J]. Journal of Computer Science and Technology, 2013, 40(10):226-230. [4] Yang C Y, Zhou J. A heterogeneous data stream clustering algorithm [J]. Chinese J of Computers, 2007, 30(8):1364-1371. [5] Aggarwal C C, Yu P S. A framework for clustering massive text and categorical data streams [J]. In: Proceeding of the 6th SIAM International Conference on Data Mining. 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球员聚类 THE DEVELOPMENT OF CLUSTERING ALGORITHMS DEMONSTRATION PLATFORM BASED ON RSTUDIO ABSTRACT Clusering analysis is one kind of important methods in Pattern Recognition, Data Mining and Machine Leaning. Specifically, it is a process that divide dataset into several clusters according to some idea. The results division should make data objects in the same cluster as similar as possible but data objects in different clusters as dissimilar as possible. If we take the propose of K-means algorithm as the start of research clustering analysis, we have studied it for 50 years. In the past 50 years, thousands of algorithms have been proposed because the importance of clustering analysis. But there is a great correlation between the performance of a clusering algorithms and clustering datasets itself because it is a ill-posed problem. It does not have an algorithm can solve all the clustering problems well. Each clustering algorithm has its own pros and cons. In order to develop new algorithms and chose a proper algorithm to solve a specific problem, development a demonstrable and scalable platform can be very useful. This paper achieves that kind of platform with 6 typical algorithms and 7 typical datasets. The first chapter of paper introduces the study background, meaning, means and frame. The second chapter introduces the algorithms used in the clustering algorithms demonstration platform, including the K-means, affinity propagation of partitionning methods, the DBSCAN of density-based method, the AGNES of hierarchical methods,PSO based clustering algorithm and the FDP algorithm which is published on journal Science in 2014. The third chapter introduces the implementation of demonstrable platform with shiny developed by Rstudio and compares the algorithms introduced in the second chapter. The fourth chapter introduces the classification of NBA players by cluster analysis. The fifth chapter summarizes the paper and give expectation. Key Words: clustering analysis, demonstration platform, Rstudio, NBA player cluster 目 录 I摘 要 IIABSTRACT 5第1章 绪 论 51.1 聚类分析的背景 51.1.1 聚类分析的背景 51.1.2 聚类分析的定义 21.1.3 聚类分析的一般过程 21.1.4 聚类分析的作用 31.2 聚类算法的国内外发展现状 41.3 聚类算法演示平台研究目的和意义 41.4 论文框架 41.5 聚类算法研究工具——R语言和Rstudio 5第2章 多种聚类算法研究 52.1 k-means算法 62.2 AP算法 72.3 AGNES算法 82.4 DBSCAN算法 102.5 FDP算法 112.6 粒子群聚类算法 13第3章 多种聚类算法演示平台实现 133.1 需求分析 133.2 概要设计 133.3 详细设计 133.3.1 shiny包简介 143.3.2 数据集的选择与实现 163.3.3 聚类结果评价及实现 173.3.4 多种聚类算法R语言实现 193.3 演示平台实现结果 203.4 结合演示平台对多种聚类算法的比较 27第4章 基于聚类分析的篮球运动员分类研究 274.1 研究背景 274.2 球员聚类分析 324.3 实际球队分析 35第5章 总 结 37参 考 文 献 39附 录 56致 谢 第1章 绪 论 1.1 聚类分析的背景 1.1.1 聚类分析的背景 随着传感和存储技术的进步以及像互联网搜索、数字成像、视频监控等技术应用的迅猛发展,产生了大量的数据,而且大部分的数据数字化的存储在电子介质中,这给自动化数据分析、分类和检索技术的发展提供了巨大的可能。同时,不仅是可利用的数据的量大量增长,类型也增多了(文本、图像、视频),包括E-mail、博客、交易数据以及数以亿计的网页每天产生数TB的新数据,而且这类数据都是松散的。数据数量和类别两方面的增长迫切需要自动理解、处理和概括数据的方法的进步。数据分析方法可以概括为主要的两类:(i)探索性的或描述性的,指研究者没有事先明确的模型或假设但是想理解数据的大体特征和结构。(ii)验证性的或推理性的,指研究者想要验证适用于可用数据的假设/模型。在模式识别中,数据分析设计预测建模:给定一些训练数据,我们想要预测未知测试数据的行为。这个任务也叫“学习”,通常分为两类(i)有监督的,(ii)无监督的。第一种只涉及有标签的数据,而第二种只涉及无标签的数据[1]。本文研究的聚类正属于无监督学习中很重要的一种,它可用于数据探索和描述。 1.1.2 聚类分析的定义 数据聚类或者说聚类分析的目标是发现一系列模式、点或者对象的天然的分组情况。Webster(Merriam-Webster 在线字典,2008)将聚类分析定义为“关于通过定量比较多重特性发现群体中的个体是否属于不同的组别的一种统计分类方法。” 聚类的公式化描述:数据集 中包含k个簇,簇数目k可能是先验已知的,也可能需要在聚类过程中确定,k个簇 需要满足如下条件: a) b) c) 上述三个条件的含义是:每个簇至少包含一个数据元素,任何一个数据元素属于且只属一个簇。从集合论角度讲,聚类结果实际上是对集合D的一个划分。当然这里不考虑模糊聚类,对于模糊聚类,一个数据元素可以属于多个簇,以隶属度加以区分。 1.1.3 聚类分析的一般过程 聚类分析的过程一般包括特征提取与选择、相似性度量、聚类算法、聚类有效性检验四个部分。其中聚类有效性检验贯穿在整个聚类分析过程之中[2]。如图2所示。 图1-1 聚类分析的过程 特征提取与选择是聚类分析的基础,这又和具体用于解决的问题息息相关。对于同样一组对象采用不同的特征聚类,结果可能是完全不同的,只有选择和提取合适的特征,聚类过程才能得到所需要的结果。相似性度量是聚类分析的非常重要的基础。选择不同的相似度度量方法,某种程度上决定了使用什么样的聚类算法。常见的相似性度量主要是“距离”度量、角度度量和相关系数。聚类算法的选择和使用是聚类分析的核心步骤,聚类算法以选择了特征之后的数据集、算法的参数为输入,以包含簇标的数据集为输出。聚类算法的性能、聚类算法和问题的匹配程度某种程度上决定了整个聚类分析过程的成败。聚类的有效性检验可以说是一种反馈机制,根据有效性检验结果,需要对聚类的其它三个环节进行调整,从而获得满足问题要求的聚类结果。 1.1.4 聚类分析的作用 聚类分析旨在无类别标签的训练样本条件下,根据数据本身的特征分布提炼出数据的内在的模式或结构。总的来说它主要有三个作用[1-3]。 1) 聚类本身是人类学习的一种重要方式。在没有人指导的情况下,人类可以根据自己的实践经验总结,对不同的事物进行分门别类。对于某些2维数据人类自己可以通过观察对其进行分类,但对于更高维数据人类就束手无策了。借助聚类分析可以通过计算机运行一定算法对更高维数据进行分门别类,从而拓展人类对数据的认知。 2) 有时获得数据的类别信息还不是人类的最终目的。数据中的一些更深入的模式信息还需要进一步挖掘。面对复杂的数据和问题,在聚类的结果上运用其它的数据挖掘技术,不仅可以提高其它挖掘方法的效率,而且可以提高其挖掘的可靠性。 3) 聚类分析还可以用于孤立点的检测。有时进行聚类分析不是为了将相似的对象聚集在一起,而是为了将某个异常的对象从数据集中分离出来。比如可用于检测工业控制中由多个变量引起的异常[4]。 1.2 聚类算法的国内外发展现状 聚类分析的主要研究对象是聚类算法,也是本文研究的主要对象。在过去的50多年,人们持续不断的研究聚类算法,提出和发表了大量的聚类算法,它大致的分类如图1所示[5]。 图1-2 聚类算法分类[5] 由于聚类问题是一个病态问题,目前为止提出的包括以上算法在内的算法都只能解决一部分的聚类问题。问题对象的改变,很多算法就不再适用,或者性能很差。所有算法在可伸缩性、算法效率、处理不同类型属性的能力、发现任意形状的簇、输入参数数量最小化、初始敏感性、高维性、处理噪声能力、可解释性等方面存在或多或少的问题[6-7]。 1.3 聚类算法演示平台研究目的和意义 随着硬件产能的提升,传感器、存储器的大量应用,积累了大量的可用于数据分析的数据。人们提出了各种各样的聚类问题,针对这些聚类问题,又相应的提出了各种各样的聚类算法。一方面,这些算法都只能解决某一类问题,针对一个具体的聚类问题,人们面临大量的可选择的聚类算法,这往往令人无所适从,由此带来很大的工作量。另一方面,开发一个新的聚类算法往往需要和已有的典型聚类算法进行比较。开发一个可扩展其它算法,带有针对典型数据集的演示功能的聚类算法演示平台可以很好的解决这两个问题,势必给聚类问题的解决,聚类算法的研发带来很大的帮助。本论文的主要工作就是基于R语言开发这样一个具有实用价值的多种聚类算法演示平台。 1.4 论文框架 论文第一章介绍聚类问题的背景与意义以及论文的目的和框架。第二章主要介绍多种聚类算法演示平台用到的聚类算法,包括基于划分的k-means、AP算法、基于密度的DBSCAN、和基于层次的AGENS、基于粒子群的聚类算法以及发表在14年science杂志上的FDP算法。第三章主要介绍利用Rstudio公司开发的shiny包实现交互式演示平台以及利用该平台对第二章提到的算法进行比较分析。第四章介绍基于聚类分析的NBA篮球运动员位置分类。第五章对本文的研究情况进行总结并展望。 1.5 聚类算法研究工具——R语言和Rstudio R语言是一个有着强大统计分析及作图功能的软件系统,在GNU下免费发行,最先由Ross Ihaka和Robert Gentleman共同创立,现在由R开发核心小组(R Development Core Team)维护,他们的开发完全出于自愿、工作努力负责,将全球优秀的统计应用软件打包提供给我们共享。2014年用户成为成长最快的语言之一,已经在数据挖掘的各个领域得到成功应用。R的开源免费和统计背景使得R和其它语言相比在处理数据、学习聚类方面有很大优势。 Rstudio是由Rstudio公司开发的R语言集成开发环境(IDE)。它包括支持直接运行代码的控制台和语法高亮编辑器,以及用于画图、查看历史记录、调试和工作空间管理的工具。它有商业版本和开源版本两个。实测表明是一个用于R语言开发的极棒开发环境。 第2章 多种聚类算法研究 本章介绍本文开发的多种聚类算法演示平台用到的六种聚类算法,包括基于划分的k-means算法、基于密度的DBSCAN算法、基于层次的AGNES算法、基于优化的粒子群聚类算法和分别在07年和14年发表在science杂志上的AP算法和FDP算法。通过学习这些算法的相关文献,将它们总结如下。 2.1 k-means算法 k-means算法是典型的基于划分的聚类算法。基于划分的方法在给定的含有n个数据对象的数据集上,构建k个划分,往往是首先创建一个初始划分,然后采用一种迭代重定位技术,尝试通过对象在划分间移动来不断改进划分。在这个迭代过程中,k-means优化以下误差平方和准则函数作为改进目标。 假设n个样本 分为k类,对 和 ,定义: MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-1) 则矩阵 具有如下性质: 设 表示第j类中所包含的样本个数,则 设 表示第j类的中心,则 MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-2) 所以第j类的类内差异为 那么,整体类内差异(误差平方和准则)为 MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-3) k-means算法的具体步骤如表2-1 表2-1 k-means算法 · 初始化:随机选择k个数据元素作为k个簇的均值 · 循环,直到k个均值都不再变化为止: · 输出 2.2 AP算法 Affinity Propagation (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-2 AP算法 · 初始化:先计算N个点之间的相似度值,构成矩阵S,选取preference(一般取S的均值) ;设置一个最大迭代次数,令 。 · 循环,直到达到最大迭代次数或者聚类结果多次迭代不变: · 输出 的位置,把这些i作为聚类中心。然后将其它点依次赋值给最近的聚类中心。 2.3 AGNES算法 AGNES(Agglomerative Nesting)算法是凝聚层次聚类算法。基于层次的算法将数据对象组成一颗聚类的树,根据层次分解是自底向上生成还是自顶向下生成,层次的聚类方法可以分为凝聚的和分裂的。由于分裂的层次聚类算法,复杂度高,可伸缩性差,本文选择更常用的凝聚聚类算法AGNES加入算法演示平台。 AGNES算法中心思想:首先将每个样本看成一个簇,然后根据一定连接方式(是一种簇间相似度的衡量方式)将最相似的簇合成一个簇,这个过程迭代进行直到满足一定终止条件。在这里首先介绍不同的连接方式下簇间相似度的度量方式。 (1)单连接 两个簇之间的距离由两个簇所有连接中最短的那个决定: MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-4) (2)全连接 两个簇之间的距离由两个簇所有连接中最长的那个决定: MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-5) (3)平均连接 两个簇之间的距离由两个簇的所有连接的平均长度决定: MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-6) 在以上连接方式的基础上,给出AGNES算法如表2-3。 表2-3 AGNES算法 · 初始化:每个样本作为一个单独的簇, 每个簇的样本数 计算任意两个样本之间的距离,构成相异度矩阵 ,簇数目 。 · 循环,直到聚类终止条件为止: 寻找距离矩阵D中上三角矩阵元素的最小值 删除簇 和 增加新的簇 根据单连接方式更新距离矩阵D · 输出:剪枝后得到,簇 。 上述的终止条件可以是预定簇数目、距离阈值(因为越往后簇间的距离越大)、最优聚类(某种准则)。本文的多种算法演示平台,以预定簇数目为终止条件。 2.4 DBSCAN算法 DBSCAN算法是典型的基于密度的聚类算法。基于密度的聚类算法有不一样的聚类思路和相似度衡量方式,这样的相似度度量方式有利于发现各种形状的簇,其主要思想是以空间中的一个样本为中心,单位体积内的样本个数称为该点的密度,从直观上看,簇内样本的密度较大,簇间样本的密度较小。该算法根据空间密度的差异,将簇看做是样本空间中被低密度区域分隔开的高密度样本区域。不同密度算法的差异主要在于如何定义高密度区和低密度区。 DBSCAN认为目标簇是由一群稠密的样本点构成的,这些稠密样本点被低密度区域分割,而算法的目的就是要过滤低密度区域,找到稠密样本点。它将簇定义为高密度相连点的最大集合。该算法涉及一些新的概念: (1) 邻域:给定对象半径为 内的区域称为该对象的 领域; (2)核对象:如果一个对象 领域内的样本点数大于等于事先给定的最小样本点数MinPts,则称该对象为核对象。 (3)直接密度可达:给定一个对象集合D,核对象p的 领域内的样本点q,称对象q是从核对象p出发直接密度可达的。 (4)密度可达:对于样本集合D,给定一串样本点 ,假如对象 从 出发直接密度可达,那么对象 从对象 密度可达。 (5)密度相连:对于样本集合D中任意一点o,如果存在对象 到对象o密度可达,对象 到对象o密度可达,那么对象 和对象 密度相连。 DBSCAN的中心思想是找到密度相连的最大集合。表2-5是具体的算法过程。 表2-4 DBSCAN算法 · 初始化:半径 ;给定对象成为核心对象的 领域内最少点数MinPts; 集合 D · 循环,直到所有输入点都判断完毕 判断输入点是否为核心对象。 找出核心对象的 邻域中所有直接密度可达点 · 循环,直到所有核心对象的 领域都遍历完毕 针对所有核心对象的 领域所有直接密度可达点找到最大密度相连对象集合,中间设计一些密度可达对象的合并 · 输出:簇 ,簇数目k 2.5 FDP算法 FDP算法是本文对文献[10]中的算法的称呼。算法提出者是Alessandro Laio和Alex Rodriguez,之所以在这里提到他们的名字是因为本文作者觉得他们提出的算法非常的漂亮。它是一种基于密度算法和基于划分算法的结合。 本文认为FDP算法的核心思想有两点,一是对聚类中心的刻画,作者认为聚类中心同时满足两点,(1)本身密度大,它被密度均不超过它的邻居包围;(2)与其他密度更大的数据点之间的“距离”更大。二是和k-means、AP算法不同,它并不是在找到聚类中心之后将其它数据点划分到邻近的聚类中心,而是将其它数据点从密度大的开始,依次划分到与它相邻的密度比它更大的聚类中心。 表2-5 FDP算法 · 初始化:设定 (使得每个数据点的邻居数为所有数据点的1-2%)。设定聚类的数目k(作者使用决策图判断)。 · 循环,直到所有数据点都计算完毕 计算每个点的rho和delta,记录每个点中距离其最近的密度比其大的点的标号。 · 根据聚类数目选择rho和delta乘积最大的k个数据点作为聚类中心。根据rho的顺序依次将非中心点划分给比它密度大的最近的点。 · 输出:簇 。 根据作者提供的matlab程序[11]和网络上相关材料,尝试描述算法,在这之前先介绍几个概念。考虑待聚类数据集 为相应指标集, 表示数据点 和 之间的(某种)距离。对于S中的每个数据点可以为其定义局部密度rho和与聚类中心的距离delta。 (1) 每个点的局部密度rho MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-7) 其中 是由用户指定的阶段距离,之所以将局部密度定义成这样而不是简单的计数以截断距离为半径的球内的点的个数,是为了使得不同的数据点具有不同的密度。 (2) 每个点与聚类中心的距离delta。 设 表示 的一个降序排列下标序,即它满足 MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-8) 那么定义 MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-9) 在以上基础上可以得到FDP算法如表2-5。 2.6 粒子群聚类算法 粒子群聚类算法是近年来应用方兴未艾的一类基于优化的聚类算法[12]。基于优化的算法主要有两种应用方式,一种是直接以聚类准则或指标,如k-means算法用到的误差平方和准则函数,作为优化算法的目标函数,因为k-means有时不能找到全局最优解。另一种是将优化算法应用到已有其它聚类算法的聚类过程之中。粒子群算法是一种有效的全局寻优算法,最早由美国的Kennedy和Eberhart于1995年受到鸟群迁徙行为提出,通过群体中粒子间的合作和竞争产生的群体智能指导寻优。 粒子群算法,将优化问题的解看做搜索空间中的一只鸟,即“粒子”。首先生成初始种群,即在可行解空间中随机初始化一群粒子,然后根据目标函数确定适应度值。每个粒子都将在解空间中运动,并由运动速度决定其飞行方向和距离。粒子运动速度通过跟踪粒子本身找到的最优解和整个种群目前找到的最优解来更新。粒子群算法核心是以下两个公式。 MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-10) MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-11) 其中 、g分别代表每个粒子到达过的最佳位置和整个种群到达过的最佳位置,h1、h2是两个对优化结果有很大影响的参数。 用粒子群算法直接求解聚类问题也有两种思路,一种是以聚类结果为解,一种是以聚类中心的集合为解。本文采用的是后者,因为这样解的结果相对简单一些,也就是本文应用的算法中每个粒子的位置表示k个聚类中心 。适应度由下面公式表示 MACROBUTTON MTPlaceRef \* MERGEFORMAT (2-12) 详细算法见表2-6 表2-6 粒子群聚类算法 · 初始化:设置聚类数目和粒子数目,对每个粒子,将每个数据点指派为某一类,并计算各类聚类中心,作为粒子的位置编码。计算粒子适应度,将粒子初始速度设为0,根据适应度产生粒子个体最佳位置p(i)和种群最佳位置p。 · 循环,直到达到设定迭代次数 根据公式更新所有粒子的速度和位置。 按照粒子聚类中心编码,按照最近邻法则,对每个数据点进行聚类划分。 计算新的聚类中心,更新粒子适应度,个体最佳位置p(i)和种群最佳位置p。 · 循环,直到达到设定迭代次数 · 根据种群最佳位置,按最近邻法则,输出簇 。 第3章 多种聚类算法演示平台实现 3.1 需求分析 随着硬件产能的提升,传感器、存储器的大量应用,积累了大量的可用于数据分析的数据。人们提出了各种各样的聚类问题,针对这些聚类问题,又相应的提出了各种各样的聚类算法。一方面,这些算法都只能解决某一类问题,针对一个具体的聚类问题,人们面临大量的可选择的聚类算法,这往往令人无所适从,由此带来很大的工作量。另一方面,开发一个新的聚类算法往往需要和已有的典型聚类算法进行比较。开发一个可扩展其它算法,带有针对典型数据集的演示功能的聚类算法演示平台可以很好的解决这两个问题,势必给聚类问题的解决,聚类算法的研发带来很大的帮助。 结合上述目的,在演示平台中,至少要包含三个部分,第一部分要提供用户多个可选数据集;第二部分要提供用户多种可选聚类算法;第三部分要针对用户选择的算法在用户选择的数据集上运行并用相关指标给出算法运行的效果。其中算法、数据集应该要可扩展。 3.2 概要设计 要基于R语言实现这样一个交互式演示平台,通过求助网友发现至少有四种方法。1、利用shiny包制作基于网页的互动应用。2、利用RGtk2包制作基于Gtk框架的界面应用。3、用C++引用RInside和Qt制作界面。4、利用rClt包调用.NET/Mono实例化窗体制作界面。调研四种方法后,发现shiny最容易上手,决定基于shiny包实现该演示平台。 最终确定用shiny的选择框控件提供用户选择的算法类型和数据集类型,输入框控件实现用户的算法参数输入,利用文本显示用户选择的算法在数据集上应用后的指标显示,利用图形(仅适用于二维数据集)、文字分别显示数据集的自然分布以及利用聚类算法后的结果分布。 3.3 详细设计 3.3.1 shiny包简介 Shiny是Rstudio公司开发的一个用于R语言的开源软件包(也有专业收费版本)。Rstudio公司的愿景是希望通过Shiny提供一个为R语言服务的网页应用程序框架,这个框架可以使得用户方便的通过使用shiny交互式的展示数据分析成果。它最终可以生成一个网页,能实现HTML语言的大部分功能和其它HTML语言无法实现的功能。 一个用shiny开发的软件(也可以说是一个网页),一般由三部分组成,server.R、ui.R以及程序用到的图片、源文件等。server.R、ui.R是shiny软件的框架,ui.R负责生成网页的交互式界面,包括布局、文字、控件等。server.R负责后台的运算绘图等工作。用户触发的影响,都会经过ui.R命名的input类数据传递给server.R继而影响server.R中相应代码的执行。server.R中代码执行的结果经过ouput类数据传递给用户界面,影响界面显示。Shiny软件可用的控件和VC6.0提供的控件类似,有下拉菜单、单选框、多选框、按钮等。软件用到的图片必须放在命名为www的文件夹中,以供Shiny调用。使用的源文件可直接放置在server.R和ui.R同一个文件夹下或者通过相对路径可访问的文件夹下,代码中可经过相对路径访问。一个编写完成的Shiny程序,可以通过shinyapp.io账号,基于Rstudio提供的服务器或者自己的服务器,发布到互联网上,供用户通过网址进行访问。通过Rstudio上传自己的软件,可以通过shinyapp.io账号在Rstuido提供的后台管理自己所有的shiny网站。 3.3.2 数据集的选择与实现 用于聚类的数据集有很多种类型,有些是实际的有些是人工生成的,不同的数据集对应着不同的数据类型,有数值属性的有分类属性的,有的是高维的有的是低维的。本文尝试选择了一些有代表性的数据,如表3-1。 表3-1 数据集[21] 数据集名称 维数 数值型维数 分类型维数 类属性数 数据量 Aggregation 2 2 0 7 788 Spiral 2 2 0 3 312 Jain 2 2 0 2 373 Flame 2 2 0 2 240 Iris 4 4 0 4 150 Dim032 32 32 0 16 1024 Dim128 128 128 0 16 1024 其中选择了四个二维属性的数据,可用于像图3-1一样作图,作图程序见附录,从而形象化的演示聚类算法的有效性。 图3-1 Spiral/Jain/Flame/Aggregation数据集(从左至右,从上到下依次为Spiral/Jain/Flame/Aggregation数据集) 之所以并没有选用混合属性的数据或者其他非数值属性的数据,一方面是因为处理混合属性的数据,需要重新定义数据点之间相似度,且相似度的定义方法又各有技巧。另一方面本文选用的聚类方法,是否能够用于处理混合属性或者非数值属性,从算法本身就可以大体判断。 当选择完以上数据集之后,从互联网上下载这些数据集,使得最后一列为类别属性。分别将其存储为Spiral.txt/Jain.txt/Flame.txt/Aggregation.txt/Dim032.txt/Dim128.txt(由于R自带Iris这里就不需要存储了)放入和server.R及ui.R同一个目录下的clusterdatas文件夹中。然后通过用户选择server.R执行代码读入这些数据集以供使用。 数据集在txt文件和程序中都以矩阵形式存储,公式3-1是用p个变量(特征)表示n个数据元素的例子。 SEQ MTSec \r 1 \h \* MERGEFORMAT SEQ MTChap \h \* MERGEFORMAT MACROBUTTON MTPlaceRef \* MERGEFORMAT MACROBUTTON MTEditEquationSection2 Equation Chapter (Next) Section 1(3-1) 3.3.3 聚类结果评价及实现 对聚类效果进行评价的研究称为聚类有效性分析(Clusetr Validity)。聚类有效性分析本身也是很复杂的,最好是根据不同的问题和不同的聚类算法做具体的分析。通常,在聚类有效性分析研究中评价聚类算法得到的聚类结果C的方法主要有三类。 (1) 外部标准(External Criteria):用事先判定的聚类结构来评价C; (2) 内部标准(Internal Criteria):用参与聚类的样本(n个数据对象)来评价C,比如采用C中各个簇的误差平方和,即kmean、本文pso聚类的目标函数。 (3) 相对标准(Relative Criteria):用同一算法的不同结果(不同参数得到)来评价C,通过与其他聚类算法的比较来判断C的好坏。 一般来说,聚类结果是用外部准则来评价的[20]。因为往往人们判定结果的好坏是和自己预想结果去对比的。为了引出常见的几种外部准则,引入一个预期的结果簇结构。 MACROBUTTON MTPlaceRef \* MERGEFORMAT (3-2) 考虑X中任意两个互异的数据对象 ,按照 和 在C结构(由聚类算法得到的)和P结构中是否属于同一个簇,有以下四种关系: 1. SS(TP): 和 在C结构和P结构属于同一个簇 2. SD(FP): 和 在C结构中属于同一个簇,而在P结构中属于不同的簇 3. DS(FN): 和 在C结构中属于不同的簇,而在P结构中属于相同的簇 4. DD(TN): 和 在C结构和P结构属于不同的簇 若记 分别表示SS,SD,DS,DD的关系数目,则根据 的值,可以定义出不同的评价指标,常见的有[13]。 (1) Rand Statistic MACROBUTTON MTPlaceRef \* MERGEFORMAT (3-3) (2) Jaccard coefficient MACROBUTTON MTPlaceRef \* MERGEFORMAT (3-4) (3) Fowlkes and Mallows index MACROBUTTON MTPlaceRef \* MERGEFORMAT (3-5) 上述 三个统计量越大,表面C和P的吻合程度越高,C的聚类效果越好。本文聚类算法演示平台使用了这三个统计量。 在信息检索中常见的指标还有有purity和F-measure值,因为F-measure值使用更加广泛,区分能力也更强,所以在这里具体介绍一下[14]。和上文的SS,SD,DS,DD相对应,信息检索中将TP定义为将相似的文档划分到同一个簇中,TN定义为将不相似的文档划分到不同的簇中。聚类可能产生两类错误,FP错误将不相似的文档划分到同一个簇中,FN错误将相似的文档划分到不同的簇中。那么F-measure值定义如下: MACROBUTTON MTPlaceRef \* MERGEFORMAT (3-6) 其中P表示准确率,P的通俗解释是检索出的相关文档数和检索出的文档总数的比率衡量查准率。R表示召回率,R的通俗解释是检索出的相关文档数和文档库中所有相关文档数的比率,衡量的是查全率。相对Rand Statistic给两类错误同样的权值,这里通过 给两类错误不同的权值,通常取 从而给召回率更多的权值。因为在实际应用中,FN这种错误往往比FP错误更加严重。本文的多种聚类演示平台取 。 R语言中对聚类结果的评价可以通过clv、clusterCrit两个包实现,这两个包的作者提供了包括本文使用的除F值以外5个外部指标在内的各类评价方法的R语言实现。本文利用这两个包实现了上述6个指标。并设计当用户触发选择时,显示当前指标的值。 3.3.4 多种聚类算法R语言实现 结合演示平台的需要我们希望每个聚类算法的输入是数据集和相关参数,输出是聚类的结果向量。结果向量的第i个位置表示第i个数据点,第i个位置的值表示第i个数据点所属的类标号。这样的封装有利于绘图和结果呈现。 本文在深入学习第二章列举的6个算法之后,结合相关资料用R语言自主编写了AP算法、FDP算法和粒子群聚类算法,代码见附录,用R语言软件包实现了dbscan、k-means和AGNES算法。这里简要介绍各算法实现方式。 kmeans是R语言软件自带的算法,针对Spiral数据集只需输入kmeans(Spiral, 3),即可返回一个kmeans类,它是一个列表,其中包含一个属性cluster,可用kmean(Spiral, 3)$cluster提取。 DBSCAN算法R语言并没有自带,但是通过网络搜索和查阅R语言的CRAN可以发现,fpc包提供了DBSCAN算法。DBSAN算法的Minpts参数默认设置为5,也就是核心对象 领域中的点数至少为5个, 领域的长度用户通过参数进行设置。用dbscan(Spiral, )$cluster可以提取对Spiral数据聚类的结果向量。 AGNES算法R语言也没有自带,但是cluster包提供了这一算法,AGNES算法可以在没有参数输入的情况下生成一颗聚类树。因此要得到结果向量还要对它进行剪枝,R语言基础包stats提供了剪枝算法cutree(tree, number),number确定最后结果中簇的数目,且cutree的返回值恰好是结果向量类型。因此只需用cutree(agnes(Spiral), 3)就可以得到Spiral的聚类结果向量。 对于AP算法,根据作者提供的支持材料[15]中的matlab程序,写出它的R语言版本iapcluster(s, p=0.5)函数,详见附录1。其中s是数据矩阵,p代表参考度相对相似度的分位数(每个数据点参考度相同)。同样对Spiral数据应用AP算法,可以通过iapcluster(Spiral)@idx得到结果向量。 对于FDP算法,根据作者提供的matlab程序[11]和网络上相关材料结合R语言特点,编写FDP算法fdpcluster <- function(datam, noc, percent, method="euclidean", p=2),其中参数datam表示输入的数据矩阵,noc表示簇的数目,percent用于确定 ,method="euclidean"表示默认采用欧几里德距离,p=2用于计算计算明氏距离,具体参见附录2。同样对Spiral数据应用fdp算法,可以通过fdpcluster(Spiral, 3, 2)@idx得到结果向量。 对于PSO聚类,根据文献[16]和网络上相关材料结合R语言特点,编写粒子群聚类算法psocluster <- function(datam, centerNum, iterNum=20),详见附录3,其中datam表示数据矩阵,centerNum表示簇的数目,iterNum表示迭代次数,函数中粒子数量选择20个。且涉及psocluster函数的返回值即为结果向量。同样对Spiral数据应用pso算法,可以通过psocluster(Spiral, 3)@idx得到结果向量。 3.3 演示平台实现结果 通过文献[17]上的例子和教程,结合聚类算法演示的需要开发了clustering algorithms demonstration网页,基本界面如图3-2。 图3-2 演示平台界面 网页发布在https://tianyu.shinyapps.io/ClusteringAlgorithmsDemonstration/,网页界面由四部分组成,用黑框框出,第一部分是算法和数据集选择窗口,算法包括上文提到的6中算法,数据集包括上文提到的7种数据集,均可通过下拉菜单选择,通过input传入;第二部分是图形演示窗口,从上到下,依次是当前算法的计算结果图和数据集的实际分布图,图形下方分别是结果向量和数据自然结果向量,均通过output输出,可供用户实时查看当前算法对每个数据对象的聚类情况;第三部分是参数选择部分,通过输入框输入,通过input传入,每次参数的改变都会引起算法重新计算并绘图;第四部分是上文提到的6个聚类算法外部指标R、J、FM、P、R、F5以及误差平方和准则J值,它们随着算法和数据集的改变而改变,通过output函数打印到界面上。 3.4 结合演示平台对多种聚类算法的比较 在没有在数据集上运行之前,首先对各个聚类算法在稳定性(是否多次运行结果一样)、输入参数、处理不同数据类型数据能力这三个对于本文用到的聚类算法可以分析的方面进行比较,总结在表3-2。 表3-2 实验前算法分析 算法名称 稳定性 属性种类 输入参数 kmeans 不稳定 只能处理数值属性数据 参数k AP算法 稳定 可处理任意属性 参数p DBSCAN算法 稳定 可处理任意属性 参数 fdp算法 稳定 可处理任意属性 k (可不用)、 percent 本文使用的粒子群聚类算法 不稳定 只能处理数值属性数据 参数k AGNES算法 稳定 可处理任意属性 参数k 在有数据集情况下,本文设计两类实验。一类主要针对几种特殊形状的二维数据集,可以通过肉眼直观判断聚类结果的好坏,另一类涉及高维数据集和无法用肉眼判断的经典数据集iris,通过外部指标和簇内平方和准则评价聚类质量。 (a)k-means算法 (b)AP算法 (c)DBSCAN算法 (d)FDP算法 (a)粒子群聚类算法 (b)AGNES算法 图3-3 6种算法在Spiral上的运用效果 对Spiral分别应用6中算法的结果如图3-3。从上图可以看出只有DBSCAN算法和fdp算法三者准确的得出了聚类结果,而其余4个算法似乎犯了同一个错误,就是在找到认为的中心后,将其余的点划分给离开它们最近的聚类中心。fdp算法带有一些基于密度的思想,可见基于密度的算法可以发现环形簇。本文还发现一个问题,kmeans算法和粒子群算法均以误差平方和准则函数作为目标函数进行优化,但是Spiral数据集的天然划分的误差平方和为23364.11远远大于kmeans和粒子群算法得到的聚类结果,可见误差平方和准则函数在这里作为评价聚类算法的指标并不合适。 对Jain分别应用6中算法的结果如图3-4。 (a)k-means算法 (b)AP算法 (c)DBSCAN算法 (d)FDP算法 (a)粒子群聚类算法 (b)AGNES算法 图3-4 6种算法在Jain上的运用效果 从上图可以看出,fdp算法和agnes算法得到的结果还算满意,而其它算法却无法取得满意的结果,这是由于原数据点的分布造成的,在上一个环中数据之间的间隔大于了两个环之间的距离,从而使得DBSCAN束手无策,kmeans、粒子群聚类则倾向于优化J没有得到好的结果也和用于Spiral时类似,AP算法也不理想,但是可解释性不强。 对Aggregation分别应用6中算法的结果如图3-5。 (a)k-means算法 (b)AP算法 (c)DBSCAN算法 (d)FDP算法 (e)粒子群聚类算法 (f)AGNES算法 图3-5 6种算法在Aggregation上的运用效果 从上图可以看出,只有fdp算法和agnes算法取得了很好的分类效果,AP算法还是有同样的不足,倾向于产生多于自然簇数目的簇。而kmeans、粒子群聚类可以倾向于优化J,在这里kmeans和粒子群算法的最终J值分别为12089.97和10997.77这表明粒子群聚类算法相对kmeans算法能找到更好的J。DBSCAN算法对有黏连的簇无法区分。 对高维数据集Dim032、Dim128的聚类效果用准确率P、召回率R和F5值评价。在已知簇数目的情况下,在这两个数据集上运行各算法,其结果如下表3-3和表3-4。 表3-3 对Dim032运用6个聚类算法的效果 算法名称 Precision Recall F5 k-means 0.98 0.72 0.70 AP算法 1 1 0.96 DBSCAN算法 0.69 0.07 0.07 FDP算法 1 1 0.96 本文使用的粒子群聚类算法 0.99 0.80 0.77 AGNES算法 1 1 0.96 表3-4 对Dim128运用6个聚类算法的效果 算法名称 Precision Recall F5 k-means 0.97 0.60 0.58 AP算法 1 1 0.96 DBSCAN算法 0.69 0.07 0.07 FDP算法 1 1 0.96 本文使用的粒子群聚类算法 0.99 0.80 0.77 AGNES算法 1 1 0.96 表3-5 实验总结算法性能 算法名称 处理高维数据 处理不规则形状簇 速度 k-means 效果差 效果差 快 AP算法 效果好 效果差 慢 DBSCAN算法 效果差 效果一般 快 FDP算法 效果好 效果好 一般 本文使用的粒子群聚类算法 效果一般 效果差 慢 AGNES算法 效果好 效果好 一般 从以上两表可以看出,在已知簇数目的情况下,AP算法、fdp算法和agnes算法能够有效处理高维数据集Dim032和Dim128,kmeans和粒子群聚类可取得中庸的效果,而DBSCAN却束手无策。结合以上实验过程,汇总各个聚类算法的性能,如表3-5,其中算法的速度由于每个算法的“基本操作”并不相同,用时间复杂度很难比较算法之间的速度,只以本文作者实际感受,将其分为,快、一般、慢三种。 第4章 基于聚类分析的篮球运动员分类研究 正如电影《点石成金》中将数据分析应用于棒球球员选择上。本章尝试运用聚类分析探究NBA球员的类型分布。使用的数据集来自http://www.basketball-reference.com,选取2013-14赛季常规赛,整个赛季常规赛上场时间大于等于50分钟的451名球员进行聚类分析,首先对数据进行主成分分析减少数据特征之间的相关性,然后再利用聚类分析对球员表现进行聚类分析。希望为NBA球员的表现定量化研究提供一个新的思路。 4.1 研究背景 篮球运动起源于1891年的美国,起初篮球运动员只分为Guard、Forward和Center,Guard负责防守、Forward负责进攻、Center是全队防守、进攻核心,后来渐渐演化成目前流行的五分法,将篮球运动员分成中锋、大前锋、小前锋、得分后卫和组织后卫五种角色。但是随着现代篮球运动的发展,“换位进攻”、“移动进攻”等技战术的发展、运动员逐步打破传统的五分法的定位,位置分工开始模糊化[18]。这也意味着各种不同位置的运动员技术趋同化及任务多元化,客观上使得运动员不再像传统赛事中那样易于分类,但无论场上的位置怎样模糊,球队不同的球员总要扮演不同的角色,因为只有合理的分工,才能更高效的开展攻防,最终赢得比赛的胜利。因此探求如何科学的对篮球运动员进行分类,对于教练员、运动员、球队管理层将有重要的意义。 4.2 球员聚类分析 本文从http://www.basketball-reference.com,选取2013-14赛季NBA常规赛,整个赛季常规赛上场时间大于等于50分钟的451名球员的年龄(age),上场次数(G),首发次数(GS),场均打球时间(MP),场均命中次数(FG),场均出手次数(FGA),场均二分球命中次数(2P),场均二分球出手次数(2PA),场均三分球命中次数(3P),场均三分球出手次数(3PA),场均罚球命中次数(FT),场均罚球出手次数(FTA),场均进攻篮板个数(ORB),场均防守篮板个数(DRB),场均篮板个数(TRB),场均助攻次数(AST),场均抢断次数(STL),场均封盖次数(BLK),场均失误次数(TOV),场均个人犯规次数(PF),场均得分(PTS),投篮命中率(FG%),2分投篮命中率(2P%),3分投篮命中率(3P%),有效投篮命中率(eFG%),罚球命中率(FT%),真实命中率(TS%)共27维数据。 获取的数据调入Rstudio,将缺失的数据设为0,之所以设为0是因为主要的缺失数据就是中锋的三分球命中率,将其设为0,表示他们三分球特别差。 图4-1 球员主成分碎石图 考虑到上述数据之间的相关性,可能影响最终聚类结果的准确性。运用主成分分析(princomp)减少数据特征之间的相关性。先对数据标准化(scale),然后主成分分析后画出碎石图(screeplot),如图4-1。从图中可以看出,碎石图非常陡峭,印证了应当进行主成分分析。选取前6个作为主成分其累计方差贡献率为85.4%(>85%)。查看主成分载荷矩阵,如表4-1,尝试对主成分进行命名,以利于对聚类分析结果的解释。从表中可以看出,第一主成分中权值比较大的是PTS、MP、FG、FGA、2P、2PA、FTA、FT、GS这些数据都是代表球员有大量持球进攻和得分,将其命名为持球进攻主成分;第二主成分中权值比较大的是3P、3PA、FG、BLK、2P%、ORB、3P%、TRB这些数据代表球员投了很多3分球而且命中率很高,同时又能拼抢篮板,盖帽,将其命名为远射防守主成分;第三主成分中权值较大的是eFG%、TS%、FG%、2P%,这些数据表示球员得分效率高低,将其命名为效率主成分;第四主成分中权值较大的是age、G、GS、PF、DRB、TRB,这些数据反映球员经验丰富,将其命名为经验主成分。第五主成分中权值较大的是age、G、AST,这三项数据同样反映球员经验,仍将其命名为经验主成分。第六主成分中权值较大的是FT%、STL、2P%、age,可将其命名为球场投入主成分。 表4-1 主成分载荷矩阵 通过主成分载荷矩阵,可以得到一个以主成分为特征的新数据矩阵。由于球员数量大这里就不引用了。因为只有AP算法能够在没有知道簇数目情况下进行聚类分析,这里采用AP算法进行聚类分析。当取p=0.1时,将球员分为12类。12类球员的中心值如下表4-2。结合表中的数据和本文作者对每一类中球员的认识。对球员类别进行定义。 第1类,包括尼古拉斯巴图姆、科怀伦纳德、特雷沃阿里扎、兰斯斯蒂芬森、约什麦克罗伯茨、乔治希尔、P.J.塔克、安德列伊戈达拉、凯尔科沃尔、科里布鲁尔、德玛尔卡罗尔、马努基诺比利、丹尼格林、何塞卡尔德隆、帕特里克贝弗利、马克贝里内利、肖恩马里昂、鲍里斯迪奥、麦克邓力维、保罗皮尔斯、马里奥查尔莫斯、文斯卡特、马特巴恩斯、J.R.斯密斯、乔约翰逊、考特尼李、雷阿伦、特伦斯洛斯、理查德杰弗森。这些球员在经验主成分中排名第一、在持球进攻主成分中排名第五、在远射主成分中排名第三、效率主成分排名第二,这些球员能投三分,有一定单打能力,能传球,但持球相对核心球员来说少很多,是球场上的万金油。所以可以定义这一类球员为强3D角色球员。 表4-2 每一类球员的中心 第2类,包括德安德鲁乔丹、罗宾洛佩兹、安德鲁博古特、塞尔吉伊巴卡、阿马尔约翰逊、安德烈德拉蒙德、泰伦斯琼斯、马辛戈塔特、肯尼斯法里德、克里斯波什、格雷格门罗、马基夫莫里斯、德里克费沃斯等。它们也有一个很明显的特点,就是内线抢篮、盖帽能力特别强,它们在持球得分主成分中排名第3、在远射主成分中排名最差。所以可以定义这一类球员为强内线防守抢板核心球员。 第3类,包括乔金诺阿、布雷克格里芬、德马库斯考辛斯、安东尼戴维斯、保罗米尔萨普、蒂姆邓肯、艾尔杰弗森、大卫韦斯特、马克加索尔、德怀特霍华德、扎克兰多夫、大卫李、拉马库斯阿尔德里奇、保罗加索尔、艾尔霍福德、内内希拉里奥、尼克拉佩科维奇、布鲁克洛佩兹、卡洛斯布泽尔。之所以同样列出它们的名字,因为它们有一个明显的共同特点,它们是各自球队内线核心球员。它们在持球得分主成分上排名第二,在远射主成分上排名倒数3。所以可以定义这一类球员为内线持球核心球员。 第4类球员,包括凯文杜兰特、勒布朗詹姆斯、凯文乐福、斯蒂芬库里、卡尔洛瑞、詹姆斯哈登、克里斯保罗、保罗乔治、卡梅隆安东尼、戈兰德拉季奇、德克诺维斯基、约翰沃尔、凯利欧文、以赛亚托马斯、拉塞尔维斯布鲁克、肯巴沃克、戈登海伍德、泰劳森、德玛尔德罗赞、德维恩韦德、诶里克布莱德索、鲁迪盖伊、蒙塔爱丽丝、赛迪斯杨、迈卡威、约什史密斯、杰夫蒂格、科比布莱恩特。之所以罗列所有第四类球员的名字,因为他们有一个很明显的共同特点,他们是各自球队的外线核心球员。从表4-2中也可看出,第4类球员在持球进攻主成分上排名第一,在远射主成分上排名第二。所以可以定义这一类球员为强外线持球核心球员。 第5类,包括安德森瓦莱乔、托尼阿伦、克里斯安德森、肖恩利文斯顿、提亚戈斯普利特等球员。这类球员拥有中等的得分能力,第四差的远投能力,可以把他们命名外为为弱内线防守抢板核心球员。 第6类,包括德雷蒙德格林、帕特里克米尔斯、詹姆斯约翰逊、帕特里克帕特森、萨博赛弗洛萨、马库斯莫里斯等球员,这类球员拥有中等的持球进攻能力,中等的三分投射能力,可将他们命名为弱3D角色球员。 第7类,包括达米恩里拉德、麦克康利、钱德勒帕森斯、韦斯利马修斯、吉米巴特勒、里基卢比奥、克莱汤普森、约迪米克斯、德隆威廉姆斯、泰瑞克埃文斯、D.J.奥古斯汀、贾马尔克劳福德、鲁尔邓、布兰登詹宁斯、雷吉杰克逊、朱霍乐迪、林书豪、凯文马丁、托尼帕克、布莱登奈特、JJ雷迪克、布拉德利比尔等这些球员拥有排名第四的持球进攻主成分、排名第一的远射主成分。可以将他们定义为弱外线持球核心球员。 第8类,包括Hamady Diaye、Ronnie Brewer、Stephen Jackson、Erik Murphy、Mike James、Jammaal Tinsley这些球员整个赛季上场时间都不超过200分钟,可以命名为不合格球员。 第9类,以Luc Mbah a Moute为代表,持球进攻能力中等以下,三分球能力中等以下,没有稳定上场时间,命名为边缘外线替补球员。 第10类,以格雷格奥等为代表,持球进攻中等偏下、三分球能力中等偏下,没有稳定上场时间,命名为边缘内线替补球员。 第11类,包括马特邦纳、德里克费舍尔、肖恩巴蒂尔、斯蒂夫纳什、斯蒂夫诺瓦克、詹姆斯琼斯等。这类球员拥有排名第一的经验主成分,将其命名为老将角色球员。 第12类,以Gal Mekel为代表,虽然上场时间略多于第8类球员,技术略优于第8类,但是仅此而已,多半和球队签订短期合约。将其命名为边缘球员。 综上,本文利用聚类分析结合主成分分析和已有篮球知识将NBA1314赛季常规赛上场时间大于50分钟的所有451名球员分为十二类,分别是强外线持球核心球员、内线持球核心球员、强内线防守抢板核心球员、强3D角色球员、弱外线持球核心球员、弱内线防守抢板核心球员、不合格球员、弱3D角色球员、边缘外线替补球员、边缘内线替补球员、老将角色球员、边缘球员。以第一主成分和第二主成分为横纵坐标画出聚类情况如图4-2。 图4-2 球员聚类情况 4.3 实际球队分析 根据本文的球员分类方法得到表4-3和表4-4马刺队(常规赛西部第一、总冠军)、爵士(常规赛西部倒数第一 )队球员分类情况。根据这两个表用条形图4-3和图4-4表示两队球员结构。 表4-3 马刺队球员分类情况 names team class Kawhi Leonard SAS 1 Tim Duncan SAS 3 Manu Ginobili SAS 1 Danny Green SAS 1 Patrick Mills SAS 6 Marco Belinelli SAS 1 Boris Diaw SAS 1 Tiago Splitter SAS 5 Tony Parker SAS 7 Jeff Ayres SAS 10 Cory Joseph SAS 6 Matt Bonner SAS 11 Damion James SAS 12 Aron Baynes SAS 9 表4-4 爵士队球员分类情况 names team class Gordon Hayward UTA 4 Derrick Favors UTA 2 Marvin Williams UTA 1 Jeremy Evans UTA 5 Alec Burks UTA 7 Richard Jefferson UTA 1 Mike Harris UTA 9 Ian Clark UTA 12 Jamaal Tinsley UTA 8 Trey Burke UTA 7 Rudy Gobert UTA 10 Brandon Rush UTA 12 John Lucas UTA 12 Diante Garrett UTA 11 Enes Kanter UTA 2 图4-3 马刺队球员结构 图4-4 爵士队球员结构 马刺队球员结构中有5名强3D角色球员、2名弱3D角色球员,1名内线持球核心球员,1名弱内线防守抢板核心球员、1名弱外线持球核心球员,1名边缘外线替补球员,1名边缘内线替补球员,1名老将角色球员,1名边缘球员。内外线球员均衡,且以内线持球核心邓肯为中心,其它球员主要集中在能突破、能投篮、能防守的强3D球员,可塑性强,有利于教练灵活布置战术。 爵士队球员结构中有2名强3D球员,2名强内线防守篮板核心球员,1名强外线持球核心球员,1名弱内线防守篮板核心球员,2名弱外线持球核心球员,不合格球员1名,边缘外线替补球员1名,边缘内线替补球员1名,老将角色球员1名,边缘球员3名。爵士队缺乏3D球员,现有球员打球风格固定,且有3名边缘球员,可用球员少,教练战术布置受限。 表4-4 球队战绩情况 战绩好 SAS/OKC/LAC/IND/HOU/POR/MIA/GSW/MEM/DAL 战绩一般 CHI/PHO/TOR/BRK/WAS/CHA/MIN/ATL/NYK/DEN 战绩差 NOP/CLE/DET/SAC/LAL/UTA/BOS/ORL/PHI/MIL 受上述结果启发,对NBA三十支球队的球员结构进行聚类。希望可以研究球员结构与球队战绩之间的关系,为此需要设定一个对照组,作为本文以201314赛季常规赛82场比赛胜率作为评价指标对三十支球队进行排序,然后将其分为三类,即战绩好、战绩一般、战绩差,总结如上表4-4。 根据第三章对各个算法的比较,在已知簇的数目情况下,使用FDP算法和AGNES算法效果较好。将球队战绩数据整理成txt格式,扩展到算法演示平台,分别运行这两个算法,FDP算法中参数percent=2,以对照组为评价标准,得到表4-5结果。从聚类结果上看,球队战绩和球员类别有一定关系,但关系并不是非常大,这可能和不同球队之间战术体系不同有关系,不同的战术体系需要不同球员结构,而一个良好执行的战术体系才能赢得最后的胜利。 表4-5 对NBA各球队球员结构聚类结果 算法名称: fdp算法 AGNES算法 Precision 0.36 0.77 Recall 0.32 0.32 F5 0.31 0.31 综上,本文通过聚类分析对NBA球员进行了比较合理的分类,对于教练员、运动员、球队管理层将有重要的意义。本分类结果可供教练员和管理层针对性选择球员进行交易作参考;可供运动员针对性选择训练方式作参考。 第5章 总 结 本文的研究工作包括以下几个方面: (1)较深入的探讨了kmeans、AP算法等六个聚类算法。 (2)用R语言自主编写实现了AP算法、粒子群聚类算法、fdp聚类算法。 (3)用shiny包实现了多种聚类算法演示平台,为算法的研究和选择提供了帮助,并分析比较了文中的多种聚类算法。 (4)用聚类分析技术较深入的对NBA1314常规赛所有上场时间大于50分钟的球员进行分类,可为教练员、球员、球队管理层提供帮助。 本文的局限性及存在的不足之处: (1)演示平台针对的数据集都是数值属性的数据,最好需要添加适合混合属性数据的相似度衡量模块。为了便于实际运用,最好加入数据预处理模块。但这两块工作量同样很大,需要在以后的工作和学习中再扩展。 (2)对NBA球员的分类,缺乏专业的指导,最好有领域专家的参与。 (3)R语言开发的算法在效率上还有问题,需要在以后的工作学习中,学习程序优化技术,进一步提高算法效率。 正如李毅德院士在今年第三届中国电子信息博览会上演讲时说的那样,聚类将成为发现大数据价值的第一步,在政治、经济、文学、历史、数理、化工等方方面面发挥重要的价值。以后的工作和学习中,要继续学习聚类分析的知识,优化自己的知识结构。 参 考 文 献 [1] Anil K.Jain. Data clustering: 50 years beyond K-means[J]. Pattern Recognition Letters, 31(2010): 651-666 [2] 刘家峰, 赵巍, 朱海龙等. 模式识别[M]. 哈尔滨: 哈尔滨工业大学出社, 2014:38-39 [3] 赵绍忠等. 数据挖掘中的聚类分析[J]. 统计与信息论坛, 2002, 17(53): 4-10 [4] 陈庄等. 基于离群点挖掘的工业控制系统异常检测[J]. 计算机科学, 2014, 41(5): 178-181 [5] 周涛等. 数据挖掘中聚类算法的研究进展[J]. 计算机工程与应用, 2012, 48(12): 100-111 [6] 方匡南. 基于数据挖掘的分类和聚类算法研究及R语言实现[D]. 2007 [7] 朱明. 数据挖掘[M]. 合肥: 中国科学技术大学出版社, 2008: 209-217 [8] Frey B J, Dueck D. Clustering by Passing Messages Between Data Points[J]. Science, 2007, 315: 972-976 [9] 甘月松, 陈秀宏, 陈晓晖. 一种AP算法的改进: M-AP聚类算法[J]. 计算机科学. 2015(1): 232-267 [10] Ales Rodriguez and Alessandro Laio. Clustering by fast search and find of density peaks[J]. Science, 2014, 344: 1492-1496 [11] Ales Rodriguez and Alessandro Laio. Supplementary Materials for Clustering by fast search and find of density peaks[EB]. http://www.sciencemag.org/content/344/6191/1492/suppl/DC1, 2014-6-27 [12] Shafiq Alam et al. Research on particle swarm optimization based clustering: A systematic review of literature and techniques[J]. Swarm and Evolutionary Computation, 17(2014)1-13 [13] S.Theodoridis and K. Koutroumbas, Pattern Recognition[M], Academic Press, 1999 [14] Christopher D. Manning, Prabhakar Raghavan and Hinrich Schutze, Introduction to Information Retrieval[M], Cambridge University Press. 2008. [15] Brendan J. Frey and Delbert Dueck. Supporting Online Material for Clustering by Passing Messages Between Data Points[EB]. http://www.sciencemag.org/cgi/content/full/1136800/DC1, 2007-2-16 [16] 杨淑莹. 模式识别与智能计算-matlab技术实现[M]. 北京: 电子工业大学出版社, 2008: 337-346 [17] Rstudio. Shiny A web application framework for R[EB/OL]. http://shiny.rstudio.com/ [18] 孙自杰. 现代高水平男子篮球比赛“位置模糊”理论研究[J]. 中国体育科技, 2007, 43(4): 68-71 [19] 白雪. 聚类分析中的相似性度量及其应用研究[D]. 2012 [20] 程学旗. 文本聚类分析效果评价及文本表示研究[D]. 2005 [21] Speech and Image Processing Unit School of Computing University of Eastern Finland. Clustering datasets[EB]. http://cs.joensuu.fi/sipu/datasets/, 2015-4-20 附 录 附录1 AP聚类算法程序 iapcluster <- function(s, p = 0.5) { S <- inegDistMat(s) apresultObj <- new("apResult") # create the result object to be returned N <- nrow(S) y <- vector(length = (N*N)) y[1: N*N] <- 0 A <- matrix(y, nrow = N) R <- matrix(y, nrow = N) #calculate preference q <- quantile(S, p) for(k in 1:N) { S[k, k] <- q } # Remove degeneraies randomMat <- matrix(rnorm(N*N), N) S <- S + (.Machine$double.eps*S +.Machine$double.xmin*100) * randomMat lam <- 0.5 # Set damping factor # 整个过程迭代100次 for(i in 1:100) { # Compute responsibilities Rold <- R AS <- A + S Y <- apply(AS, 1, max) # 每一行的最大值(向量) I <- apply(AS, 1, which.max) # 每一行最大值的位置 for(i in 1:N) { AS[i, I[i]] <- -.Machine$double.xmax } Y2 <- apply(AS, 1, max) I2 <- apply(AS, 1, which.max) R <- S - matrix(rep(Y, N), nrow = N) for(i in 1:N) { R[i, I[i]] <- S[i, I[i]]-Y2[i] } R <- (1-lam)*R + lam*Rold # Dampen responsibilities # Compute availabilities Aold <- A Rp <- R Rp[which(Rp<0)] <- 0 for(k in 1:N) { Rp[k, k] <- R[k, k] } A <- matrix(rep(apply(Rp, 2, sum), N), nrow = N, byrow = T) - Rp dA <- diag(A) A[which(A>0)] <- 0 for(k in 1:N) { A[k, k] <- dA[k] } A <- (1-lam)*A + lam*Aold # Dampen availabilities } E <- R + A i <- which(diag(E)>0) k <- length(i) c <- apply(S[, i], 1, which.max) c[i] <- 1:k idx <- i[c] # 通过apresultObj返回 apresultObj@nos <- N apresultObj@noi <- 100 apresultObj@noc <- k #apresultObj@se <- #apresultObj@rt <- apresultObj@exemplars <- i apresultObj@idx <- idx apresultObj@clusters <- split(colnames(S), idx) apresultObj@ip <- q apresultObj } 附录2 fdp聚类算法程序 # 14 science cluster algorithm i called fdp (find density peaks) fdpcluster <- function(datam, noc, percent, method="euclidean", p=2) { # create the result object to be returned fdpresultObj <- new("baseCResult") # dm represent distance matrix dm <- isimpleDist(datam, sel=NA, method="euclidean", p=2) # d represent distance vector METHOD <- c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski") method <- pmatch(method, METHOD) if(!is.double(datam)) storage.mode(datam) <- "double" d <- .Call("CdistR", datam, as.integer(NA), method, p) nos <- nrow(datam) ## determine dc N <- length(d) position = round(N*percent/100) sda <- sort(d) dc <- sda[position] # calculate local density (rho) rho <- 0 rho[1:nos] <- 0 for(i in 1:(nos-1)) { for(j in (i+1):nos) { rho[i] <- rho[i] + exp(-(dm[i, j]/dc)*(dm[i, j]/dc)) rho[j] <- rho[j] + exp(-(dm[i, j]/dc)*(dm[i, j]/dc)) } } # obtain the biggest distance maxd <- max(d) # decreasing order rho dorder <- order(rho, decreasing=TRUE) # tackle the point have the biggest rho delta <- 0 delta[1:nos] <- 0 nneigh <- 0 nneigh[1:nos] <- 0 delta[dorder[1]] <- -1 nneigh[dorder[1]] <- 0 ## produce the delta vector and nneigh vector ## nneigth[i]=j 表示所有局部密度比i大的数据点中,距离i最近的数据点是j。 for(i in 2:nos) { delta[dorder[i]] <- maxd for(j in 1:(i-1)) { if(dm[dorder[i], dorder[j]] < delta[dorder[i]]) { delta[dorder[i]] <- dm[dorder[i], dorder[j]] nneigh[dorder[i]] <- dorder[j] } } } # produce the delta for the data with biggest rho delta[dorder[1]] <- max(delta) # find the density peaks gamma <- delta*rho gorder <- order(gamma, decreasing=TRUE) # 对于densitypeaks[i]=j表示第i个cluster的中心是第j号数据点。 densitypeaks <- gorder[1:noc] cl <- 0 cl[1:nos] <- -1 # 对于cl[i]=j表示第i号数据点属于第j个cluster cl[densitypeaks] <- 1:noc # 对非中心进行归类 for(i in 1:nos) { if(cl[dorder[i]] == -1) cl[dorder[i]] <- cl[nneigh[dorder[i]]] } # c <- apply(dm[, densitypeaks], 1, which.min) # c[densitypeaks] <- 1:noc # idx <- densitypeaks[c] fdpresultObj@idx <- cl fdpresultObj@exemplars <- densitypeaks fdpresultObj } 附录3 PSO聚类算法程序 psocluster <- function(datam, centerNum, iterNum=20) { N <- nrow(datam) N2 <- ncol(datam) # initial the number of particles particleNum <- 20 # initial centers and velocities Particle <- NULL V <- array(0, dim=c(centerNum, N2, particleNum))#速度 X <- array(0, dim=c(centerNum, N2, particleNum))#位置 fit <- 0 fit[1:particleNum] <- 0 pX <- array(0, dim=c(centerNum, N2, particleNum)) gX <- matrix(0, centerNum, N2) #个体最佳值 pfit <- 0 pfit[1:particleNum] <- 0 #群体最佳值 gfit <- 0 gfitindex <- 0 for(i in 1:particleNum) { #随机产生簇标 id <- 0 id[1:centerNum] <- 1:centerNum id[(centerNum+1):N]<- sample(1:centerNum, N-centerNum, replace=TRUE) #计算簇中心 classinf <- factor(id) f <- function(x){ tapply(x, classinf, mean) } X[,,i] <- apply(datam, 2, f) temp <- 1/J(datam, X[,,i]) if(temp > fit[i]) { pfit[i] <- temp pX[,,i] <- X[,,i] } } gfit <- max(pfit) gX <- X[,,which.max(pfit)] # PSO更新参数runif(1, 0,1)产生1个0,1间的随机数 h1 <- 2 h2 <- 2 wmax <- 1 wmin <- 0 randomMat <- matrix(runif(centerNum^2, 0, 1), centerNum) for(j in 1:iterNum) { w <- wmax - j*(wmax-wmin)/iterNum for(i in 1:particleNum) { V[,,i] <- w*V[,,i] + h1*randomMat%*%(pX[,,i] - X[,,i]) + h2*randomMat%*%(gX - X[,,i]) X[,,i] <- X[,,i] + V[,,i] #对每个数据进行划分 id <- center2id(datam, X[,,i]) #防止减少中心 id[1:centerNum] <- 1:centerNum classinf <- factor(id) f <- function(x){ tapply(x, classinf, mean) } X[,,i] <- apply(datam, 2, f) temp <- 1/J(datam, X[,,i]) if(temp > fit[i]) { pfit[i] <- temp pX[,,i] <- X[,,i] } } gfit <- max(pfit) gX <- X[,,which.max(pfit)] } idx <- center2id(datam, gX) print(1/gfit) idx } 附录4 演示平台程序 Server.R library(clv) library(clusterCrit) library(apcluster) library(fpc) library(cluster) source("allclasses.R") source("show-method.R") source("labels-method.R") source("isimpleDist.R") source("inegDistMat.R") source("iapcluster.R") source("plotclusterResult.R") source("fdpcluster.R") source("psocluster.R") source("sumsquarederror.R") source("center2id.R") read.matrix <- function(filename) { as.matrix(read.table(filename)) } # lowcase has the class information while the version of capital without spiral <- read.matrix("clusterdatas/Spiral.txt") jain <- read.matrix("clusterdatas/Jain.txt") flame <- read.matrix("clusterdatas/Flame.txt") aggregation <- read.matrix("clusterdatas/Aggregation.txt") dim032 <- read.matrix("clusterdatas/Dim032.txt") dim128 <- read.matrix("clusterdatas/Dim128.txt") Spiral <- spiral[, -(ncol(spiral))] Jain <- jain[, -(ncol(jain))] Flame <- flame[, -(ncol(flame))] Aggregation <- aggregation[, -(ncol(aggregation))] Dim032 <- dim032[, -(ncol(dim032))] Dim128 <- dim032[, -(ncol(dim128))] Iris <- as.matrix(iris[, -(ncol(iris))]) shinyServer(function(input, output, session) { # Combine the selected variables into a new data frame selecteddata <- reactive({ switch(input$dataset, "Spiral" = spiral, "Jain" = jain, "Flame" = flame, "Aggregation" = aggregation, "Iris" = iris, "Dim032" = dim032, "Dim128" = dim128 ) }) selectedData <- reactive({ switch(input$dataset, "Spiral" = Spiral, "Jain" = Jain, "Flame" = Flame, "Aggregation" = Aggregation, "Iris" = Iris, "Dim032" = Dim032, "Dim128" = Dim128 ) }) clusters <- reactive({ switch(input$algorithm, "kmeans" = kmeans(selectedData(), input$clusters)$cluster, "iAP" = iapcluster(selectedData(), p=input$ip)@idx, "AP" = apcluster(negDistMat(selectedData(), r=2), q=input$ip)@idx, "fdp" = fdpcluster(selectedData(), input$clusters, input$percent)@idx, "agnes" = cutree(agnes(selectedData()), k=input$clusters), # "Cobweb" = Cobweb # making the outliers as a cluster "DBSCAN" = dbscan(selectedData(), input$eps)$cluster, "PSO" = psocluster(selectedData(), input$clusters) ) }) # plot the result for the current algorithm output$plot1 <- renderPlot({ par(mar = c(4, 10, 2, 1)) plotclusterResult(clusters(), selectedData(), connect=input$connect) }) # plot the right result output$plot0 <- renderPlot({ par( mar = c(10, 10, 0, 1)) plotclusterResult(selecteddata()[, ncol(selecteddata())], selectedData()) }) # +1 inorder to avoid 0 output$Rand <- renderPrint({ clv.Rand(std.ext(as.integer(clusters()+1), as.integer(selecteddata()[, ncol(selecteddata())]))) }) output$Jaccard <- renderPrint({ clv.Jaccard (std.ext(as.integer(clusters()+1), as.integer(selecteddata()[, ncol(selecteddata())]))) }) output$FolkesandMallows <- renderPrint({ clv.Folkes.Mallows(std.ext(as.integer(clusters()+1), as.integer(selecteddata()[, ncol(selecteddata())]))) }) output$cluster <- renderPrint({ clusters() }) }) ui.R shinyUI(pageWithSidebar( headerPanel('Clustering Algorithms demonstration'), sidebarPanel( img(src = "xiaohui.jpg", height = 72, width = 72), strong("This shiny app is a product of ", span("tianyu", style = "color:blue")), br(), br(), selectInput('algorithm', 'Cluster algorithms', c("kmeans", "AP", "DBSCAN", "iAP", "fdp", "agnes", "PSO")), selectInput('dataset', 'Dataset', c("Spiral", "Iris", "Aggregation", "Jain", "Flame", "Dim032", "Dim128")), numericInput('clusters', 'Number of clusters (for kmeans, fdp, PSO and agnes)', 3, min = 1, max = 20), numericInput('ip', 'Input preference (for AP)', 0.5, min = 0, max = 1), numericInput('percent', 'Number of classmates (for fdp)', 1, min = 0, max = 3), numericInput('eps', 'Maximum distance (for DBSCAN)', 0.5, min = 0, max = 10), checkboxInput("connect", label = "Connect", value = FALSE), strong("Rand Statistic:"), br(), verbatimTextOutput("Rand"), strong("Jaccard coeffiecient:"), br(), verbatimTextOutput("Jaccard"), strong("Folkes and Mallows index:"), br(), verbatimTextOutput("FolkesandMallows") ), mainPanel( strong("The current algorithm result:"), plotOutput('plot1'), br(), strong("The real data distribution:"), br(), br(), plotOutput('plot0') ) )) 附录5 NBA球员聚类结果 names team class Andre Roberson OKC 9 Kevin Durant OKC 4 Henry Sims TOT 5 LeBron James MIA 4 Marcus Thornton TOT 6 Kevin Love MIN 4 Hedo Turkoglu LAC 9 Stephen Curry GSW 4 Shawne Williams LAL 6 Joakim Noah CHI 3 Cody Zeller CHA 9 Kyle Lowry TOR 4 Giannis Antetokounmpo MIL 6 James Harden HOU 4 Pero Antic ATL 6 Chris Paul LAC 4 Hilton Armstrong GSW 9 Paul George IND 4 Luke Babbitt NOP 6 Blake Griffin LAC 3 Jerryd Bayless TOT 6 Nicolas Batum POR 1 Rasual Butler IND 11 DeAndre Jordan LAC 2 Jordan Crawford TOT 1 Carmelo Anthony NYK 4 Drew Gooden WAS 5 Goran Dragic PHO 4 Josh Harrellson DET 9 DeMarcus Cousins SAC 3 Devin Harris DAL 6 Anthony Davis NOP 3 Mike Harris UTA 9 Kawhi Leonard SAS 1 Tobias Harris ORL 2 Trevor Ariza WAS 1 James Jones MIA 11 Damian Lillard POR 7 Jon Leuer MEM 6 Dirk Nowitzki DAL 4 Andre Miller TOT 11 John Wall WAS 4 Tony Mitchell DET 12 Mike Conley MEM 7 Jarvis Varnado TOT 10 Kyrie Irving CLE 4 Lou Williams ATL 6 Robin Lopez POR 2 Chris Wright MIL 10 Paul Millsap ATL 3 Tyler Zeller CLE 10 Chandler Parsons HOU 7 Louis Amundson TOT 10 Wesley Matthews POR 7 Keith Bogans BOS 11 Isaiah Thomas SAC 4 Caron Butler TOT 1 Lance Stephenson IND 1 Kentavious Caldwell-Pope DET 6 Russell Westbrook OKC 4 Victor Claver POR 9 Jimmy Butler CHI 7 Troy Daniels HOU 11 Josh McRoberts CHA 1 Austin Daye TOT 12 Andrew Bogut GSW 2 Matthew Dellavedova CLE 6 Tim Duncan SAS 3 Wayne Ellington DAL 11 George Hill IND 1 Jimmer Fredette TOT 11 P.J. Tucker PHO 1 Kevin Garnett BRK 5 Serge Ibaka OKC 2 Jeff Green BOS 7 Andre Iguodala GSW 1 Justin Hamilton TOT 11 Amir Johnson TOR 2 Tyler Hansbrough TOR 5 Al Jefferson CHA 3 Solomon Hill IND 9 Kyle Korver ATL 1 Robbie Hummel MIN 9 David West IND 3 Damion James SAS 12 Corey Brewer MIN 1 Jonas Jerebko DET 11 DeMarre Carroll ATL 1 Hamady Diaye SAC 8 Andre Drummond DET 2 Quincy Pondexter MEM 9 Marc Gasol MEM 3 Miroslav Raduljica MIL 10 Manu Ginobili SAS 1 Anthony Randolph DEN 9 Dwight Howard HOU 3 John Salmons TOT 11 Kemba Walker CHA 4 Larry Sanders MIL 5 Ricky Rubio MIN 7 Julyan Stone TOR 9 Danny Green SAS 1 Tristan Thompson CLE 2 Draymond Green GSW 6 Dion Waiters CLE 7 Terrence Jones HOU 2 Casper Ware PHI 11 Jose Calderon DAL 1 Mo Williams POR 1 Gordon Hayward UTA 4 Metta World Peace NYK 9 Ty Lawson DEN 4 Nick Young LAL 7 Anderson Varejao CLE 5 Alan Anderson BRK 6 Patrick Beverley HOU 1 Joel Anthony TOT 12 DeMar DeRozan TOR 4 Omer Asik HOU 5 Marcin Gortat WAS 2 Chris Babb BOS 12 Patrick Mills SAS 6 Andrea Bargnani NYK 5 Marco Belinelli SAS 1 Will Barton POR 9 Shawn Marion DAL 1 Kent Bazemore TOT 6 Klay Thompson GSW 7 Bismack Biyombo CHA 10 Dwyane Wade MIA 4 Ronnie Brewer TOT 8 Eric Bledsoe PHO 4 MarShon Brooks TOT 11 Boris Diaw SAS 1 Chase Budinger MIN 6 Mike Dunleavy CHI 1 Dwight Buycks TOR 12 Kenneth Faried DEN 2 Isaiah Canaan HOU 12 Randy Foye DEN 1 Dionte Christmas PHO 12 Channing Frye PHO 1 Ian Clark UTA 12 Rudy Gay TOT 4 Jason Collins BRK 9 Gerald Green PHO 1 Allen Crabbe POR 12 Jodie Meeks LAL 7 Jared Cunningham TOT 12 Paul Pierce BRK 1 Toney Douglas TOT 9 Mario Chalmers MIA 1 Vitor Faverani BOS 9 Zach Randolph MEM 3 Landry Fields TOR 12 Chris Bosh MIA 2 Jamaal Franklin MEM 9 Vince Carter DAL 1 Aaron Gray TOT 9 Darren Collison LAC 1 Jorge Gutierrez BRK 9 Spencer Hawes TOT 1 Tim Hardaway NYK 6 James Johnson MEM 6 Manny Harris LAL 6 David Lee GSW 3 Stephen Jackson LAC 8 Greg Monroe DET 2 Bernard James DAL 9 Markieff Morris PHO 2 Perry Jones OKC 9 Deron Williams BRK 7 Solomon Jones ORL 12 LaMarcus Aldridge POR 3 Chris Kaman LAL 5 Matt Barnes LAC 1 Viacheslav Kravtsov PHO 10 Monta Ellis DAL 4 Ognjen Kuzmic GSW 12 Derrick Favors UTA 2 Meyers Leonard POR 9 Brandan Wright DAL 10 Shelvin Mack ATL 6 Tony Allen MEM 5 Roger Mason MIA 11 Tyson Chandler NYK 2 Luc Mbah a Moute TOT 9 Tyreke Evans NOP 7 JaVale McGee DEN 5 Mason Plumlee BRK 10 Darius Miller NOP 11 Chris Andersen MIA 5 Twaun Moore ORL 6 Pau Gasol LAL 3 Anthony Morrow NOP 11 Shaun Livingston BRK 5 Byron Mullens TOT 9 Patrick Patterson TOT 6 Erik Murphy CHI 8 J.R. Smith NYK 1 Greg Oden MIA 10 Tiago Splitter SAS 5 Daniel Orton PHI 9 D.J. Augustin TOT 7 Travis Outlaw SAC 11 Jamal Crawford LAC 7 A.J. Price MIN 9 Luol Deng TOT 7 Shavlik Randolph PHO 10 Joe Johnson BRK 1 Glen Rice WAS 12 Wesley Johnson LAL 1 Robert Sacre LAL 9 Courtney Lee TOT 1 Ramon Sessions TOT 7 Nikola Vucevic ORL 2 Greg Smith HOU 10 Thaddeus Young PHI 4 Ish Smith PHO 9 Shane Battier MIA 11 Charlie Villanueva DET 9 Michael Carter-Williams PHI 4 Earl Watson POR 12 Wilson Chandler DEN 1 Lavoy Allen TOT 9 Samuel Dalembert DAL 5 Darrell Arthur DEN 6 John Henson MIL 2 Leandro Barbosa PHO 9 Roy Hibbert IND 2 Aron Baynes SAS 9 Al Horford ATL 3 Avery Bradley BOS 7 Thabo Sefolosha OKC 6 Kobe Bryant LAL 4 Kyle Singler DET 1 Andrew Bynum TOT 5 Ray Allen MIA 1 Glen Davis TOT 5 Brandon Jennings DET 7 Evan Fournier DEN 6 Marcus Morris PHO 6 Alonzo Gee CLE 9 Terrence Ross TOR 1 Danny Granger TOT 6 Martell Webster WAS 1 Jarrett Jack CLE 1 Arron Afflalo ORL 7 Mike James CHI 8 Al-Farouq Aminu NOP 5 Antawn Jamison LAC 12 Elton Brand ATL 5 John Jenkins ATL 12 Nick Collison OKC 10 Sergey Karasev CLE 12 Maurice Harkless ORL 6 Carl Landry SAC 10 Nene Hilario WAS 3 Cartier Martin TOT 11 Reggie Jackson OKC 7 Nazr Mohammed CHI 9 Mike Miller MEM 11 Arnett Moultrie PHI 9 Kelly Olynyk BOS 5 Mike Muscala ATL 9 Nikola Pekovic MIN 3 James Nunnally TOT 12 Iman Shumpert NYK 6 Kendrick Perkins OKC 5 Josh Smith DET 4 Ronnie Price ORL 12 Jared Sullinger BOS 2 Derrick Rose CHI 7 Marvin Williams UTA 1 Tornike Shengelia TOT 10 DeJuan Blair DAL 5 Alexey Shved MIN 12 Andray Blatche BRK 5 Chris Singleton WAS 12 Trevor Booker WAS 5 Hasheem Thabeet OKC 10 Jae Crowder DAL 6 Malcolm Thomas TOT 9 Dante Cunningham MIN 5 Jamaal Tinsley UTA 8 Jrue Holiday NOP 7 Beno Udrih TOT 11 Jeremy Lin HOU 7 James Anderson PHI 1 Kevin Martin MIN 7 Michael Beasley MIA 6 Kyle Quinn ORL 5 Chauncey Billups DET 12 Victor Oladipo ORL 7 Lorenzo Brown PHI 12 Tony Parker SAS 7 Shannon Brown TOT 12 Pablo Prigioni NYK 11 Reggie Bullock LAC 12 Anthony Tolliver CHA 11 Trey Burke UTA 7 Steven Adams OKC 10 Luigi Datome DET 12 Kris Humphries BOS 5 Rudy Gobert UTA 10 Brandon Knight MIL 7 Archie Goodwin PHO 9 Ian Mahinmi IND 9 Ben Gordon CHA 12 C.J. Miles CLE 6 Willie Green LAC 11 Timofey Mozgov DEN 5 Al Harrington WAS 11 J.J. Redick LAC 7 Shane Larkin DAL 12 Greg Stiemsma NOP 10 C.J. McCollum POR 11 C.J. Watson IND 11 Darius Morris TOT 9 Jeff Ayres SAS 10 Shabazz Muhammad MIN 9 Jeremy Evans UTA 5 Toure Murry NYK 9 J.J. Hickson DEN 2 Steve Nash LAL 11 Kirk Hinrich CHI 1 Nemanja Nedovic GSW 12 Cory Joseph SAS 6 Tayshaun Prince MEM 6 Ryan Kelly LAL 6 Thomas Robinson POR 9 Jeff Teague ATL 4 Peyton Siva DET 12 Ronny Turiaf MIN 10 Donald Sloan IND 12 Gerald Wallace BOS 6 Jason Smith NOP 5 Brandon Bass BOS 5 Tony Snell CHI 6 Bradley Beal WAS 7 Garrett Temple WAS 12 Alec Burks UTA 7 Jason Terry BRK 11 Gorgui Dieng MIN 6 Jason Thompson SAC 5 Chris Douglas-Roberts CHA 11 Jeremy Tyler NYK 10 Jared Dudley LAC 6 Ekpe Udoh MIL 9 Raymond Felton NYK 1 Derrick Williams TOT 6 Derek Fisher OKC 11 Will Bynum DET 6 Francisco Garcia HOU 11 Dewayne Dedmon TOT 9 Taj Gibson CHI 2 Reggie Evans TOT 5 Jordan Hill LAL 5 Xavier Henry LAL 6 Rashard Lewis MIA 11 Orlando Johnson TOT 12 Kenyon Martin NYK 10 Doron Lamb ORL 11 Jameer Nelson ORL 7 Alex Len PHO 9 Rajon Rondo BOS 7 Jason Maxiell ORL 9 Mirza Teletovic BRK 6 Quincy Miller DEN 9 Jan Vesely TOT 10 Donatas Motiejunas HOU 9 Ryan Anderson NOP 7 Otto Porter WAS 12 Matt Bonner SAS 11 Brian Roberts NOP 6 Omri Casspi HOU 6 Brandon Rush UTA 12 Eric Gordon NOP 7 Mike Scott ATL 6 Michael Kidd-Gilchrist CHA 5 Amar Stoudemire NYK 5 Andrei Kirilenko BRK 10 Hollis Thompson PHI 6 Kosta Koufos MEM 5 Earl Clark TOT 9 Brook Lopez BRK 3 Norris Cole MIA 6 Zaza Pachulia MIL 5 Udonis Haslem MIA 10 Nate Robinson DEN 6 Ersan Ilyasova MIL 1 Jeff Withey NOP 10 Eric Maynor TOT 12 Dorell Wright POR 11 Ray McCallum SAC 6 Alexis Ajinca NOP 5 Gal Mekel DAL 12 Cole Aldrich NYK 10 Kevin Seraphin WAS 9 Harrison Barnes GSW 6 Jeffery Taylor CHA 6 Nick Calathes MEM 6 Tyshawn Taylor BRK 12 Jordan Hamilton TOT 6 Nate Wolters MIL 6 Chuck Hayes TOT 9 Jose Barea MIN 6 Richard Jefferson UTA 1 Brandon Davies PHI 9 Jeremy Lamb OKC 6 Ben McLemore SAC 6 Khris Middleton MIL 1 Luis Scola IND 5 Jonas Valanciunas TOR 2 Carlos Boozer CHI 3 Greivis Vasquez TOT 1 John Lucas UTA 12 Quincy Acy TOT 9 O.J. Mayo MIL 1 Jeff Adrien TOT 5 Gary Neal TOT 6 Gustavo Ayon ATL 10 Phil Pressey BOS 12 Steve Blake TOT 1 Austin Rivers NOP 6 Aaron Brooks TOT 6 Diante Garrett UTA 11 Chris Copeland IND 11 Marreese Speights GSW 9 Ed Davis MEM 10 Marquis Teague TOT 12 Nando De Colo TOT 11 Anthony Bennett CLE 12 Jordan Farmar LAL 1 Luke Ridnour TOT 11 Joel Freeland POR 9 Enes Kanter UTA 2 Gerald Henderson CHA 7 Kendall Marshall LAL 1 Ryan Hollins LAC 10 Dennis Schroder ATL 12 Chris Johnson BOS 6 Rodney Stuckey DET 7 Steve Novak TOR 11 Evan Turner TOT 7 Jermaine Neal GSW 5 Elliot Williams PHI 6 Jannero Pargo CHA 11 Tony Wroten PHI 7 Miles Plumlee PHO 5 Andrew Nicholson ORL 6 致 谢 真的是时光飞逝,大学四年,就这样过去了。在我大工大信息学院度过了人生中最重要的四年。这四年中,学会了很多东西。其中有人生中目前为止最努力的5个月(考研),在图书馆、博易楼、健行楼、广之楼,那些日日夜夜。以及一直坚持的打篮球、从大一时的菜鸟成长到现在的还凑活。还有主动自荐跟何德峰老师做发动机空燃比控制的研究(建龙基金)。所以首先要感谢工大给了我一个自由的大学空间和信息学院给予的良好学术氛围,此外感谢何德峰老师在做建龙基金以及考研方面的鼓励和支持。 然后感谢陈晋音老师,首先感谢陈晋音老师给我做关于聚类、R语言的毕业设计的机会,做了之后让我感觉很喜欢这块东西。她就像同学一样,容易交流,在毕业设计过程中提供了很多有益的指导和帮助,此外,她对学术的兴趣也一定程度上激励了我。 另外,还要感谢我的同学,研友、室友、球友、学长,是他们伴我顺利走过了大学,还有我的老师,邵奇可老师、马华老师、陈国定老师、朱威老师、何熊熊老师、张聚老师、何德峰老师、梅一珉老师、陈伟峰老师等,他们让我领略了学科的魅力,开拓了我的视野,丰富了我的知识。 最后感谢我的家人和女友的理解和支持。 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 二〇一〇年九月二十日   毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 二〇一〇年九月二十日 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师***老师、和研究生助教***老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在农大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 本科生毕业设计(论文)规范化要求 第一部分 学生应遵守以下规范要求 一、毕业设计论文说明 1. 毕业设计论文独立装订成册,内容包括: (1) 封面(题目、学生姓名、指导教师姓名等) (2) 中、外文内容摘要 (3) 正文目录(含页码) (4) 正文(开始计算页码) (5) 致谢 (6) 参考文献 (7) 附录 2. 中、外文内容摘要包括:课题来源,主要设计,实验方法,本人主要完成的成果。要求不少于400汉字,并译成外文。 3. 毕业设计论文页数为45页-50页。 4. 纸张要求:毕业设计说明书(论文报告)应用标准B5纸单面打字成文。 5. 文字要求:文字通顺,语言流畅,无错别字。 6. 图纸要求:毕业设计图纸应使用计算机绘制。图纸尺寸标注应符合国家标准。图纸应按“规范”叠好。 7. 曲线图表要求:所有曲线、图表、流程图、程序框图、示意图等不得徒手画,必须按国家规定标准或工程要求绘制。 8. 参考文献、资料要求:参考文献总数论文类不少于10篇、,应有外文参考文献。文献应列出序号、作者、文章题目、期刊名、年份、出版社、出版时间等。 二、外文翻译 1. 完成不少于2万印刷符的外文翻译。译文不少于5千汉字。 2. 译文内容必须与题目(或专业内容)有关,由指导教师在下达任务书时指定。 3. 译文应于毕业设计中期2月底前完成,交指导教师批改。 4. 将原文同译文统一印成B5纸规格装订成册,原文在前,译文在后。 三、形式审查 5月15日前,将毕业设计论文上交指导教师,审查不合格者,不能参加答辩。 四、准备答辩 答辩前三天,学生要将全部材料(包括光盘、论文)统一交指导教师。 关于毕业论文格式的要求 为方便统一、规范论文格式,现将学院的相关要求做如下强调、补充: 1. 基本要求 纸型: B5纸(或16开),单面打印; 页边距: 上2.54cm,下2.54cm,左2.5cm,右2.5cm; 页眉:1.5cm,页脚1.75cm,左侧装订 正文字体:汉字和标点符号用“宋体”,英文和数字用“Times New Roman”,字号小四; 图号1-1,指第1章第1个图 在图的前部要有文字说明(如图1-1所示) 表号3-5,指第3章第5个表 在表的前部要有文字说明(如表3-5所示) 图、表的标注字体大小是五号宋体 行距: 固定值20; 页码: 居中、小五、底部。 2. 封面格式 封皮: 大连理工大学城市学院(二号、黑体、居中) 本科生毕业设计(论文)(二号、黑体、居中) 学 院:(四号、黑体、居中、下划线:电子与自动化学院) 专 业:(四号、黑体、居中、下划线、专业名字之间无空格) 学 生:(四号、黑体、居中、下划线,名字是2个字的中间空1个字、3个或3个以上字的中间无空格) 指导教师:(四号、黑体、居中、下划线,名字是2个字的中间空1个字、3个或3个以上字的中间无空格,两位指导教师的中间用顿号“、”) 完成日期:(四号、黑体、居中、下划线,如:2009年5月25日) (注意:5个下划线两端也是对齐的,单倍行距) 内 封:大连理工大学城市学院本科生毕业设计(论文)(四号、黑体) 题目 (二号、黑体、居中); 总计 毕业设计(论文) 页(五号、宋体) 表格 表(五号、宋体) 插图 幅 (五号、宋体) (注意:页数正常不少于40页,优秀论文原则上不少于45页) 3. 中外文摘要 中文摘要:标题“摘 要” (三号、黑体、居中、中间空1个字) 正文(不少于400字) 关键词 (五号、黑体):3-5个主题词(五号),中间用分号“;”隔开。 外文摘要 (另起一页):标题“Abstract” (三号、黑体、居中) 正文 (必须用第三人称) 关键词: Key words(五号、黑体):3-5个主题词(五号)与中文关键词对应,中间用分号“;”隔开。 4. 目录 标题 “目录”(三号、黑体、居中); 章标题(四号、黑体、居左); 节标题(小四、宋体); 页码 (小四、宋体); 二、三级目录分别缩近1和2个字; 四级目录不在“目录”中体现,在正文中也不是单独一行,可以黑体(没有句号),然后空2个字接正文; 注意:正文中每章开头要另起一页; “目录”下方中间的页码和摘要一样统一用罗马字,顺接摘要的。 摘要 目录加页眉 5. 论文正文 页眉: 论文题目(居中、小五、黑体); 章标题(三号、黑体、居中); 节标题(四号、黑体、居左); 正文 程序用“Times New Roman”,字号小四; 6. 参考文献 标题:“参考文献”(小四、黑体、居中) 参考文献的著录,按文稿中引用顺序排列,并注意在文内相应位置用上标标注,如:……的函数。 示例如下:(字体为五号、宋体) 期刊类:[序号]作者1,作者2,……作者n。文章名。期刊名(版本),出版年,卷次(期次)。页次 图书类:[序号]作者1,作者2,……作者n。书名。版本。出版地:出版者,出版年。页次 会议论文集:[序号]作者1,作者2,……作者n。论文集名。出版地:出版者,出版年。页次 网上资料:[序号]作者1,作者2,……作者n。文章名。网址。发表时间 7. 其它 量和单位的使用:必须符合国家标准规定,不得使用已废弃的单位(如高斯(G和Gg)、亩、克分子浓度(M)、当量能度(N)等)。量和单位不用中文名称,而用法定符号表示。 图表及公式:插图宽度一般不超过10cm,表名(小四)置上居中,图名(小四)置下居中。标目中物理量的符号用斜体,单位符号用正体,坐标标值线朝里。标值的数字尽量不超过3位数,或小数点以后不多于1个“0”。如用30Km代替30000m,用5µg代替0.005mg等,并与正文一致。图和表的编号从前至后顺序排列,图的编号及说明位于图的下方,居中;表的编号及说明位于表的上方,居中。公式编号加圆括号,居行尾。图表中的字体不应大于正文字体。注意:图表标题中的数字也是“Times New Roman”。 8.论文依次包括:封皮、内封、中文摘要、英文摘要、目录、正文、结论、致谢、参考文献、(附录),不要落项。 9.注意:上面没有说“加粗”的“黑体”,均为“黑体不加粗”。 补充: 1.答辩要求:自述15分钟,回答问题10分钟,自述要求使用PPT 答辩内容: 1).论文题目 2).设计内容 3).设计方案 4).如何完成设计 工作原理 软件或硬件设计 制作\调试\安装 5).存在不足,今后努力的方向 6).致谢 3.最后上交学生装订好的论文、光盘、记录表、成绩单 4.光盘里的文件夹命名为:学号_姓名_年级专业班级 文件夹里包括的文件有:论文、ppt、英文翻译 1) 论文的文件名格式:学号_姓名_年级专业班号_题目(论文)_完成日期doc 2) ppt的文件名格式:学号_姓名_年级专业班号_题目(ppt)_完成日期ppt 3) 英文翻译的文件名格式:学号_姓名_年级专业班号_题目(英文翻译)_完成日期doc 例如: 答辩问题5个, 侧重总体思路一个 软件或硬件一个 翻译一个 其他2个 _1494680148.unknown _1494680165.unknown _1494680173.unknown _1494848523.vsd � 输入数据集 特征提取与选择 相似性度量 特征描述 聚类算法 聚类结果 聚类有效性检验 _1495032679.unknown _1495032842.unknown _1495093365.unknown zcf Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 age -0.0005045058 0.0170786588 0.0829808287 0.3483919612 0.8714526301 -0.2256861213 G -0.1714353051 0.0086108765 0.1348890059 0.3105363205 -0.2601239109 0.0872229056 GS -0.2293926133 0.02048547 -0.0303424112 0.2738099212 -0.0513975096 0.1368491424 MP -0.2631310144 0.077784455 -0.0064744072 0.1650898217 -0.0060953435 0.0618031943 FG -0.2689844959 0.0556252362 -0.0396413838 -0.0736922566 0.0120198269 -0.068044082 FGA -0.2595128285 0.1260974452 -0.0703171197 -0.0397055737 -0.0089942952 -0.064839122 2P -0.2582454695 -0.0611408487 -0.1304093344 -0.1512985811 0.0392108445 -0.107579808 2PA -0.2550657181 -0.0181910001 -0.1738402232 -0.1326857592 0.0234042247 -0.1327162245 3P -0.1124416962 0.3351755257 0.2349126648 0.1885396574 -0.070327187 0.0866150695 3PA -0.1125163785 0.3508777617 0.1877749996 0.1779815888 -0.0710996863 0.1156651464 FT -0.2418130299 0.071054894 -0.0930428803 -0.2865988083 0.0304543207 -0.1016863055 FTA -0.2452267177 0.0198313472 -0.109215001 -0.273840238 0.0316411399 -0.0425064155 ORB -0.1488919144 -0.3318050648 -0.1050054845 0.1618718222 -0.1066961412 -0.0880222296 DRB -0.2256993457 -0.1833990251 -0.0956437417 0.2182018041 -0.0029034593 -0.0651328741 TRB -0.2115592398 -0.2430540922 -0.1037950947 0.2105809148 -0.0380820155 -0.0762569165 AST -0.1698966864 0.2368540189 -0.0713017949 -0.1302544365 0.2196025483 0.248439505 STL -0.2009783067 0.1340758875 -0.0201098144 0.0222927251 0.0583158925 0.320658928 BLK -0.1247516057 -0.310378363 -0.0465495897 0.2095128288 -0.060803257 -0.0706736118 TOV -0.2306919645 0.1139249495 -0.1298576122 -0.1724277999 0.1533610842 0.1255811925 PF -0.2035885969 -0.1314471103 -0.003077826 0.2476382231 -0.0833612383 0.0947559278 PTS -0.2669448713 0.0977175828 -0.0226007449 -0.098681654 0.007490126 -0.0632293766 FG% -0.1216468939 -0.3121524774 0.3147635054 -0.2092175315 0.077388423 0.0517188614 2P% -0.1008322162 -0.2434549932 0.2746208149 -0.1886583358 0.0496356891 0.3471903757 3P% -0.0383161927 0.3162207649 0.2128878712 0.1322019571 -0.1233606456 -0.1068277333 eFG% -0.1110051351 -0.1398137916 0.5206957768 -0.0661518552 0.0553206193 0.0113246066 FT% -0.0826287051 0.1745423479 0.1441009028 -0.0426231681 -0.1738086385 -0.6897082592 TS% -0.1385396667 -0.0972644443 0.4914228886 -0.1573594813 0.0188608604 -0.1460014242 _1495220298.unknown zcf Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 1 -1.7315127259 1.4122101546 1.179327361 1.0875533461 0.0739764866 0.3217369776 2 -4.011518955 -3.6068009408 -0.4911450517 0.6877988971 -0.7343990591 -0.124296538 3 -6.3099575621 -2.6070980757 -1.8808271623 -0.2242396691 0.6602376206 -0.9967418529 4 -6.5944295198 2.325827916 -0.6794763364 -1.1631107005 0.4818168105 0.4573472915 5 -0.5982536547 -2.539705305 -0.2975662509 0.2989888011 0.2319978998 -0.3143861955 6 0.8023284607 0.8385179013 0.4783344794 0.1714675922 -0.6444932679 0.0498462908 7 -3.2872435647 2.3450157061 -0.2105922952 -0.4596864408 -0.1402663282 0.1625278086 8 6.5927015009 0.9519597902 -5.0170757948 1.1131758182 1.6356803781 2.2516427122 9 3.1331510859 -0.7674407399 -0.171745792 -0.3457216879 -0.1735933523 -0.0195232089 10 2.106208989 -3.0557105429 1.3595033959 -0.9352341781 0.4783827066 0.7938314751 11 2.639587126 0.9976968813 1.6467095645 0.1538169677 0.5596837723 -0.6192220353 12 4.595202359 1.1049586331 -1.6692869774 -0.1566664248 -0.2920979785 -0.3494876901 _1495053420.unknown _1495032695.unknown _1494942204.unknown _1494942218.unknown _1494942183.unknown _1494698292.unknown _1494701565.unknown _1494701684.unknown _1494791472.unknown _1494791320.unknown _1494701596.unknown _1494698919.unknown _1494701535.unknown _1494698306.unknown _1494698715.unknown _1494698132.unknown _1494698268.unknown _1494697996.unknown _1494680174.unknown _1494680170.unknown _1494680171.unknown _1494680172.unknown _1494680167.unknown _1494680168.unknown _1494680169.unknown _1494680166.unknown _1494680157.unknown _1494680161.unknown _1494680163.unknown _1494680164.unknown _1494680162.unknown _1494680159.unknown _1494680160.unknown _1494680158.unknown _1494680152.unknown _1494680155.unknown _1494680156.unknown _1494680153.unknown _1494680150.unknown _1494680151.unknown _1494680149.unknown _1494573995.unknown _1494661281.unknown _1494680143.unknown _1494680146.unknown _1494680147.unknown _1494680145.unknown _1494661960.unknown _1494680142.unknown _1494661834.unknown _1494617095.unknown _1494661037.unknown _1494661056.unknown _1494660988.unknown _1494573997.unknown _1494598875.unknown _1494598139.unknown _1494598825.unknown _1494573996.unknown _1494573953.unknown _1494573957.unknown _1494573959.unknown _1494573960.unknown _1494573958.unknown _1494573955.unknown _1494573956.unknown _1494573954.unknown _1494515382.unknown _1494573949.unknown _1494573951.unknown _1494573952.unknown _1494573950.unknown _1494532743.unknown _1494573326.unknown _1494573948.unknown _1494573338.unknown _1494573206.unknown _1494516082.unknown _1494532633.unknown _1494516006.unknown _1494492933.unknown _1494492998.unknown _1494515305.unknown _1494492982.unknown _1494310704.unknown _1494491468.unknown _1494310703.unknown
本文档为【基于R语言多种聚类算法演示平台毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥11.9 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
不系舟红枫
从教近30年,经验丰富,教学水平较高
格式:doc
大小:1MB
软件:Word
页数:97
分类:工学
上传时间:2019-01-22
浏览量:29