




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DataMiningandDataAnalysiswithR数据挖掘与数据分析:基于R语言合作QQ:243001978层次聚类合作QQ:243001978算法原理01算法示例02模型理解03R语言编程04章节内容8.1
算法原理图8-1层次聚类树状图和嵌套簇图聚类分析是一种典型的无监督学习,将未知类别的样本按照一定的规则划分成不同的类或簇,从而揭示样本之间的内在性质和相互之间的联系。聚类被广泛应用于医学、生物学、市场营销、心理学和数据挖掘等领域。层次聚类是最常用的聚类方法之一,它通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树,如图8-1所示。自下而上的凝聚法(Agglomerative)和自顶向下的分裂法(Divisive)是两种层次聚类的基本方法。凝聚层次聚类凝聚层次聚类是一种常见的聚类方法,从单个样本点作为类开始,不断合并最相似的两个类,直到所有类聚成一类为止。算法步骤如下:①定义每个观测值(样本点)为一类;②计算任意两类之间的距离,度量样本间的相似度;③合并距离最近(相似度最高)的两个类;④重复步骤②和③,直到所有类合并为一类。在上述过程中,最重要的环节是计算样本点间、类之间的距离,下面将介绍具体距离度量准则。凝聚层次聚类
凝聚层次聚类类之间距离度量:最小距离:将两个类中距离最近的样本间的距离定义为两个聚类间的距离。最大距离:将两个类中距离最远的样本间的距离定义为两个聚类间的距离。凝聚层次聚类
凝聚层次聚类
分裂层次聚类合作QQ:243001978分裂层次聚类先将所有样本作为一类,然后找出类中距离最远的两个簇并进行分裂,不断重复直到每个样本为一类。算法步骤如下:①定义所有观测值(样本点)为一类;②计算任意两样本点之间的距离;③找出同一类中距离最远的两个样本点a和b,分别作为两个簇的中心;④若类中剩余的样本点距离类中心a更近,将其分配到以a为中心的类中,否则分配到以b为中心的类中;⑤重复步骤③和④,直到每个观测值为一类。8.2
算法示例图8-65个二维点的集合例8-1:使用最小距离度量类之间的相似度,对如图8-2的样本数据进行凝聚层次聚类。点X坐标Y坐标p10.410.53p20.340.28p30.670.43p40.160.38p50.450.30表8-15个点的坐标p1p2p3p4p5p10.0000.2600.2790.2920.233p20.2600.0000.3620.2060.112p30.2790.3620.0000.5120.256p40.2920.2060.5120.0000.301p50.2330.1120.2560.3010.000表8-25个点的欧式距离矩阵8.2
算法示例p1p2p3p4p5p10.0000.2600.2790.2920.233p20.2600.0000.3620.2060.112p30.2790.3620.0000.5120.256p40.2920.2060.5120.0000.301p50.2330.1120.2560.3010.000
p1{p2,p5}p3p4p10.0000.2330.2790.292{p2,p5}0.2330.0000.2560.206p30.2790.2560.0000.512p40.2920.2060.5120.000更新2.继续找出距离最近的两个簇{p2,p5}和p4,合并为{p2,p4,p5},并更新距离矩阵。p1{p2,p5}p3p4p10.0000.2330.2790.292{p2,p5}0.2330.0000.2560.206p30.2790.2560.0000.512p40.2920.2060.5120.000更新p1{p2,p4,p5}p3p10.0000.2330.279{p2,p4,p5}0.2330.0000.256p30.2790.2560.0008.2
算法示例3.接着继续找出距离最近的两个簇{p2,p4,p5}和p1,合并为{p1,p2,p4,p5},更新距离矩阵。4.最后合并剩下的两个簇,即获得最终结果,如下图所示。在树状图中两个簇合并处的高度反映两个簇的距离,例如p2和p5间距离为0.112,即为树状图中两个簇合并时对应的高度。更新p1{p2,p4,p5}p3p10.0000.2330.279{p2,p4,p5}0.2330.0000.256p30.2790.2560.000{p1,p2,p4,p5}p3{p1,p2,p4,p5}0.0000.256p30.2560.000图8-7凝聚层次聚类结果8.2
算法示例例8-2:使用最小距离度量类之间的相似度,对如图8-2的样本数据(例8-1中的相同数据)进行分裂层次聚类,过程如下:将所有样本点聚为一类{p1,p2,p3,p4,p5}找出距离最远的两点p3、p4作为两个子类的中心,并根据距离最近原则将剩余点分配到这两个子类。此时,将原本类分裂为{p1,p3,p5}和{p2,p4}对每个子类,再执行分裂过程,直至所有样本点均属于一类,结束图8-65个二维点的集合p1p2p3p4p5p10.0000.2600.2790.2920.233p20.2600.0000.3620.2060.112p30.2790.3620.0000.5120.256p40.2920.2060.5120.0000.301p50.2330.1120.2560.3010.000表8-25个点的欧式距离矩阵8.2
算法示例例8-2:使用最小距离度量类之间的相似度,对如图8-2的样本数据(例8-1中的相同数据)进行分裂层次聚类,结果如下图所示:图8-8分裂层次聚类结果8.3
模型理解层次聚类的优点:层次聚类中距离和相似度容易定义,算法相对简单。适用于任意形状和任意属性的数据集。层次聚类不需要预先指定聚类数,能够得到不同粒度上的多层次聚类结构。可以使用树形图对聚类结果进行可视化,易于解释和理解。对样本的输入顺序不敏感。层次聚类的缺点:算法时间复杂度较大。过程具有不可逆性,一旦合并或分裂执行,就不能修正。如果某个合并或分裂决策在后来证明是不好的选择,该方法无法退回并更正。合并或分裂需要检查和估算大量的对象或簇,不具有很好的可伸缩性。距离度量的选择最小和最大距离代表簇间距离度量的两个极端,它们对离群点或噪声数据过分敏感。使用平均距离和质心距离是对最小和最大距离之间的一种折中方法,而且可以克服离群点敏感性问题。尽管质心距离计算简单,但平均距离既能处理数值数据又能处理分类数据,具有一定优势。8.4R语言编程game_df<-read.csv("./game.csv",header=TRUE,sep=",")str(game_df)输出:
数据简介:本案例采用北美和欧洲以及其他地区的游戏发行量情况数据集,其中包含游戏发行商(例如任天堂、索尼等),及不同类型游戏的销量和评分等级等详细信息。主要目的是分析2000年以来不同年份发售的游戏间的相似性及差异性。数据导入:使用read.csv()函数读取原始数据集game.csv,并通过str()函数查看详细信息,代码如下:数据导入属性名称属性解释属性示例Name游戏名称NewSuperMarioBros.platform所支持平台DSYear_of_Release发行年份2006Genre游戏类型PlatformPublisher游戏发行商NintendoNA_Sales北美销量11.28EU_Sales欧洲销量9.14JP_Sales日本销量6.5Other_Sales其他地区销量2.88Global_Sales全球总销量29.8Critic_Score测评师评分89Critic_Count评分测评师数量65User_Score用户评分8.5User_Count评分用户数量431Developer游戏开发者NintendoRating游戏分级E数据集属性的解释表格汇总:数据预处理将发布年份从字符串转换为数值删除缺失值过滤发布时间早于2000年的数据game_df$Year_of_Release<-suppressWarnings(as.numeric(as.character(game_df$Year_of_Release)))game_df<-na.omit(game_df)game_df<-subset(game_df,game_df$Year_of_Release>=2000)summary(game_df)输出:聚类分组层次聚类方法:hclust(d,method=…)参数method表示类之间相似性的度量方法,包括:"single"、"complete"、"average"、"centroid"和"ward"距离计算方法:dist(x,method=…)参数method含义同上,可取值为"euclidean"、"maximum"、"manhattan"、"minkowski"、"canberra"和"binary",且默认为欧式距离。聚类分组聚类代码和结果game<-game_df[,6:14]#抽取销量和评分数据set.seed(1234)game<-game[sample(nrow(game),20),]#随机抽取20个数据game<-matrix(unlist(game),nrow=20)#转换成matrixgame.scale<-scale(game)#数据标准化distance<-dist(game.scale)fit.average<-hclust(distance,method="average")plot(fit.average,hang=-1)输出:图8-11不同年份游戏发售数量的相似性及差异性结果分析选择聚类数为4,并对结果进行观察第一类有14个观测值:{9,18,12,5,16,2,14,11,13,6,20,19,1,8}第二类有4个观测值:{3,17,4,10}
第三类有1个观测值:{7}第四类有1个观测值:{15}clusters<-cutree(fit.average,4)#输出每一类内样本的数量table(clusters)输出:结果分析获取每类的中位数,包括原始数据和标准化数据两种度量形式aggregate(as.data.frame(game),by=list(cluster=clusters),FUN=median,na.rm=TRUE)aggregate(as.data.frame(game.scale),by=list(cluster=clusters),FUN=median,na.rm=TRUE)输出:结果分析使用rect.hclust()函数叠加四类,重新绘制树状图plot(fit.average,hang=-1)rect.hclust(fit.average,k=4)输出:图8-13不同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南通市紫石中学2025届中考模拟金典卷数学试题(三)试题含解析
- 食品生产加工分公司合同
- 四川省大教育联盟2025年高三联考B卷历史试题含解析
- 四川省绵阳市东辰高中2025届高三下学期毕业班调研测试物理试题含解析
- 离婚协议书模板:个人合同指南
- 食品批发电子合同协议
- CIF和FOB合同在的运用与挑战
- 赠与合同模版
- 标准范文短期汽车租赁合同范本
- 新版个人住宅买卖合同
- 河南省洛阳市强基联盟2024-2025学年高二下学期3月月考历史试题(原卷版+解析版)
- 2025届上海市奉贤区高三语文二模试卷作文题目解析及范文:达克效应
- 2024年新瓦斯检查工国家考试题库
- (一模)桂林市、来宾市2025届高考第一次跨市联合模拟考试地理试卷(含答案详解)
- 饰品干货知识培训课件
- 2024-2030年中国高纯铜行业发展监测及发展趋势预测报告
- 2022城市道路照明设施养护维修服务规范
- 2024年9月21日浙江省事业单位统考《职业能力倾向测验》真题及答案
- 兽医病理学基础试题及答案
- 2025届金丽衢十二校高三语文第二次联考考场高分作文点评:“效率至上”与“深度求索”
- 转正述职报告与工作展望
评论
0/150
提交评论